//>>built
(function(userConfig,defaultConfig){var noop=function(){},isEmpty=function(it){for(var p in it)return 0;return 1},toString={}.toString,isFunction=function(it){return toString.call(it)=="[object Function]"},isString=function(it){return toString.call(it)=="[object String]"},isArray=function(it){return toString.call(it)=="[object Array]"},forEach=function(vector,callback){if(vector)for(var i=0;i<vector.length;)callback(vector[i++])},mix=function(dest,src){for(var p in src)dest[p]=src[p];return dest},
makeError=function(error,info){return mix(new Error(error),{src:"dojoLoader",info:info})},uidSeed=1,uid=function(){return"_"+uidSeed++},req=function(config,dependencies,callback){return contextRequire(config,dependencies,callback,0,req)},global=this,doc=global.document,element=doc&&doc.createElement("DiV"),has=req.has=function(name){return isFunction(hasCache[name])?hasCache[name]=hasCache[name](global,doc,element):hasCache[name]},hasCache=has.cache=defaultConfig.hasCache;has.add=function(name,test,
now,force){(hasCache[name]===undefined||force)&&(hasCache[name]=test);return now&&has(name)};0&&has.add("host-node",userConfig.has&&"host-node"in userConfig.has?userConfig.has["host-node"]:typeof process=="object"&&process.versions&&process.versions.node&&process.versions.v8);if(0){require("./_base/configNode.js").config(defaultConfig);defaultConfig.loaderPatch.nodeRequire=require}0&&has.add("host-rhino",userConfig.has&&"host-rhino"in userConfig.has?userConfig.has["host-rhino"]:typeof load=="function"&&
(typeof Packages=="function"||typeof Packages=="object"));if(0){for(var baseUrl=userConfig.baseUrl||".",arg,rhinoArgs=this.arguments,i=0;i<rhinoArgs.length;){arg=(rhinoArgs[i++]+"").split("\x3d");if(arg[0]=="baseUrl"){baseUrl=arg[1];break}}load(baseUrl+"/_base/configRhino.js");rhinoDojoConfig(defaultConfig,baseUrl,rhinoArgs)}has.add("host-webworker",typeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope);if(has("host-webworker")){mix(defaultConfig.hasCache,{"host-browser":0,"dom":0,
"dojo-dom-ready-api":0,"dojo-sniff":0,"dojo-inject-api":1,"host-webworker":1});defaultConfig.loaderPatch={injectUrl:function(url,callback){try{importScripts(url);callback()}catch(e){0&&console.info("failed to load resource ("+url+")");console.error(e)}}}}for(var p in userConfig.has)has.add(p,userConfig.has[p],0,1);var requested=1,arrived=2,nonmodule=3,executing=4,executed=5;if(0){requested="requested";arrived="arrived";nonmodule="not-a-module";executing="executing";executed="executed"}var legacyMode=
0,sync="sync",xd="xd",syncExecStack=[],dojoRequirePlugin=0,checkDojoRequirePlugin=noop,transformToAmd=noop,getXhr;if(0){req.isXdUrl=noop;req.initSyncLoader=function(dojoRequirePlugin_,checkDojoRequirePlugin_,transformToAmd_){if(!dojoRequirePlugin){dojoRequirePlugin=dojoRequirePlugin_;checkDojoRequirePlugin=checkDojoRequirePlugin_;transformToAmd=transformToAmd_}return{sync:sync,requested:requested,arrived:arrived,nonmodule:nonmodule,executing:executing,executed:executed,syncExecStack:syncExecStack,
modules:modules,execQ:execQ,getModule:getModule,injectModule:injectModule,setArrived:setArrived,signal:signal,finishExec:finishExec,execModule:execModule,dojoRequirePlugin:dojoRequirePlugin,getLegacyMode:function(){return legacyMode},guardCheckComplete:guardCheckComplete}};if(1||has("host-webworker")){var locationProtocol=location.protocol,locationHost=location.host;req.isXdUrl=function(url){if(/^\./.test(url))return false;if(/^\/\//.test(url))return true;var match=url.match(/^([^\/\:]+\:)\/+([^\/]+)/);
return match&&(match[1]!=locationProtocol||locationHost&&match[2]!=locationHost)};0&&has.add("dojo-xhr-factory",1);has.add("dojo-force-activex-xhr",1&&!doc.addEventListener&&window.location.protocol=="file:");has.add("native-xhr",typeof XMLHttpRequest!="undefined");if(has("native-xhr")&&!has("dojo-force-activex-xhr"))getXhr=function(){return new XMLHttpRequest};else{for(var XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],progid,i=0;i<3;)try{progid=XMLHTTP_PROGIDS[i++];
if(new ActiveXObject(progid))break}catch(e){}getXhr=function(){return new ActiveXObject(progid)}}req.getXhr=getXhr;has.add("dojo-gettext-api",1);req.getText=function(url,async,onLoad){var xhr=getXhr();xhr.open("GET",fixupUrl(url),false);xhr.send(null);if(xhr.status==200||!location.host&&!xhr.status){if(onLoad)onLoad(xhr.responseText,async)}else throw makeError("xhrFailed",xhr.status);return xhr.responseText}}}else req.async=1;var eval_=new Function("return eval(arguments[0]);");req.eval=function(text,
hint){return eval_(text+"\r\n////@ sourceURL\x3d"+hint)};var listenerQueues={},error="error",signal=req.signal=function(type,args){var queue=listenerQueues[type];forEach(queue&&queue.slice(0),function(listener){listener.apply(null,isArray(args)?args:[args])})},on=req.on=function(type,listener){var queue=listenerQueues[type]||(listenerQueues[type]=[]);queue.push(listener);return{remove:function(){for(var i=0;i<queue.length;i++)if(queue[i]===listener){queue.splice(i,1);return}}}};var aliases=[],paths=
{},pathsMapProg=[],packs={},map=req.map={},mapProgs=[],modules={},cacheBust="",cache={},urlKeyPrefix="url:",pendingCacheInsert={},dojoSniffConfig={},insertPointSibling=0;if(1){var consumePendingCacheInsert=function(referenceModule){var p,item,match,now,m;for(p in pendingCacheInsert){item=pendingCacheInsert[p];match=p.match(/^url\:(.+)/);if(match)cache[urlKeyPrefix+toUrl(match[1],referenceModule)]=item;else if(p=="*now")now=item;else if(p!="*noref"){m=getModuleInfo(p,referenceModule,true);cache[m.mid]=
cache[urlKeyPrefix+m.url]=item}}if(now)now(createRequire(referenceModule));pendingCacheInsert={}},escapeString=function(s){return s.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(c){return"\\"+c})},computeMapProg=function(map,dest){dest.splice(0,dest.length);for(var p in map)dest.push([p,map[p],new RegExp("^"+escapeString(p)+"(/|$)"),p.length]);dest.sort(function(lhs,rhs){return rhs[3]-lhs[3]});return dest},computeAliases=function(config,dest){forEach(config,function(pair){dest.push([isString(pair[0])?
new RegExp("^"+escapeString(pair[0])+"$"):pair[0],pair[1]])})},fixupPackageInfo=function(packageInfo){var name=packageInfo.name;if(!name){name=packageInfo;packageInfo={name:name}}packageInfo=mix({main:"main"},packageInfo);packageInfo.location=packageInfo.location?packageInfo.location:name;if(packageInfo.packageMap)map[name]=packageInfo.packageMap;if(!packageInfo.main.indexOf("./"))packageInfo.main=packageInfo.main.substring(2);packs[name]=packageInfo},delayedModuleConfig=[],config=function(config,
booting,referenceModule){for(var p in config){if(p=="waitSeconds")req.waitms=(config[p]||0)*1E3;if(p=="cacheBust")cacheBust=config[p]?isString(config[p])?config[p]:(new Date).getTime()+"":"";if(p=="baseUrl"||p=="combo")req[p]=config[p];if(0&&p=="async"){var mode=config[p];req.legacyMode=legacyMode=isString(mode)&&/sync|legacyAsync/.test(mode)?mode:!mode?sync:false;req.async=!legacyMode}if(config[p]!==hasCache){req.rawConfig[p]=config[p];p!="has"&&has.add("config-"+p,config[p],0,booting)}}if(!req.baseUrl)req.baseUrl=
"./";if(!/\/$/.test(req.baseUrl))req.baseUrl+="/";for(p in config.has)has.add(p,config.has[p],0,booting);forEach(config.packages,fixupPackageInfo);for(var baseUrl in config.packagePaths)forEach(config.packagePaths[baseUrl],function(packageInfo){var location=baseUrl+"/"+packageInfo;if(isString(packageInfo))packageInfo={name:packageInfo};packageInfo.location=location;fixupPackageInfo(packageInfo)});computeMapProg(mix(map,config.map),mapProgs);forEach(mapProgs,function(item){item[1]=computeMapProg(item[1],
[]);if(item[0]=="*")mapProgs.star=item});computeMapProg(mix(paths,config.paths),pathsMapProg);computeAliases(config.aliases,aliases);if(booting)delayedModuleConfig.push({config:config.config});else for(p in config.config){var module=getModule(p,referenceModule);module.config=mix(module.config||{},config.config[p])}if(config.cache){consumePendingCacheInsert();pendingCacheInsert=config.cache;if(config.cache["*noref"])consumePendingCacheInsert()}signal("config",[config,req.rawConfig])};if(has("dojo-cdn")||
1){var scripts=doc.getElementsByTagName("script"),i=0,script,dojoDir,src,match;while(i<scripts.length){script=scripts[i++];if((src=script.getAttribute("src"))&&(match=src.match(/(((.*)\/)|^)dojo\.js(\W|$)/i))){dojoDir=match[3]||"";defaultConfig.baseUrl=defaultConfig.baseUrl||dojoDir;insertPointSibling=script}if(src=script.getAttribute("data-dojo-config")||script.getAttribute("djConfig")){dojoSniffConfig=req.eval("({ "+src+" })","data-dojo-config");insertPointSibling=script}if(0)if(src=script.getAttribute("data-main"))dojoSniffConfig.deps=
dojoSniffConfig.deps||[src]}}if(0)try{if(window.parent!=window&&window.parent.require){var doh=window.parent.require("doh");doh&&mix(dojoSniffConfig,doh.testConfig)}}catch(e){}req.rawConfig={};config(defaultConfig,1);if(has("dojo-cdn")){packs.dojo.location=dojoDir;if(dojoDir)dojoDir+="/";packs.dijit.location=dojoDir+"../dijit/";packs.dojox.location=dojoDir+"../dojox/"}config(userConfig,1);config(dojoSniffConfig,1)}else{paths=defaultConfig.paths;pathsMapProg=defaultConfig.pathsMapProg;packs=defaultConfig.packs;
aliases=defaultConfig.aliases;mapProgs=defaultConfig.mapProgs;modules=defaultConfig.modules;cache=defaultConfig.cache;cacheBust=defaultConfig.cacheBust;req.rawConfig=defaultConfig}if(0){req.combo=req.combo||{add:noop};var comboPending=0,combosPending=[],comboPendingTimer=null}var injectDependencies=function(module){guardCheckComplete(function(){forEach(module.deps,injectModule);if(0&&comboPending&&!comboPendingTimer)comboPendingTimer=setTimeout(function(){comboPending=0;comboPendingTimer=null;req.combo.done(function(mids,
url){var onLoadCallback=function(){runDefQ(0,mids);checkComplete()};combosPending.push(mids);injectingModule=mids;req.injectUrl(url,onLoadCallback,mids);injectingModule=0},req)},0)})},contextRequire=function(a1,a2,a3,referenceModule,contextRequire){var module,syntheticMid;if(isString(a1)){module=getModule(a1,referenceModule,true);if(module&&module.executed)return module.result;throw makeError("undefinedModule",a1);}if(!isArray(a1)){config(a1,0,referenceModule);a1=a2;a2=a3}if(isArray(a1))if(!a1.length)a2&&
a2();else{syntheticMid="require*"+uid();for(var mid,deps=[],i=0;i<a1.length;){mid=a1[i++];deps.push(getModule(mid,referenceModule))}module=mix(makeModuleInfo("",syntheticMid,0,""),{injected:arrived,deps:deps,def:a2||noop,require:referenceModule?referenceModule.require:req,gc:1});modules[module.mid]=module;injectDependencies(module);var strict=checkCompleteGuard&&legacyMode!=sync;guardCheckComplete(function(){execModule(module,strict)});if(!module.executed)execQ.push(module);checkComplete()}return contextRequire},
createRequire=function(module){if(!module)return req;var result=module.require;if(!result){result=function(a1,a2,a3){return contextRequire(a1,a2,a3,module,result)};module.require=mix(result,req);result.module=module;result.toUrl=function(name){return toUrl(name,module)};result.toAbsMid=function(mid){return toAbsMid(mid,module)};if(1)result.undef=function(mid){req.undef(mid,module)};if(0)result.syncLoadNls=function(mid){var nlsModuleInfo=getModuleInfo(mid,module),nlsModule=modules[nlsModuleInfo.mid];
if(!nlsModule||!nlsModule.executed){cached=cache[nlsModuleInfo.mid]||cache[urlKeyPrefix+nlsModuleInfo.url];if(cached){evalModuleText(cached);nlsModule=modules[nlsModuleInfo.mid]}}return nlsModule&&nlsModule.executed&&nlsModule.result}}return result},execQ=[],defQ=[],waiting={},setRequested=function(module){module.injected=requested;waiting[module.mid]=1;if(module.url)waiting[module.url]=module.pack||1;startTimer()},setArrived=function(module){module.injected=arrived;delete waiting[module.mid];if(module.url)delete waiting[module.url];
if(isEmpty(waiting)){clearTimer();0&&legacyMode==xd&&(legacyMode=sync)}},execComplete=req.idle=function(){return!defQ.length&&isEmpty(waiting)&&!execQ.length&&!checkCompleteGuard},runMapProg=function(targetMid,map){if(map)for(var i=0;i<map.length;i++)if(map[i][2].test(targetMid))return map[i];return 0},compactPath=function(path){var result=[],segment,lastSegment;path=path.replace(/\\/g,"/").split("/");while(path.length){segment=path.shift();if(segment==".."&&result.length&&lastSegment!=".."){result.pop();
lastSegment=result[result.length-1]}else if(segment!=".")result.push(lastSegment=segment)}return result.join("/")},makeModuleInfo=function(pid,mid,pack,url){if(0){var xd=req.isXdUrl(url);return{pid:pid,mid:mid,pack:pack,url:url,executed:0,def:0,isXd:xd,isAmd:!!(xd||packs[pid]&&packs[pid].isAmd)}}else return{pid:pid,mid:mid,pack:pack,url:url,executed:0,def:0}},getModuleInfo_=function(mid,referenceModule,packs,modules,baseUrl,mapProgs,pathsMapProg,aliases,alwaysCreate){var pid,pack,midInPackage,mapItem,
url,result,isRelative,requestedMid;requestedMid=mid;isRelative=/^\./.test(mid);if(/(^\/)|(\:)|(\.js$)/.test(mid)||isRelative&&!referenceModule)return makeModuleInfo(0,mid,0,mid);else{mid=compactPath(isRelative?referenceModule.mid+"/../"+mid:mid);if(/^\./.test(mid))throw makeError("irrationalPath",mid);if(referenceModule)mapItem=runMapProg(referenceModule.mid,mapProgs);mapItem=mapItem||mapProgs.star;mapItem=mapItem&&runMapProg(mid,mapItem[1]);if(mapItem)mid=mapItem[1]+mid.substring(mapItem[3]);match=
mid.match(/^([^\/]+)(\/(.+))?$/);pid=match?match[1]:"";if(pack=packs[pid])mid=pid+"/"+(midInPackage=match[3]||pack.main);else pid="";var candidateLength=0,candidate=0;forEach(aliases,function(pair){var match=mid.match(pair[0]);if(match&&match.length>candidateLength)candidate=isFunction(pair[1])?mid.replace(pair[0],pair[1]):pair[1]});if(candidate)return getModuleInfo_(candidate,0,packs,modules,baseUrl,mapProgs,pathsMapProg,aliases,alwaysCreate);result=modules[mid];if(result)return alwaysCreate?makeModuleInfo(result.pid,
result.mid,result.pack,result.url):modules[mid]}mapItem=runMapProg(mid,pathsMapProg);if(mapItem)url=mapItem[1]+mid.substring(mapItem[3]);else if(pid)url=pack.location+"/"+midInPackage;else if(has("config-tlmSiblingOfDojo"))url="../"+mid;else url=mid;if(!/(^\/)|(\:)/.test(url))url=baseUrl+url;url+=".js";return makeModuleInfo(pid,mid,pack,compactPath(url))},getModuleInfo=function(mid,referenceModule,fromPendingCache){return getModuleInfo_(mid,referenceModule,packs,modules,req.baseUrl,fromPendingCache?
[]:mapProgs,fromPendingCache?[]:pathsMapProg,fromPendingCache?[]:aliases)},resolvePluginResourceId=function(plugin,prid,referenceModule){return plugin.normalize?plugin.normalize(prid,function(mid){return toAbsMid(mid,referenceModule)}):toAbsMid(prid,referenceModule)},dynamicPluginUidGenerator=0,getModule=function(mid,referenceModule,immediate){var match,plugin,prid,result;match=mid.match(/^(.+?)\!(.*)$/);if(match){plugin=getModule(match[1],referenceModule,immediate);if(0&&legacyMode==sync&&!plugin.executed){injectModule(plugin);
if(plugin.injected===arrived&&!plugin.executed)guardCheckComplete(function(){execModule(plugin)});if(plugin.executed)promoteModuleToPlugin(plugin);else execQ.unshift(plugin)}if(plugin.executed===executed&&!plugin.load)promoteModuleToPlugin(plugin);if(plugin.load){prid=resolvePluginResourceId(plugin,match[2],referenceModule);mid=plugin.mid+"!"+(plugin.dynamic?++dynamicPluginUidGenerator+"!":"")+prid}else{prid=match[2];mid=plugin.mid+"!"+ ++dynamicPluginUidGenerator+"!waitingForPlugin"}result={plugin:plugin,
mid:mid,req:createRequire(referenceModule),prid:prid}}else result=getModuleInfo(mid,referenceModule);return modules[result.mid]||!immediate&&(modules[result.mid]=result)},toAbsMid=req.toAbsMid=function(mid,referenceModule){return getModuleInfo(mid,referenceModule).mid},toUrl=req.toUrl=function(name,referenceModule){var moduleInfo=getModuleInfo(name+"/x",referenceModule),url=moduleInfo.url;return fixupUrl(moduleInfo.pid===0?name:url.substring(0,url.length-5))},nonModuleProps={injected:arrived,executed:executed,
def:nonmodule,result:nonmodule},makeCjs=function(mid){return modules[mid]=mix({mid:mid},nonModuleProps)},cjsRequireModule=makeCjs("require"),cjsExportsModule=makeCjs("exports"),cjsModuleModule=makeCjs("module"),runFactory=function(module,args){req.trace("loader-run-factory",[module.mid]);var factory=module.def,result;0&&syncExecStack.unshift(module);if(has("config-dojo-loader-catches"))try{result=isFunction(factory)?factory.apply(null,args):factory}catch(e){signal(error,module.result=makeError("factoryThrew",
[module,e]))}else result=isFunction(factory)?factory.apply(null,args):factory;module.result=result===undefined&&module.cjs?module.cjs.exports:result;0&&syncExecStack.shift(module)},abortExec={},defOrder=0,promoteModuleToPlugin=function(pluginModule){var plugin=pluginModule.result;pluginModule.dynamic=plugin.dynamic;pluginModule.normalize=plugin.normalize;pluginModule.load=plugin.load;return pluginModule},resolvePluginLoadQ=function(plugin){var map={};forEach(plugin.loadQ,function(pseudoPluginResource){var prid=
resolvePluginResourceId(plugin,pseudoPluginResource.prid,pseudoPluginResource.req.module),mid=plugin.dynamic?pseudoPluginResource.mid.replace(/waitingForPlugin$/,prid):plugin.mid+"!"+prid,pluginResource=mix(mix({},pseudoPluginResource),{mid:mid,prid:prid,injected:0});if(!modules[mid])injectPlugin(modules[mid]=pluginResource);map[pseudoPluginResource.mid]=modules[mid];setArrived(pseudoPluginResource);delete modules[pseudoPluginResource.mid]});plugin.loadQ=0;var substituteModules=function(module){for(var replacement,
deps=module.deps||[],i=0;i<deps.length;i++){replacement=map[deps[i].mid];if(replacement)deps[i]=replacement}};for(var p in modules)substituteModules(modules[p]);forEach(execQ,substituteModules)},finishExec=function(module){req.trace("loader-finish-exec",[module.mid]);module.executed=executed;module.defOrder=defOrder++;0&&forEach(module.provides,function(cb){cb()});if(module.loadQ){promoteModuleToPlugin(module);resolvePluginLoadQ(module)}for(i=0;i<execQ.length;)if(execQ[i]===module)execQ.splice(i,
1);else i++;if(/^require\*/.test(module.mid))delete modules[module.mid]},circleTrace=[],execModule=function(module,strict){if(module.executed===executing){req.trace("loader-circular-dependency",[circleTrace.concat(module.mid).join("-\x3e")]);return!module.def||strict?abortExec:module.cjs&&module.cjs.exports}if(!module.executed){if(!module.def)return abortExec;var mid=module.mid,deps=module.deps||[],arg,argResult,args=[],i=0;if(0){circleTrace.push(mid);req.trace("loader-exec-module",["exec",circleTrace.length,
mid])}module.executed=executing;while(arg=deps[i++]){argResult=arg===cjsRequireModule?createRequire(module):arg===cjsExportsModule?module.cjs.exports:arg===cjsModuleModule?module.cjs:execModule(arg,strict);if(argResult===abortExec){module.executed=0;req.trace("loader-exec-module",["abort",mid]);0&&circleTrace.pop();return abortExec}args.push(argResult)}runFactory(module,args);finishExec(module);0&&circleTrace.pop()}return module.result},checkCompleteGuard=0,guardCheckComplete=function(proc){try{checkCompleteGuard++;
proc()}finally{checkCompleteGuard--}if(execComplete())signal("idle",[])},checkComplete=function(){if(checkCompleteGuard)return;guardCheckComplete(function(){checkDojoRequirePlugin();for(var currentDefOrder,module,i=0;i<execQ.length;){currentDefOrder=defOrder;module=execQ[i];execModule(module);if(currentDefOrder!=defOrder){checkDojoRequirePlugin();i=0}else i++}})};if(1)req.undef=function(moduleId,referenceModule){var module=getModule(moduleId,referenceModule);setArrived(module);mix(module,{def:0,executed:0,
injected:0,node:0})};if(1){if(has("dojo-loader-eval-hint-url")===undefined)has.add("dojo-loader-eval-hint-url",1);var fixupUrl=function(url){url+="";return url+(cacheBust?(/\?/.test(url)?"\x26":"?")+cacheBust:"")},injectPlugin=function(module){var plugin=module.plugin;if(plugin.executed===executed&&!plugin.load)promoteModuleToPlugin(plugin);var onLoad=function(def){module.result=def;setArrived(module);finishExec(module);checkComplete()};if(plugin.load)plugin.load(module.prid,module.req,onLoad);else if(plugin.loadQ)plugin.loadQ.push(module);
else{plugin.loadQ=[module];execQ.unshift(plugin);injectModule(plugin)}},cached=0,injectingModule=0,injectingCachedModule=0,evalModuleText=function(text,module){if(has("config-stripStrict"))text=text.replace(/"use strict"/g,"");injectingCachedModule=1;if(has("config-dojo-loader-catches"))try{if(text===cached)cached.call(null);else req.eval(text,has("dojo-loader-eval-hint-url")?module.url:module.mid)}catch(e){signal(error,makeError("evalModuleThrew",module))}else if(text===cached)cached.call(null);
else req.eval(text,has("dojo-loader-eval-hint-url")?module.url:module.mid);injectingCachedModule=0},injectModule=function(module){var mid=module.mid,url=module.url;if(module.executed||module.injected||waiting[mid]||module.url&&(module.pack&&waiting[module.url]===module.pack||waiting[module.url]==1))return;setRequested(module);if(0){var viaCombo=0;if(module.plugin&&module.plugin.isCombo){req.combo.add(module.plugin.mid,module.prid,0,req);viaCombo=1}else if(!module.plugin)viaCombo=req.combo.add(0,module.mid,
module.url,req);if(viaCombo){comboPending=1;return}}if(module.plugin){injectPlugin(module);return}var onLoadCallback=function(){runDefQ(module);if(module.injected!==arrived){if(has("dojo-enforceDefine")){signal(error,makeError("noDefine",module));return}setArrived(module);mix(module,nonModuleProps);req.trace("loader-define-nonmodule",[module.url])}if(0&&legacyMode)!syncExecStack.length&&checkComplete();else checkComplete()};cached=cache[mid]||cache[urlKeyPrefix+module.url];if(cached){req.trace("loader-inject",
["cache",module.mid,url]);evalModuleText(cached,module);onLoadCallback();return}if(0&&legacyMode)if(module.isXd)legacyMode==sync&&(legacyMode=xd);else if(module.isAmd&&legacyMode!=sync);else{var xhrCallback=function(text){if(legacyMode==sync){syncExecStack.unshift(module);evalModuleText(text,module);syncExecStack.shift();runDefQ(module);if(!module.cjs){setArrived(module);finishExec(module)}if(module.finish){var finishMid=mid+"*finish",finish=module.finish;delete module.finish;def(finishMid,["dojo",
("dojo/require!"+finish.join(",")).replace(/\./g,"/")],function(dojo){forEach(finish,function(mid){dojo.require(mid)})});execQ.unshift(getModule(finishMid))}onLoadCallback()}else{text=transformToAmd(module,text);if(text){evalModuleText(text,module);onLoadCallback()}else{injectingModule=module;req.injectUrl(fixupUrl(url),onLoadCallback,module);injectingModule=0}}};req.trace("loader-inject",["xhr",module.mid,url,legacyMode!=sync]);if(has("config-dojo-loader-catches"))try{req.getText(url,legacyMode!=
sync,xhrCallback)}catch(e){signal(error,makeError("xhrInjectFailed",[module,e]))}else req.getText(url,legacyMode!=sync,xhrCallback);return}req.trace("loader-inject",["script",module.mid,url]);injectingModule=module;req.injectUrl(fixupUrl(url),onLoadCallback,module);injectingModule=0},defineModule=function(module,deps,def){req.trace("loader-define-module",[module.mid,deps]);if(0&&module.plugin&&module.plugin.isCombo){module.result=isFunction(def)?def():def;setArrived(module);finishExec(module);return module}var mid=
module.mid;if(module.injected===arrived){signal(error,makeError("multipleDefine",module));return module}mix(module,{deps:deps,def:def,cjs:{id:module.mid,uri:module.url,exports:module.result={},setExports:function(exports){module.cjs.exports=exports},config:function(){return module.config}}});for(var i=0;deps[i];i++)deps[i]=getModule(deps[i],module);if(0&&legacyMode&&!waiting[mid]){injectDependencies(module);execQ.push(module);checkComplete()}setArrived(module);if(!isFunction(def)&&!deps.length){module.result=
def;finishExec(module)}return module},runDefQ=function(referenceModule,mids){var definedModules=[],module,args;while(defQ.length){args=defQ.shift();mids&&(args[0]=mids.shift());module=args[0]&&getModule(args[0])||referenceModule;definedModules.push([module,args[1],args[2]])}consumePendingCacheInsert(referenceModule);forEach(definedModules,function(args){injectDependencies(defineModule.apply(null,args))})}}var timerId=0,clearTimer=noop,startTimer=noop;if(1){clearTimer=function(){timerId&&clearTimeout(timerId);
timerId=0};startTimer=function(){clearTimer();if(req.waitms)timerId=global.setTimeout(function(){clearTimer();signal(error,makeError("timeout",waiting))},req.waitms)}}if(1)has.add("ie-event-behavior",doc.attachEvent&&typeof Windows==="undefined"&&(typeof opera==="undefined"||opera.toString()!="[object Opera]"));if(1&&(1||1)){var domOn=function(node,eventName,ieEventName,handler){if(!has("ie-event-behavior")){node.addEventListener(eventName,handler,false);return function(){node.removeEventListener(eventName,
handler,false)}}else{node.attachEvent(ieEventName,handler);return function(){node.detachEvent(ieEventName,handler)}}},windowOnLoadListener=domOn(window,"load","onload",function(){req.pageLoaded=1;doc.readyState!="complete"&&(doc.readyState="complete");windowOnLoadListener()});if(1){var scripts=doc.getElementsByTagName("script"),i=0,script;while(!insertPointSibling)if(!/^dojo/.test((script=scripts[i++])&&script.type))insertPointSibling=script;req.injectUrl=function(url,callback,owner){var node=owner.node=
doc.createElement("script"),onLoad=function(e){e=e||window.event;var node=e.target||e.srcElement;if(e.type==="load"||/complete|loaded/.test(node.readyState)){loadDisconnector();errorDisconnector();callback&&callback()}},loadDisconnector=domOn(node,"load","onreadystatechange",onLoad),errorDisconnector=domOn(node,"error","onerror",function(e){loadDisconnector();errorDisconnector();signal(error,makeError("scriptError",[url,e]))});node.type="text/javascript";node.charset="utf-8";node.src=url;insertPointSibling.parentNode.insertBefore(node,
insertPointSibling);return node}}}if(0)req.log=function(){try{for(var i=0;i<arguments.length;i++)0&&console.log(arguments[i])}catch(e){}};else req.log=noop;if(0){var trace=req.trace=function(group,args){if(trace.on&&trace.group[group]){signal("trace",[group,args]);for(var arg,dump=[],text="trace:"+group+(args.length?":"+args[0]:""),i=1;i<args.length;){arg=args[i++];if(isString(arg))text+=", "+arg;else dump.push(arg)}req.log(text);dump.length&&dump.push(".");req.log.apply(req,dump)}};mix(trace,{on:1,
group:{},set:function(group,value){if(isString(group))trace.group[group]=value;else mix(trace.group,group)}});trace.set(mix(mix(mix({},defaultConfig.trace),userConfig.trace),dojoSniffConfig.trace));on("config",function(config){config.trace&&trace.set(config.trace)})}else req.trace=noop;var def=function(mid,dependencies,factory){var arity=arguments.length,defaultDeps=["require","exports","module"],args=[0,mid,dependencies];if(arity==1)args=[0,isFunction(mid)?defaultDeps:[],mid];else if(arity==2&&isString(mid))args=
[mid,isFunction(dependencies)?defaultDeps:[],dependencies];else if(arity==3)args=[mid,dependencies,factory];if(0&&args[1]===defaultDeps)args[2].toString().replace(/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,"").replace(/require\(["']([\w\!\-_\.\/]+)["']\)/g,function(match,dep){args[1].push(dep)});req.trace("loader-define",args.slice(0,2));var targetModule=args[0]&&getModule(args[0]),module;if(targetModule&&!waiting[targetModule.mid])injectDependencies(defineModule(targetModule,args[1],args[2]));else if(!has("ie-event-behavior")||
!1||injectingCachedModule)defQ.push(args);else{targetModule=targetModule||injectingModule;if(!targetModule){for(mid in waiting){module=modules[mid];if(module&&module.node&&module.node.readyState==="interactive"){targetModule=module;break}}if(0&&!targetModule)for(var i=0;i<combosPending.length;i++){targetModule=combosPending[i];if(targetModule.node&&targetModule.node.readyState==="interactive")break;targetModule=0}}if(0&&isArray(targetModule)){injectDependencies(defineModule(getModule(targetModule.shift()),
args[1],args[2]));if(!targetModule.length)combosPending.splice(i,1)}else if(targetModule){consumePendingCacheInsert(targetModule);injectDependencies(defineModule(targetModule,args[1],args[2]))}else signal(error,makeError("ieDefineFailed",args[0]));checkComplete()}};def.amd={vendor:"dojotoolkit.org"};if(0)req.def=def;mix(mix(req,defaultConfig.loaderPatch),userConfig.loaderPatch);on(error,function(arg){try{console.error(arg);if(arg instanceof Error){for(var p in arg)0&&console.log(p+":",arg[p]);0&&
console.log(".")}}catch(e){}});mix(req,{uid:uid,cache:cache,packs:packs});if(0)mix(req,{paths:paths,aliases:aliases,modules:modules,legacyMode:legacyMode,execQ:execQ,defQ:defQ,waiting:waiting,packs:packs,mapProgs:mapProgs,pathsMapProg:pathsMapProg,listenerQueues:listenerQueues,computeMapProg:computeMapProg,computeAliases:computeAliases,runMapProg:runMapProg,compactPath:compactPath,getModuleInfo:getModuleInfo_});if(global.define){if(0)signal(error,makeError("defineAlreadyDefined",0));return}else{global.define=
def;global.require=req;if(0)require=req}if(0&&req.combo&&req.combo.plugins){var plugins=req.combo.plugins,pluginName;for(pluginName in plugins)mix(mix(getModule(pluginName),plugins[pluginName]),{isCombo:1,executed:"executed",load:1})}if(1){forEach(delayedModuleConfig,function(c){config(c)});var bootDeps=dojoSniffConfig.deps||userConfig.deps||defaultConfig.deps,bootCallback=dojoSniffConfig.callback||userConfig.callback||defaultConfig.callback;req.boot=bootDeps||bootCallback?[bootDeps||[],bootCallback]:
0}if(!1){!req.async&&req(["dojo"]);req.boot&&req.apply(null,req.boot)}})(this.dojoConfig||this.djConfig||this.require||{},{async:0,hasCache:{"config-selectorEngine":"lite","config-tlmSiblingOfDojo":1,"dojo-built":1,"dojo-loader":1,dom:1,"host-browser":1},packages:[{location:"../xapp",name:"xapp"},{location:"../cbtree",name:"cbtree"},{location:"../xwordpress",name:"xwordpress"},{location:"../xstyle",name:"xstyle"},{location:"../put-selector",main:"put",name:"put-selector"},{location:"../xfile",name:"xfile"},
{location:"../xappconnect",name:"xappconnect"},{location:"../dcl",main:"dcl.js",name:"dcl"},{location:"../dojox",name:"dojox"},{location:"../dijit",name:"dijit"},{location:".",name:"dojo"},{location:"../xas",name:"xas"},{location:"../dgrid",main:"OnDemandGrid",name:"dgrid"},{location:"../xide",name:"xide"},{location:"../xlog",name:"xlog"}]});
require({cache:{"xfile/widgets/EditorSelector":function(){define("xfile/widgets/EditorSelector",["dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","xide/widgets/TemplatedWidgetBase","xide/types"],function(declare,html,domClass,on,TemplatedWidgetBase,types){return dojo.declare("xfile.widgets.EditorSelector",[TemplatedWidgetBase],{wButton:null,wThumb:null,wList:null,wTree:null,currentModeClass:"fileLayoutTreeIcon",layout:null,config:null,allowedActions:null,addJQueryClasses:true,editors:null,
templateString:"\x3cspan\x3e\x3cdiv class\x3d'fileLayoutSelector editorSelector' data-dojo-type\x3d'dijit.form.DropDownButton' data-dojo-props\x3d\"iconClass:'el-icon-file-edit'\" data-dojo-attach-point\x3d'wButton'\x3e"+"\x3cspan\x3e\x3c/span\x3e"+"\x3cdiv data-dojo-attach-point\x3d'menu' data-dojo-type\x3d'dijit.Menu' style\x3d'display: none;'\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/span\x3e",open:function(){this.wButton.domNode.focus();this.wButton.openDropDown();var thiz=this;setTimeout(function(){thiz.wTree.focus()},
0)},postMixInProperties:function(){this.inherited(arguments)},createMenuItem:function(iconClass,label,operation,clickcb){var item=new dijit.MenuItem({iconClass:iconClass,label:label,operation:operation,item:null});this.menu.addChild(item);var thiz=this;this.fixButton(item);item.domNode.onclick=function(){if(clickcb)clickcb(item);else thiz.delegate.onButtonClicked(item)};if(this.delegate&&this.delegate.buttons)this.delegate.buttons.push(item);return item},fixButton:function(button){if(button&&button.iconNode){domClass.remove(button.iconNode,
"dijitReset");domClass.add(button.iconNode,"actionToolbarButtonElusive")}},startup:function(){this.inherited(arguments);var thiz=this;if(this.addJQueryClasses){domClass.add(this.menu.containerNode,"ui-menu ui-widget ui-widget-content ui-corner-all");this.fixButton(this.wButton)}if(this.editors)for(var i=0;i<this.editors.length;i++){var editor=this.editors[i];var _cb=editor.onEdit;var button=this.createMenuItem(editor.iconClass,editor.name,types.OPERATION.CUSTOM,_cb)}var opsInt=types.OPERATION_INT}})})},
"xfile/views/FilePanel":function(){define("xfile/views/FilePanel",["dojo/_base/declare","dojo/dom-class","dojo/_base/lang","xide/layout/ContentPane","xfile/views/FileTreeView","xfile/widgets/LayoutSelector","xfile/widgets/SourceSelector","xfile/factory","xide/types","./KeyboardHandler","./MouseHandler","./FilePanelPreview","dojo/cookie","dojo/json","xfile/views/History","dijit/form/FilteringSelect","dojo/has","xide/factory","xide/utils","xide/views/_ProgressIndicatorMixin"],function(declare,domClass,
lang,ContentPane,FileTreeView,LayoutSelector,SourceSelector,factory,types,KeyboardHandler,MouseHandler,FilePanelPreview,cookie,json,History,FilteringSelect,has,wfactory,utils,_ProgressIndicatorMixin){return declare("xfiles.views.FilePanel",[ContentPane,KeyboardHandler,MouseHandler,History,FilePanelPreview,_ProgressIndicatorMixin],{config:null,treeView:null,lazy:false,url:null,layoutSelector:null,sourceSelector:null,toolbar:null,store:null,model:null,currentView:null,activeItem:null,isCompact:true,
cookiePrefix:"left",currentLayoutMode:1,currentEditors:null,currentPanels:null,activePanel:null,allowFiles:true,clipboardManager:null,ignoreShow:false,_visible:false,sources:null,onPreview:function(){var item=this.findActiveItem();if(!item||item.directory!=null)return;this.doPreview(item)},getImageUrl:function(item){if(this.delegate&&this.delegate.getImageUrl)return this.delegate.getImageUrl(item);return null},getSources:function(){var sources=this.sources;if(this.delegate&&this.delegate.getSources)sources=
this.delegate.getSources()||sources;return sources},getPermaLink:function(){var parent=this.getCurrentParent();if(parent&&parent.path)return encodeURIComponent(parent.path);return null},restoreFocus:function(){if(this.currentView&&this.currentView.restoreFocus)this.currentView.restoreFocus()},setStaticData:function(data){if(this.currentView&&this.setStaticData)this.currentView.setStaticData(data)},onFind:function(){this.delegate.onFind(this.currentView,this.getCurrentParent(),this.store,this)},onTreeClicked:function(item){var nextTab=
this.findTab();if(nextTab&&nextTab.currentView&&nextTab.currentView.openItem){nextTab.currentView.autoFocus=false;nextTab.currentView.openItem(item);setTimeout(function(){nextTab.currentView.autoFocus=true},500)}},onClipBoardCopy:function(){var selection=this.getSelection();if(selection){var struct={items:selection};this.publish(types.EVENTS.ON_CLIPBOARD_COPY,struct,this)}},onClipBoardPaste:function(){this.publish(types.EVENTS.ON_CLIPBOARD_PASTE,{owner:this},this)},onClipBoardCut:function(){var selection=
this.getSelection();if(selection){var struct={items:selection};this.publish(types.EVENTS.ON_CLIPBOARD_CUT,struct,this)}},onBrowserFilesDropped:function(srcView,files){if(this.delegate&&this.delegate.onBrowserFilesDropped)this.delegate.onBrowserFilesDropped(this,files)},getShowingPanel:function(){if(this.activePanel)return this.activePanel;return null},findTab:function(evt){var activePanel=this.getShowingPanel();if(activePanel)return activePanel;if(this.owner)return this.owner;return null},onTab:function(evt){if(this.delegate&&
this.delegate.onTab){this.delegate.onTab(this);return}var nextTab=this.findTab();if(nextTab&&nextTab.currentView)if(nextTab.getActiveItem&&nextTab.getActiveItem()&&nextTab.currentView.focusItem){nextTab.currentView.focusItem(nextTab.getActiveItem(),false);return}else if(nextTab.currentView.focusFirstItem){nextTab.currentView.focusFirstItem();return}else console.error("have no tab item");else console.error("have no tab view");console.error("on tab failed! no active item!")},onDidGoBack:function(item){this.updateFocus(item)},
updateFocus:function(item){if(item)if(this.currentView&&this.currentView.focusItem)this.currentView.focusItem(item,true)},getActiveItem:function(){return this.activeItem},onBack:function(){if(this.currentView&&this.currentView.onBack)var backItem=this.currentView.onBack()},findActiveItem:function(){var item=null;if(this.activePanel)item=this.activePanel.getActiveItem();if(item)return item;if(this.owner)if(this.owner.currentView&&this.owner.currentView.getActiveItem&&this.owner.currentView.getActiveItem())return this.owner.currentView.getActiveItem();
if(this.currentView&&this.currentView.getActiveItem&&this.currentView.getActiveItem())item=this.currentView.getActiveItem();if(item)return item;else if(this.activeItem)item=this.activeItem;return null},getCurrentParent:function(){var result=null;if(this.currentView&&this.currentView.getCurrentParent())result=this.currentView.getCurrentParent();return result},getCopyDestination:function(){var item=this.findActiveItem();if(item)if(item.directory!=null&&item.directory===true)return item;else{var parent=
this.store.getParents(item,true);if(parent&&parent.length==1)item=parent[0]}return item},getSelection:function(item){var items=null;if(!item&&this.currentView&&this.currentView.getCurrentSelection(true)){items=this.currentView.getCurrentSelection(true);return items}else if(!item&&this.currentView&&this.currentView.getActiveItem())item=this.currentView.getActiveItem();return item},copyItem:function(item,inSel,inDst,silent){var dstItem=inDst||this.getCopyDestination();var selection=inSel||this.getSelection(item);
if(selection)if(lang.isArray(selection)){this.delegate.copyItems(this.currentView,selection,dstItem,this.store,silent);return}else this.delegate.copyItems(this.currentView,[selection],dstItem,silent)},moveItem:function(item,inSel,inDst,silent){var dstItem=inDst||this.getCopyDestination();var selection=inSel||this.getSelection(item);if(selection)if(lang.isArray(selection)){this.delegate.moveItems(this.currentView,selection,dstItem,this.store,silent);return}else this.delegate.moveItems(this.currentView,
[selection],dstItem,silent);return},mkdir:function(){var dst=this.getCurrentParent();if(dst)this.delegate.newItem(this,this.getSelection(null),dst,this.store,false,types.OPERATION.NEW_DIRECTORY)},mkfile:function(){var dst=this.getCurrentParent();if(dst)this.delegate.newItem(this,this.getSelection(null),dst,this.store,false,types.OPERATION.NEW_FILE)},deleteItem:function(item){var selection=this.getSelection(item);var currentPathItem=this.getCurrentPathItem();if(selection){if(lang.isArray(selection));
else{if(selection!=null&&(selection.isBack===true||selection.path==="."))return;selection=[selection]}this.delegate.deleteItems(this.currentView,selection,currentPathItem,this.store)}},loadPreferences:function(){var _cookie=this.cookiePrefix+"_layout_settings";var settings=cookie(_cookie);settings=settings?json.parse(settings):{};if(settings.layoutMode==null)settings.layoutMode=types.FILE_PANEL_LAYOUT.LIST;return settings},onPreferencesChanged:function(){var _cookie=this.cookiePrefix+"_layout_settings";
var settings=cookie();settings=settings?json.parse(settings):{};settings.layoutMode=this.config.layoutMode;cookie(_cookie,json.stringify(settings));return settings},openMenu:function(){if(this.layoutSelector)this.layoutSelector.open()},openSourceMenu:function(){if(this.sourceSelector)this.sourceSelector.open()},onRename:function(){if(this.currentView&&this.currentView.contextMenuHandler){var contextMenuHandler=this.currentView.contextMenuHandler;if(contextMenuHandler.onRename)contextMenuHandler.onRename(this)}},
onPanelClosed:function(panel){this.currentPanels.remove(panel)},onFileClosed:function(editor){this.currentEditors.remove(editor)},closeItem:function(item){var idx=this.currentEditors.length-1;if(idx<0)idx=0;if(idx<=this.currentEditors.length){var lastEditor=this.currentEditors[idx];if(lastEditor){this.currentEditors.remove(lastEditor);this.delegate.closeFile(lastEditor,this.activeItem,this)}}},openItemAlternate:function(item){item=item||this.activeItem;if(item&&item.directory!=null&&item.directory===
true){var newPanel=this.delegate.openItemAlternate(item,this);if(newPanel)this.currentPanels.push(newPanel)}},onDidOpenItem:function(item){if(item&&item.path){if(item.remote===true&&!item._S.isItemLoaded(item))this.showStandBy(this.domNode,true,5E3);var newTitle=""+item.path;var urlChunks=newTitle.split("/");if(urlChunks&&urlChunks.length>=1)newTitle=urlChunks[urlChunks.length-1];this.set("title",newTitle);var struct={store:this.store,item:item,panel:this};this.publish(types.EVENTS.ON_DID_OPEN_ITEM,
struct,this)}},openItem:function(item){if(item&&lang.isArray(item)&&item.length==1)item=item[0];item=item||this.activeItem;if(item&&item.directory==null&&this.delegate.openFile){var editor=this.delegate.openFile(item);if(editor){this.currentEditors.push(editor);return}}if(this.currentView&&this.currentView.openItem){this.currentView.openItem(item);this.onDidOpenItem(item);if(this.currentView.onResize)this.currentView.onResize()}},openUrl:function(url){if(this.currentView&&this.currentView.doQuery){var res=
this.currentView.doQuery(url,true);if(res)if(res.length>0)this.openItem(res[0]);else this.openItem(res)}},editMount:function(mount){if(this.delegate&&this.delegate.editMount)this.delegate.editMount(mount)},removeMount:function(mount){if(this.delegate&&this.delegate.removeMount)this.delegate.removeMount(mount)},changeRoot:function(url){try{this.showStandBy(this.domNode,true,4E3);var newStore=this.delegate.onChangeRoot(this,url);this.store=newStore;if(!newStore.isNew())this.onStoreReady({store:newStore})}catch(e){debugger}},
emptyCurrentView:function(){if(this.treeView){utils.destroyWidget(this.treeView);this.treeView=null}if(this.gridView){utils.destroyWidget(this.gridView);this.gridView=null}},setActiveItem:function(item){this.activeItem=item},getCurrentPath:function(){var item=null;if(this.currentView&&this.currentView.getActiveItem())item=this.currentView.getActiveItem();else if(this.activeItem)item=this.activeItem;if(item)if(item.directory!=null&&item.directory===true)return item.path;else{var parent=this.store.getParents(item,
true);if(parent&&parent.length==1)item=parent[0]}if(item)return item.path;return"./"},getCurrentPathItem:function(){var item=this.getCurrentParent();if(item)return item;if(!item&&this.currentView&&this.currentView.backItem)item=this.currentView.backItem;else if(this.currentView&&this.currentView.getActiveItem())item=this.currentView.getActiveItem();else if(this.activeItem)item=this.activeItem;if(item)if(item.directory!=null&&item.directory===true)return item;else{var parent=this.store.getParents(item,
true);if(parent&&parent.length==1)item=parent[0]}return item},beforeStoreChange:function(){var cView=this.currentView?this.currentView:null;if(cView){var parent=this.getCopyDestination();var thiz=this;if(parent){var struct={store:thiz.store,dst:{path:parent?parent.path:"./"},operation:types.OPERATION.COMPRESS};this.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz)}else;}else;},onLayoutModeChanged:function(mode){this.config.layoutMode=mode||types.FILE_PANEL_LAYOUT.LIST;var nextView=null;var thiz=
this;this.beforeStoreChange();this.emptyCurrentView();var currentPath=this.getCurrentPath();var currentPathItem=this.getCurrentPathItem();var restoreItem=currentPath;if(currentPath)restoreItem=this.store.getItemByPath(null,currentPath);switch(mode){case types.FILE_PANEL_LAYOUT.TREE:nextView=this._createTreeView();break;case types.FILE_PANEL_LAYOUT.THUMB:nextView=this.gridView=this._createGridView(types.FILE_PANEL_LAYOUT.THUMB);if(currentPathItem)setTimeout(function(){thiz.gridView.activeItem=restoreItem;
thiz.gridView.updateGrid(restoreItem)},200);break;case types.FILE_PANEL_LAYOUT.LIST:nextView=this.gridView=this._createGridView(types.FILE_PANEL_LAYOUT.LIST);if(currentPathItem)setTimeout(function(){thiz.gridView.activeItem=restoreItem;thiz.gridView.updateGrid(restoreItem)},0)}this.currentView=nextView;this.currentLayoutMode=mode;this.onPreferencesChanged()},isVisible:function(){return this._visible},onHide:function(){this._visible=false},onShow:function(){this._visible=true;if(this.ignoreShow){this.ignoreShow=
false;return}if(this.lazy){this.initWidgets();this.lazy=false;this.set("title",this.url);this.delegate.onShowPanel(this,true);return}if(this.delegate.onShowPanel)this.delegate.onShowPanel(this,false);var struct={store:this.store,panel:this};this.publish(types.EVENTS.ON_SHOW_PANEL,struct,this)},onPanelShow:function(panel){if(this.ignoreShow){this.ignoreShow=false;return}this.activePanel=panel},onOpenProperties:function(item){if(this.delegate&&this.delegate.openProperties)this.delegate.openProperties(item)},
onClose:function(){this.publish(types.EVENTS.ON_PANEL_CLOSED,{panel:this},this)},_createLayoutSelector:function(where,layout){this.layoutSelector=new LayoutSelector({delegate:this,className:"fileLayoutSelector ui-state-default",layout:layout,config:this.config});where.appendChild(this.layoutSelector.domNode);this.layoutSelector.startup()},_createSourceSelector:function(where){this.sourceSelector=new SourceSelector({delegate:this,className:"sourceSelector ui-state-default",config:this.config});where.appendChild(this.sourceSelector.domNode);
this.sourceSelector.startup()},_createTreeView:function(){if(!this.model)this.model=factory.createModel(this.store);this.treeView=factory.createTreeView("Files",this.config,this.containerNode,this,this.ctx,this.store,this.model);this.currentView=this.treeView;return this.treeView},onGridKey:function(evt){if(this.onKey)this.onKey(evt);if(this.currentView)this.currentView.ctlrKeyDown=this.ctlrKeyDown},onGridKeyUp:function(evt){if(this.onKeyUp)this.onKeyUp(evt);if(this.currentView)this.currentView.ctlrKeyDown=
this.ctlrKeyDown},onGridMouseDouble:function(evt){if(this.onMouseEventDouble)this.onMouseEventDouble(evt)},onGridMouse:function(evt){if(this.onMouseEvent)this.onMouseEvent(evt)},onItemSelected:function(item){this.setActiveItem(item)},_createGridView:function(layoutMode){this.config.layoutMode=layoutMode;if(this.isCompact){this.config.keyboardDelegate=this;this.config.mouseDelegate=this;this.config.hasTrail=false;this.config.hasControls=false;this.config.clipboardManager=this.clipboardManager;var columns=
{};columns[types.FILE_GRID_COLUMNS.NAME]=true;columns[types.FILE_GRID_COLUMNS.SIZE]=this.allowFiles;columns[types.FILE_GRID_COLUMNS.MODIFIED]=false;this.config.columnFlags=columns;this.config.allowFiles=this.allowFiles}else{var columns={};columns[types.FILE_GRID_COLUMNS.NAME]=true;columns[types.FILE_GRID_COLUMNS.SIZE]=true;columns[types.FILE_GRID_COLUMNS.MODIFIED]=true;this.config.columnFlags=columns}if(layoutMode==types.FILE_PANEL_LAYOUT.THUMB)this.config.columnFlags[types.FILE_GRID_COLUMNS.SIZE]=
false;this.gridView=factory.createGidView("Files",this.config,this.containerNode,this,this.ctx,this.store,this.model,this.isCompact?"fileGridViewCompact fileGridView":"fileGridViewLarge fileGridView");this.currentView=this.gridView;if(this.gridView.onResize)this.gridView.onResize();return this.gridView},_createFilteringSelect:function(node){this.filterSelect=new FilteringSelect({id:"stateSelect",name:"state",value:"CA",required:false,store:this.store,searchAttr:"path"},dojo.doc.createElement("div"));
node.appendChild(this.filterSelect.domNode);this.filterSelect.startup()},onReload:function(panel,button){var cView=panel?panel.currentView?panel.currentView:null:null;if(panel&&cView&&panel.getCurrentPathItem){var parent=panel.getCurrentPathItem();if(!parent)parent={path:"./"};var thiz=panel;if(parent){var struct={store:thiz.store,dst:{path:parent?parent.path:"./"},operation:types.OPERATION.RELOAD};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);setTimeout(function(){thiz.publish(types.EVENTS.STORE_CHANGED,
struct,thiz)},100)}else console.error("onReload::have no parent")}else console.error("onReload::have no current view")},_addReloadButton:function(parent){this.reloadButton=wfactory.createToolbarButton(parent,"el-icon-refresh","fileReloadButton","","",this.onReload,this);domClass.remove(this.reloadButton.iconNode,"dijitReset");domClass.add(this.reloadButton.iconNode,"actionToolbarButtonElusive");return this.reloadButton},initWidgets:function(data){var thiz=this;var hadToolbarItem=false;if(!this.toolbar){this.toolbar=
new dijit.Toolbar({style:"padding:0 !important;"},dojo.doc.createElement("div"));this.containerNode.appendChild(this.toolbar.domNode);this.toolbar.startup();domClass.add(this.toolbar.domNode,"fileViewToolbarTop ui-state-default");if(this.config.ALLOWED_ACTIONS.RELOAD==null)this.config.ALLOWED_ACTIONS.RELOAD=true;if(this.config.ALLOWED_ACTIONS.RELOAD){this._addReloadButton(this.toolbar.domNode);hadToolbarItem=true}}var _prefs=this.loadPreferences();if(!this.layoutSelector&&this.config.PANEL_OPTIONS.ALLOW_LAYOUT_SELECTOR){thiz._createLayoutSelector(this.toolbar.domNode,
_prefs.layoutMode);hadToolbarItem=true}if(!this.sourceSelector&&this.config.PANEL_OPTIONS.ALLOW_SOURCE_SELECTOR){thiz._createSourceSelector(this.toolbar.domNode);dojo.place(this.sourceSelector.domNode,this.toolbar.domNode,"last");hadToolbarItem=true}if(!hadToolbarItem){utils.destroyWidget(this.toolbar);this.toolbar=null}if(_prefs!=null&&_prefs.layoutMode!=null)this.onLayoutModeChanged(_prefs.layoutMode);else{if(!this.treeView)this._createTreeView();setTimeout(function(){thiz.resize();thiz.treeView.resize();
thiz.parentContainer.resize()},500)}},onItemLoaded:function(item){this.showStandBy(this.domNode,false)},onStoreReady:function(evt){this.showStandBy(this.domNode,false);var thiz=this;if(evt.store===this.store)setTimeout(function(){var _prefs=thiz.loadPreferences();thiz.onLayoutModeChanged(_prefs.layoutMode)},100)},startup:function(){this.inherited(arguments);this.initHistory();this.currentEditors=[];if(!this.currentPanels)this.currentPanels=[];if(!this.lazy)this.initWidgets();this.subscribe(types.EVENTS.ON_FILE_STORE_READY,
this.onStoreReady);this.subscribe(types.EVENTS.ITEM_SELECTED,this.updatePreview)}})})},"dojo/_base/lang":function(){define("dojo/_base/lang",["./kernel","../has","../sniff"],function(dojo,has){has.add("bug-for-in-skips-shadowed",function(){for(var i in{toString:1})return 0;return 1});var _extraNames=has("bug-for-in-skips-shadowed")?"hasOwnProperty.valueOf.isPrototypeOf.propertyIsEnumerable.toLocaleString.toString.constructor".split("."):[],_extraLen=_extraNames.length,getProp=function(parts,create,
context){var p,i=0,dojoGlobal=dojo.global;if(!context)if(!parts.length)return dojoGlobal;else{p=parts[i++];try{context=dojo.scopeMap[p]&&dojo.scopeMap[p][1]}catch(e){}context=context||(p in dojoGlobal?dojoGlobal[p]:create?dojoGlobal[p]={}:undefined)}while(context&&(p=parts[i++]))context=p in context?context[p]:create?context[p]={}:undefined;return context},opts=Object.prototype.toString,efficient=function(obj,offset,startWith){return(startWith||[]).concat(Array.prototype.slice.call(obj,offset||0))},
_pattern=/\{([^\}]+)\}/g;var lang={_extraNames:_extraNames,_mixin:function(dest,source,copyFunc){var name,s,i,empty={};for(name in source){s=source[name];if(!(name in dest)||dest[name]!==s&&(!(name in empty)||empty[name]!==s))dest[name]=copyFunc?copyFunc(s):s}if(has("bug-for-in-skips-shadowed"))if(source)for(i=0;i<_extraLen;++i){name=_extraNames[i];s=source[name];if(!(name in dest)||dest[name]!==s&&(!(name in empty)||empty[name]!==s))dest[name]=copyFunc?copyFunc(s):s}return dest},mixin:function(dest,
sources){if(!dest)dest={};for(var i=1,l=arguments.length;i<l;i++)lang._mixin(dest,arguments[i]);return dest},setObject:function(name,value,context){var parts=name.split("."),p=parts.pop(),obj=getProp(parts,true,context);return obj&&p?obj[p]=value:undefined},getObject:function(name,create,context){return getProp(name.split("."),create,context)},exists:function(name,obj){return lang.getObject(name,false,obj)!==undefined},isString:function(it){return typeof it=="string"||it instanceof String},isArray:function(it){return it&&
(it instanceof Array||typeof it=="array")},isFunction:function(it){return opts.call(it)==="[object Function]"},isObject:function(it){return it!==undefined&&(it===null||typeof it=="object"||lang.isArray(it)||lang.isFunction(it))},isArrayLike:function(it){return it&&it!==undefined&&!lang.isString(it)&&!lang.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(lang.isArray(it)||isFinite(it.length))},isAlien:function(it){return it&&!lang.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it))},
extend:function(ctor,props){for(var i=1,l=arguments.length;i<l;i++)lang._mixin(ctor.prototype,arguments[i]);return ctor},_hitchArgs:function(scope,method){var pre=lang._toArray(arguments,2);var named=lang.isString(method);return function(){var args=lang._toArray(arguments);var f=named?(scope||dojo.global)[method]:method;return f&&f.apply(scope||this,pre.concat(args))}},hitch:function(scope,method){if(arguments.length>2)return lang._hitchArgs.apply(dojo,arguments);if(!method){method=scope;scope=null}if(lang.isString(method)){scope=
scope||dojo.global;if(!scope[method])throw['lang.hitch: scope["',method,'"] is null (scope\x3d"',scope,'")'].join("");return function(){return scope[method].apply(scope,arguments||[])}}return!scope?method:function(){return method.apply(scope,arguments||[])}},delegate:function(){function TMP(){}return function(obj,props){TMP.prototype=obj;var tmp=new TMP;TMP.prototype=null;if(props)lang._mixin(tmp,props);return tmp}}(),_toArray:has("ie")?function(){function slow(obj,offset,startWith){var arr=startWith||
[];for(var x=offset||0;x<obj.length;x++)arr.push(obj[x]);return arr}return function(obj){return(obj.item?slow:efficient).apply(this,arguments)}}():efficient,partial:function(method){var arr=[null];return lang.hitch.apply(dojo,arr.concat(lang._toArray(arguments)))},clone:function(src){if(!src||typeof src!="object"||lang.isFunction(src))return src;if(src.nodeType&&"cloneNode"in src)return src.cloneNode(true);if(src instanceof Date)return new Date(src.getTime());if(src instanceof RegExp)return new RegExp(src);
var r,i,l;if(lang.isArray(src)){r=[];for(i=0,l=src.length;i<l;++i)if(i in src)r.push(lang.clone(src[i]))}else r=src.constructor?new src.constructor:{};return lang._mixin(r,src,lang.clone)},trim:String.prototype.trim?function(str){return str.trim()}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"")},replace:function(tmpl,map,pattern){return tmpl.replace(pattern||_pattern,lang.isFunction(map)?map:function(_,k){return lang.getObject(k,false,map)})}};1&&lang.mixin(dojo,lang);return lang})},
"dijit/Tooltip":function(){require({cache:{"url:dijit/templates/Tooltip.html":'\x3cdiv class\x3d"dijitTooltip dijitTooltipLeft" id\x3d"dojoTooltip"\n\t\x3e\x3cdiv class\x3d"dijitTooltipContainer dijitTooltipContents" data-dojo-attach-point\x3d"containerNode" role\x3d\'alert\'\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d"dijitTooltipConnector" data-dojo-attach-point\x3d"connectorNode"\x3e\x3c/div\n\x3e\x3c/div\x3e\n'}});define("dijit/Tooltip",["dojo/_base/array","dojo/_base/declare","dojo/_base/fx","dojo/dom",
"dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","dojo/mouse","dojo/on","dojo/sniff","./_base/manager","./place","./_Widget","./_TemplatedMixin","./BackgroundIframe","dojo/text!./templates/Tooltip.html","./main"],function(array,declare,fx,dom,domClass,domGeometry,domStyle,lang,mouse,on,has,manager,place,_Widget,_TemplatedMixin,BackgroundIframe,template,dijit){var MasterTooltip=declare("dijit._MasterTooltip",[_Widget,_TemplatedMixin],{duration:manager.defaultDuration,templateString:template,
postCreate:function(){this.ownerDocumentBody.appendChild(this.domNode);this.bgIframe=new BackgroundIframe(this.domNode);this.fadeIn=fx.fadeIn({node:this.domNode,duration:this.duration,onEnd:lang.hitch(this,"_onShow")});this.fadeOut=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:lang.hitch(this,"_onHide")})},show:function(innerHTML,aroundNode,position,rtl,textDir){if(this.aroundNode&&this.aroundNode===aroundNode&&this.containerNode.innerHTML==innerHTML)return;if(this.fadeOut.status()==
"playing"){this._onDeck=arguments;return}this.containerNode.innerHTML=innerHTML;if(textDir)this.set("textDir",textDir);this.containerNode.align=rtl?"right":"left";var pos=place.around(this.domNode,aroundNode,position&&position.length?position:Tooltip.defaultPosition,!rtl,lang.hitch(this,"orient"));var aroundNodeCoords=pos.aroundNodePos;if(pos.corner.charAt(0)=="M"&&pos.aroundCorner.charAt(0)=="M"){this.connectorNode.style.top=aroundNodeCoords.y+(aroundNodeCoords.h-this.connectorNode.offsetHeight>>
1)-pos.y+"px";this.connectorNode.style.left=""}else if(pos.corner.charAt(1)=="M"&&pos.aroundCorner.charAt(1)=="M")this.connectorNode.style.left=aroundNodeCoords.x+(aroundNodeCoords.w-this.connectorNode.offsetWidth>>1)-pos.x+"px";else{this.connectorNode.style.left="";this.connectorNode.style.top=""}domStyle.set(this.domNode,"opacity",0);this.fadeIn.play();this.isShowingNow=true;this.aroundNode=aroundNode},orient:function(node,aroundCorner,tooltipCorner,spaceAvailable,aroundNodeCoords){this.connectorNode.style.top=
"";var heightAvailable=spaceAvailable.h,widthAvailable=spaceAvailable.w;node.className="dijitTooltip "+{"MR-ML":"dijitTooltipRight","ML-MR":"dijitTooltipLeft","TM-BM":"dijitTooltipAbove","BM-TM":"dijitTooltipBelow","BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[aroundCorner+"-"+tooltipCorner];this.domNode.style.width=
"auto";var size=domGeometry.position(this.domNode);if(has("ie")==9)size.w+=2;var width=Math.min(Math.max(widthAvailable,1),size.w);domGeometry.setMarginBox(this.domNode,{w:width});if(tooltipCorner.charAt(0)=="B"&&aroundCorner.charAt(0)=="B"){var bb=domGeometry.position(node);var tooltipConnectorHeight=this.connectorNode.offsetHeight;if(bb.h>heightAvailable){var aroundNodePlacement=heightAvailable-(aroundNodeCoords.h+tooltipConnectorHeight>>1);this.connectorNode.style.top=aroundNodePlacement+"px";
this.connectorNode.style.bottom=""}else{this.connectorNode.style.bottom=Math.min(Math.max(aroundNodeCoords.h/2-tooltipConnectorHeight/2,0),bb.h-tooltipConnectorHeight)+"px";this.connectorNode.style.top=""}}else{this.connectorNode.style.top="";this.connectorNode.style.bottom=""}return Math.max(0,size.w-widthAvailable)},_onShow:function(){if(has("ie"))this.domNode.style.filter=""},hide:function(aroundNode){if(this._onDeck&&this._onDeck[1]==aroundNode)this._onDeck=null;else if(this.aroundNode===aroundNode){this.fadeIn.stop();
this.isShowingNow=false;this.aroundNode=null;this.fadeOut.play()}else;},_onHide:function(){this.domNode.style.cssText="";this.containerNode.innerHTML="";if(this._onDeck){this.show.apply(this,this._onDeck);this._onDeck=null}}});if(0)MasterTooltip.extend({_setAutoTextDir:function(node){this.applyTextDir(node);array.forEach(node.children,function(child){this._setAutoTextDir(child)},this)},_setTextDirAttr:function(textDir){this._set("textDir",textDir);if(textDir=="auto")this._setAutoTextDir(this.containerNode);
else this.containerNode.dir=this.textDir}});dijit.showTooltip=function(innerHTML,aroundNode,position,rtl,textDir){if(position)position=array.map(position,function(val){return{after:"after-centered",before:"before-centered"}[val]||val});if(!Tooltip._masterTT)dijit._masterTT=Tooltip._masterTT=new MasterTooltip;return Tooltip._masterTT.show(innerHTML,aroundNode,position,rtl,textDir)};dijit.hideTooltip=function(aroundNode){return Tooltip._masterTT&&Tooltip._masterTT.hide(aroundNode)};var Tooltip=declare("dijit.Tooltip",
_Widget,{label:"",showDelay:400,connectId:[],position:[],selector:"",_setConnectIdAttr:function(newId){array.forEach(this._connections||[],function(nested){array.forEach(nested,function(handle){handle.remove()})},this);this._connectIds=array.filter(lang.isArrayLike(newId)?newId:newId?[newId]:[],function(id){return dom.byId(id,this.ownerDocument)},this);this._connections=array.map(this._connectIds,function(id){var node=dom.byId(id,this.ownerDocument),selector=this.selector,delegatedEvent=selector?
function(eventType){return on.selector(selector,eventType)}:function(eventType){return eventType},self=this;return[on(node,delegatedEvent(mouse.enter),function(){self._onHover(this)}),on(node,delegatedEvent("focusin"),function(){self._onHover(this)}),on(node,delegatedEvent(mouse.leave),lang.hitch(self,"_onUnHover")),on(node,delegatedEvent("focusout"),lang.hitch(self,"_onUnHover"))]},this);this._set("connectId",newId)},addTarget:function(node){var id=node.id||node;if(array.indexOf(this._connectIds,
id)==-1)this.set("connectId",this._connectIds.concat(id))},removeTarget:function(node){var id=node.id||node,idx=array.indexOf(this._connectIds,id);if(idx>=0){this._connectIds.splice(idx,1);this.set("connectId",this._connectIds)}},buildRendering:function(){this.inherited(arguments);domClass.add(this.domNode,"dijitTooltipData")},startup:function(){this.inherited(arguments);var ids=this.connectId;array.forEach(lang.isArrayLike(ids)?ids:[ids],this.addTarget,this)},getContent:function(node){return this.label||
this.domNode.innerHTML},_onHover:function(target){if(!this._showTimer)this._showTimer=this.defer(function(){this.open(target)},this.showDelay)},_onUnHover:function(){if(this._showTimer){this._showTimer.remove();delete this._showTimer}this.close()},open:function(target){if(this._showTimer){this._showTimer.remove();delete this._showTimer}var content=this.getContent(target);if(!content)return;Tooltip.show(content,target,this.position,!this.isLeftToRight(),this.textDir);this._connectNode=target;this.onShow(target,
this.position)},close:function(){if(this._connectNode){Tooltip.hide(this._connectNode);delete this._connectNode;this.onHide()}if(this._showTimer){this._showTimer.remove();delete this._showTimer}},onShow:function(){},onHide:function(){},destroy:function(){this.close();array.forEach(this._connections||[],function(nested){array.forEach(nested,function(handle){handle.remove()})},this);this.inherited(arguments)}});Tooltip._MasterTooltip=MasterTooltip;Tooltip.show=dijit.showTooltip;Tooltip.hide=dijit.hideTooltip;
Tooltip.defaultPosition=["after-centered","before-centered"];return Tooltip})},"xfile/manager/FileManager":function(){define("xfile/manager/FileManager",["dojo/_base/declare","dojo/_base/lang","xide/manager/ServerActionBase","dojox/rpc/Service","xide/types","xide/utils","dojox/encoding/digests/SHA1","./RPCService"],function(declare,lang,ServerActionBase,Service,types,utils,SHA1,RPCService){return declare("xfile.manager.FileManager",[ServerActionBase],{_uploadXHR:null,store:null,config:null,filesToUpload:null,
serviceUrl:"index.php",serviceClass:"XCOM_Directory_Service",settingsStore:null,onFileUploadFailed:function(item){var thiz=this;var struct={store:thiz.store,dst:{path:item.dstDir},operation:types.OPERATION.COMPRESS};this.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,item.callee);setTimeout(function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,item.callee)},500)},onFileUploaded:function(item){var thiz=this;var struct={store:thiz.store,dst:{path:item.dstDir},operation:types.OPERATION.COMPRESS};
this.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,item.callee);setTimeout(function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,item.callee);var struct1={message:""+item.name+" uploaded to "+item.dstDir};thiz.publish(types.EVENTS.STATUS,struct1,thiz);var struct2={item:item};thiz.publish(types.EVENTS.UPLOAD_FINISH,struct2,thiz)},500)},getUploadUrl:function(){var url=""+this.serviceUrl;url=url.replace("view\x3drpc","view\x3dupload");url=url.replace("../../../../","./");url+="\x26service\x3d";
url+=this.serviceClass;url+=".put\x26callback\x3dnada";return url},initXHRUpload:function(item,autoRename,dstDir,mount){var xhr=new XMLHttpRequest;var uploadUrl=this.getUploadUrl();var uri=""+uploadUrl;uri+="\x26mount\x3d"+encodeURIComponent(mount);uri+="\x26dstDir\x3d"+encodeURIComponent(dstDir);var thiz=this;var upload=xhr.upload;upload.addEventListener("progress",function(e){if(!e.lengthComputable)thiz.onFileUploaded(item);else{var struct={item:item,progress:e};item.isLoading=true;thiz.publish(types.EVENTS.UPLOAD_PROGRESS,
struct,this)}}.bind(this),false);xhr.onreadystatechange=function(){if(xhr.readyState==4){if(xhr.responseText&&xhr.responseText!="OK"){var error=utils.getJson(xhr.responseText);if(error&&error.result&&lang.isArray(error.result)){for(var i=0;i<error.result.length;i++)thiz.publish(types.EVENTS.ERROR,"Error uploading : "+item.name+" "+error.result[i],thiz);thiz.onFileUploadFailed(item);thiz.submitNext();return}if(error&&error.error){thiz.publish(types.EVENTS.ERROR,"Error uploading : "+item.name+" "+error.error.message,
thiz);thiz.onFileUploadFailed(item)}}else;thiz.onFileUploaded(item);thiz.submitNext()}}.bind(this);upload.onerror=function(){thiz.publish(types.EVENTS.ERROR,"Error uploading : "+item.name,thiz)};xhr.open("POST",uri,true);return xhr},hasLoadingItem:function(){for(var i=0;i<this.filesToUpload.length;i++)if(this.filesToUpload[i].status=="loading")return this.filesToUpload[i];return false},upload:function(files,mount,path,callee){for(var i=0;i<files.length;i++){this.filesToUpload.push(files[i]);files[i]["dstDir"]=
""+path;files[i]["mount"]=""+mount;files[i]["callee"]=callee}this.submit()},submit:function(){this.submitNext()},sendFileUsingFormData:function(xhr,file){var formData=new FormData;formData.append("userfile_0",file);xhr.send(formData)},sendFileMultipart:function(item){var auto_rename=false;item.status="loading";var xhr=this.initXHRUpload(item,auto_rename?"auto_rename\x3dtrue":"",item["dstDir"],item["mount"]);var file=item.file;var struct={item:item,name:item.name};this.publish(types.EVENTS.UPLOAD_BEGIN,
struct,this);if(window.FormData)this.sendFileUsingFormData(xhr,item);else if(window.FileReader){var fileReader=new FileReader;fileReader.onload=function(e){this.xhrSendAsBinary(xhr,file.name,e.target.result,item)}.bind(this);fileReader.readAsBinaryString(file)}else if(file.getAsBinary){window.testFile=file;var data=file.getAsBinary();this.xhrSendAsBinary(xhr,file.name,data,item)}},submitNext:function(){var item=this.getNextUploadItem();if(item)this.sendFileMultipart(item);else if(this.hasLoadingItem())return},
getNextUploadItem:function(){for(var i=0;i<this.filesToUpload.length;i++)if(this.filesToUpload[i].status==null)return this.filesToUpload[i];return false},onError:function(err){if(err)if(err.code===1){if(err.message&&lang.isArray(err.message)){this.publish(types.EVENTS.ERROR,err.message.join("\x3cbr/\x3e"),this);return}}else if(err.code===0)this.publish(types.EVENTS.STATUS,"Ok",this);var struct={error:err};this.publish(types.EVENTS.ERROR,struct,this)},addError:function(def){var thiz=this;var _cb=function(){thiz.onError()};
def.addCallback(_cb)},downloadItem:function(src,readyCB){return this.callMethod(types.OPERATION.DOWNLOAD,[src],readyCB,true)},mkdir:function(mount,path,readyCB){return this.callMethod(types.OPERATION.NEW_DIRECTORY,[mount,path],readyCB,true)},mkfile:function(mount,path,content,readyCB){return this.callMethod(types.OPERATION.NEW_FILE,[mount,path],readyCB,true)},downloadTo:function(url,dst,readyCB){return this.callMethod(types.OPERATION.DOWNLOAD_TO,[url,dst],readyCB,true)},find:function(conf,readyCB){try{return this.callMethod(types.OPERATION.FIND,
conf,readyCB,true)}catch(e){debugger}},copyItem:function(src,dst,include,exclude,mode,readyCB){var thiz=this;var _cb=function(){thiz.publish(types.EVENTS.ON_COPY_END,{terminatorItem:src},this);readyCB(arguments)};thiz.publish(types.EVENTS.ON_COPY_BEGIN,{src:src,dst:dst},this);var res=this.callMethod(types.OPERATION.COPY,[src,dst,include,exclude,mode,false],_cb,true);if(!res)thiz.publish(types.EVENTS.ON_COPY_END,{terminatorItem:src},this);return res},rename:function(mount,src,dst,readyCB){return this.callMethod(types.OPERATION.RENAME,
[mount,src,dst],readyCB,true)},moveItem:function(src,dst,include,exclude,mode,readyCB){var thiz=this;var _cb=function(){thiz.publish(types.EVENTS.ON_MOVE_END,{terminatorItem:src});readyCB(arguments)};this.publish(types.EVENTS.ON_MOVE_BEGIN,{src:src,dst:dst},this);return this.callMethod(types.OPERATION.MOVE,[src,dst,include,exclude,mode],_cb,true)},onErrors:function(res){},deleteItems:function(selection,readyCB){var thiz=this;var _cb=function(){thiz.publish(types.EVENTS.ON_DELETE_END,{terminatorItem:selection},
this);readyCB(arguments)};this.publish(types.EVENTS.ON_DELETE_BEGIN,{items:selection},this);return this.callMethod(types.OPERATION.DELETE,[selection,true],_cb,true)},compressItem:function(mount,src,type,readyCB){var thiz=this;var _cb=function(){thiz.publish(types.EVENTS.ON_COMPRESS_END,{terminatorItem:src});readyCB(arguments)};this.publish(types.EVENTS.ON_COMPRESS_BEGIN,{src:src},this);return this.callMethod(types.OPERATION.COMPRESS,[mount,src,type],_cb,true)},getContent:function(mount,path,readyCB){return this.callMethod(types.OPERATION.GET_CONTENT,
[mount,path,false,false],readyCB,true)},setContent:function(mount,path,content,readyCB){this.publish(types.EVENTS.ON_CHANGED_CONTENT,{"mount":mount,"path":path,"content":content});return this.callMethod(types.OPERATION.SET_CONTENT,[mount,path,content],readyCB,true)},onMessages:function(res){var events=utils.getJson(res.events);if(events&&lang.isArray(events))for(var i=0;i<events.length;i++){var struct={path:events[i].relPath};lang.mixin(struct,events[i]);this.publish(events[i].clientEvent,struct,
this)}},callMethodEx:function(serverClassIn,method,args,readyCB,omitError){var serviceClass=serverClassIn||this.serviceClass;var thiz=this;if(this.serviceObject[serviceClass][method]==null){if(omitError===true)this.onError({code:1,message:["Sorry, server doesnt know "+method]});return null}var params={};params=lang.mixin(params,this.config.RPC_PARAMS.rpcFixedParams);params[this.config.RPC_PARAMS.rpcUserField]=this.config.RPC_PARAMS.rpcUserValue;this.serviceObject.extraArgs=params;this.serviceObject.signatureField=
this.config.RPC_PARAMS.rpcSignatureField;this.serviceObject.signatureToken=this.config.RPC_PARAMS.rpcSignatureToken;this.serviceObject[serviceClass][method](args).then(function(res){try{if(readyCB)readyCB(res)}catch(e){console.error("bad news : callback for method "+method+" caused a crash in service class "+serviceClass)}if(res&&res.error&&res.error.code==3)setTimeout(function(){thiz.onMessages(res.error)},50);if(res&&res.error&&res.error&&res.error.code!=0){thiz.onError(res.error);return}var struct=
{message:"Ok!"};thiz.publish(types.EVENTS.STATUS,struct,this)},function(err){thiz.onError(err)})},callMethod:function(method,args,readyCB,omitError){var serviceClass=this.serviceClass;try{var thiz=this;if(this.serviceObject[serviceClass][method]==null){if(omitError===true)this.onError({code:1,message:["Sorry, server doesnt know "+method]});return null}var params={};params=lang.mixin(params,this.config.RPC_PARAMS.rpcFixedParams);params[this.config.RPC_PARAMS.rpcUserField]=this.config.RPC_PARAMS.rpcUserValue;
this.serviceObject.extraArgs=params;this.serviceObject.signatureField=this.config.RPC_PARAMS.rpcSignatureField;this.serviceObject.signatureToken=this.config.RPC_PARAMS.rpcSignatureToken;this.serviceObject[this.serviceClass][method](args).then(function(res){try{if(readyCB)readyCB(res)}catch(e){console.error("crashed in "+method);0&&console.dir(e);debugger}if(res&&res.error&&res.error.code==3)setTimeout(function(){thiz.onMessages(res.error)},50);if(res&&res.error&&res.error&&res.error.code==1){thiz.onError(res.error);
return}var struct={message:"Ok!"};thiz.publish(types.EVENTS.STATUS,struct,this)},function(err){thiz.onError(err)})}catch(e){console.error("crash! "+e);thiz.onError(e)}},_initService:function(){this.filesToUpload=[];if(!this.serviceObject)this.serviceObject=new RPCService(this.serviceUrl)},constructor:function(){if(typeof xFileConfig!="undefined")if(xFileConfig.FILE_SERVICE)this.serviceUrl=xFileConfig.FILE_SERVICE}})})},"dojo/date/stamp":function(){define("dojo/date/stamp",["../_base/lang","../_base/array"],
function(lang,array){var stamp={};lang.setObject("dojo.date.stamp",stamp);stamp.fromISOString=function(formattedString,defaultTime){if(!stamp._isoRegExp)stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;var match=stamp._isoRegExp.exec(formattedString),result=null;if(match){match.shift();if(match[1])match[1]--;if(match[6])match[6]*=1E3;if(defaultTime){defaultTime=new Date(defaultTime);array.forEach(array.map(["FullYear",
"Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(prop){return defaultTime["get"+prop]()}),function(value,index){match[index]=match[index]||value})}result=new Date(match[0]||1970,match[1]||0,match[2]||1,match[3]||0,match[4]||0,match[5]||0,match[6]||0);if(match[0]<100)result.setFullYear(match[0]||1970);var offset=0,zoneSign=match[7]&&match[7].charAt(0);if(zoneSign!="Z"){offset=(match[8]||0)*60+(Number(match[9])||0);if(zoneSign!="-")offset*=-1}if(zoneSign)offset-=result.getTimezoneOffset();
if(offset)result.setTime(result.getTime()+offset*6E4)}return result};stamp.toISOString=function(dateObject,options){var _=function(n){return n<10?"0"+n:n};options=options||{};var formattedDate=[],getter=options.zulu?"getUTC":"get",date="";if(options.selector!="time"){var year=dateObject[getter+"FullYear"]();date=["0000".substr((year+"").length)+year,_(dateObject[getter+"Month"]()+1),_(dateObject[getter+"Date"]())].join("-")}formattedDate.push(date);if(options.selector!="date"){var time=[_(dateObject[getter+
"Hours"]()),_(dateObject[getter+"Minutes"]()),_(dateObject[getter+"Seconds"]())].join(":");var millis=dateObject[getter+"Milliseconds"]();if(options.milliseconds)time+="."+(millis<100?"0":"")+_(millis);if(options.zulu)time+="Z";else if(options.selector!="time"){var timezoneOffset=dateObject.getTimezoneOffset();var absOffset=Math.abs(timezoneOffset);time+=(timezoneOffset>0?"-":"+")+_(Math.floor(absOffset/60))+":"+_(absOffset%60)}formattedDate.push(time)}return formattedDate.join("T")};return stamp})},
"xwordpress/Widgets":function(){define("xwordpress/Widgets",["dojo/_base/declare","xide/widgets/TemplatedWidgetBase","xide/widgets/EditorToolbar","xide/widgets/_CSSMixin","xide/widgets/_HTMLTemplateMixin","xide/widgets/_InsertionMixin","xide/widgets/_StyleMixin","xide/widgets/_PermaMixin","xide/widgets/Button","xfile/widgets/Image","xfile/widgets/Image","xfile/widgets/FileProperties","xfile/widgets/Toaster","xfile/widgets/BreadCrumb","xfile/widgets/NewItemSelector","xfile/widgets/EditorSelector",
"xfile/widgets/UploadItem","xfile/widgets/ProgressItem"],function(declare){return declare("xwordpress.Widgets",null,{})})},"dojo/_base/xhr":function(){define("dojo/_base/xhr",["./kernel","./sniff","require","../io-query","../dom","../dom-form","./Deferred","./config","./json","./lang","./array","../on","../aspect","../request/watch","../request/xhr","../request/util"],function(dojo,has,require,ioq,dom,domForm,Deferred,config,json,lang,array,on,aspect,watch,_xhr,util){dojo._xhrObj=_xhr._create;var cfg=
dojo.config;dojo.objectToQuery=ioq.objectToQuery;dojo.queryToObject=ioq.queryToObject;dojo.fieldToObject=domForm.fieldToObject;dojo.formToObject=domForm.toObject;dojo.formToQuery=domForm.toQuery;dojo.formToJson=domForm.toJson;dojo._blockAsync=false;var handlers=dojo._contentHandlers=dojo.contentHandlers={"text":function(xhr){return xhr.responseText},"json":function(xhr){return json.fromJson(xhr.responseText||null)},"json-comment-filtered":function(xhr){if(!config.useCommentedJson)0&&console.warn("Consider using the standard mimetype:application/json."+
" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}\x26\x26\n"+"Use djConfig.useCommentedJson\x3dtrue to turn off this message.");var value=xhr.responseText;var cStartIdx=value.indexOf("/*");var cEndIdx=value.lastIndexOf("*/");if(cStartIdx==-1||cEndIdx==-1)throw new Error("JSON was not comment filtered");return json.fromJson(value.substring(cStartIdx+2,cEndIdx))},"javascript":function(xhr){return dojo.eval(xhr.responseText)},
"xml":function(xhr){var result=xhr.responseXML;if(result&&has("dom-qsa2.1")&&!result.querySelectorAll&&has("dom-parser"))result=(new DOMParser).parseFromString(xhr.responseText,"application/xml");if(has("ie"))if(!result||!result.documentElement){var ms=function(n){return"MSXML"+n+".DOMDocument"};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];array.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);result=dom}catch(e){return false}return true})}return result},
"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText))return handlers["json-comment-filtered"](xhr);else return handlers["json"](xhr)}};dojo._ioSetArgs=function(args,canceller,okHandler,errHandler){var ioArgs={args:args,url:args.url};var formObject=null;if(args.form){var form=dom.byId(args.form);var actnNode=form.getAttributeNode("action");ioArgs.url=ioArgs.url||(actnNode?actnNode.value:null);formObject=domForm.toObject(form)}var miArgs=[{}];if(formObject)miArgs.push(formObject);
if(args.content)miArgs.push(args.content);if(args.preventCache)miArgs.push({"dojo.preventCache":(new Date).valueOf()});ioArgs.query=ioq.objectToQuery(lang.mixin.apply(null,miArgs));ioArgs.handleAs=args.handleAs||"text";var d=new Deferred(function(dfd){dfd.canceled=true;canceller&&canceller(dfd);var err=dfd.ioArgs.error;if(!err){err=new Error("request cancelled");err.dojoType="cancel";dfd.ioArgs.error=err}return err});d.addCallback(okHandler);var ld=args.load;if(ld&&lang.isFunction(ld))d.addCallback(function(value){return ld.call(args,
value,ioArgs)});var err=args.error;if(err&&lang.isFunction(err))d.addErrback(function(value){return err.call(args,value,ioArgs)});var handle=args.handle;if(handle&&lang.isFunction(handle))d.addBoth(function(value){return handle.call(args,value,ioArgs)});d.addErrback(function(error){return errHandler(error,d)});if(cfg.ioPublish&&dojo.publish&&ioArgs.args.ioPublish!==false){d.addCallbacks(function(res){dojo.publish("/dojo/io/load",[d,res]);return res},function(res){dojo.publish("/dojo/io/error",[d,
res]);return res});d.addBoth(function(res){dojo.publish("/dojo/io/done",[d,res]);return res})}d.ioArgs=ioArgs;return d};var _deferredOk=function(dfd){var ret=handlers[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret};var _deferError=function(error,dfd){if(!dfd.ioArgs.args.failOk)console.error(error);return error};var _checkPubCount=function(dfd){if(_pubCount<=0){_pubCount=0;if(cfg.ioPublish&&dojo.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false))dojo.publish("/dojo/io/stop")}};
var _pubCount=0;aspect.after(watch,"_onAction",function(){_pubCount-=1});aspect.after(watch,"_onInFlight",_checkPubCount);dojo._ioCancelAll=watch.cancelAll;dojo._ioNotifyStart=function(dfd){if(cfg.ioPublish&&dojo.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_pubCount)dojo.publish("/dojo/io/start");_pubCount+=1;dojo.publish("/dojo/io/send",[dfd])}};dojo._ioWatch=function(dfd,validCheck,ioCheck,resHandle){var args=dfd.ioArgs.options=dfd.ioArgs.args;lang.mixin(dfd,{response:dfd.ioArgs,isValid:function(response){return validCheck(dfd)},
isReady:function(response){return ioCheck(dfd)},handleResponse:function(response){return resHandle(dfd)}});watch(dfd);_checkPubCount(dfd)};var _defaultContentType="application/x-www-form-urlencoded";dojo._ioAddQueryToUrl=function(ioArgs){if(ioArgs.query.length){ioArgs.url+=(ioArgs.url.indexOf("?")==-1?"?":"\x26")+ioArgs.query;ioArgs.query=null}};dojo.xhr=function(method,args,hasBody){var rDfd;var dfd=dojo._ioSetArgs(args,function(dfd){rDfd&&rDfd.cancel()},_deferredOk,_deferError);var ioArgs=dfd.ioArgs;
if("postData"in args)ioArgs.query=args.postData;else if("putData"in args)ioArgs.query=args.putData;else if("rawBody"in args)ioArgs.query=args.rawBody;else if(arguments.length>2&&!hasBody||"POST|PUT".indexOf(method.toUpperCase())===-1)dojo._ioAddQueryToUrl(ioArgs);var options={method:method,handleAs:"text",timeout:args.timeout,withCredentials:args.withCredentials,ioArgs:ioArgs};if(typeof args.headers!=="undefined")options.headers=args.headers;if(typeof args.contentType!=="undefined"){if(!options.headers)options.headers=
{};options.headers["Content-Type"]=args.contentType}if(typeof ioArgs.query!=="undefined")options.data=ioArgs.query;if(typeof args.sync!=="undefined")options.sync=args.sync;dojo._ioNotifyStart(dfd);try{rDfd=_xhr(ioArgs.url,options,true)}catch(e){dfd.cancel();return dfd}dfd.ioArgs.xhr=rDfd.response.xhr;rDfd.then(function(){dfd.resolve(dfd)}).otherwise(function(error){ioArgs.error=error;if(error.response){error.status=error.response.status;error.responseText=error.response.text;error.xhr=error.response.xhr}dfd.reject(error)});
return dfd};dojo.xhrGet=function(args){return dojo.xhr("GET",args)};dojo.rawXhrPost=dojo.xhrPost=function(args){return dojo.xhr("POST",args,true)};dojo.rawXhrPut=dojo.xhrPut=function(args){return dojo.xhr("PUT",args,true)};dojo.xhrDelete=function(args){return dojo.xhr("DELETE",args)};dojo._isDocumentOk=function(x){return util.checkStatus(x.status)};dojo._getText=function(url){var result;dojo.xhrGet({url:url,sync:true,load:function(text){result=text}});return result};lang.mixin(dojo.xhr,{_xhrObj:dojo._xhrObj,
fieldToObject:domForm.fieldToObject,formToObject:domForm.toObject,objectToQuery:ioq.objectToQuery,formToQuery:domForm.toQuery,formToJson:domForm.toJson,queryToObject:ioq.queryToObject,contentHandlers:handlers,_ioSetArgs:dojo._ioSetArgs,_ioCancelAll:dojo._ioCancelAll,_ioNotifyStart:dojo._ioNotifyStart,_ioWatch:dojo._ioWatch,_ioAddQueryToUrl:dojo._ioAddQueryToUrl,_isDocumentOk:dojo._isDocumentOk,_getText:dojo._getText,get:dojo.xhrGet,post:dojo.xhrPost,put:dojo.xhrPut,del:dojo.xhrDelete});return dojo.xhr})},
"dijit/MenuSeparator":function(){require({cache:{"url:dijit/templates/MenuSeparator.html":'\x3ctr class\x3d"dijitMenuSeparator" role\x3d"separator"\x3e\n\t\x3ctd class\x3d"dijitMenuSeparatorIconCell"\x3e\n\t\t\x3cdiv class\x3d"dijitMenuSeparatorTop"\x3e\x3c/div\x3e\n\t\t\x3cdiv class\x3d"dijitMenuSeparatorBottom"\x3e\x3c/div\x3e\n\t\x3c/td\x3e\n\t\x3ctd colspan\x3d"3" class\x3d"dijitMenuSeparatorLabelCell"\x3e\n\t\t\x3cdiv class\x3d"dijitMenuSeparatorTop dijitMenuSeparatorLabel"\x3e\x3c/div\x3e\n\t\t\x3cdiv class\x3d"dijitMenuSeparatorBottom"\x3e\x3c/div\x3e\n\t\x3c/td\x3e\n\x3c/tr\x3e\n'}});
define("dijit/MenuSeparator",["dojo/_base/declare","dojo/dom","./_WidgetBase","./_TemplatedMixin","./_Contained","dojo/text!./templates/MenuSeparator.html"],function(declare,dom,_WidgetBase,_TemplatedMixin,_Contained,template){return declare("dijit.MenuSeparator",[_WidgetBase,_TemplatedMixin,_Contained],{templateString:template,buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.domNode,false)},isFocusable:function(){return false}})})},"xide/manager/PluginManager":function(){define(["dojo/_base/declare",
"./ManagerBase"],function(declare,ManagerBase){return declare("xide.manager.PluginManager",[ManagerBase],{ctx:null,pluginResources:null,loadPlugins:function(pluginResources){this.pluginResources=pluginResources;if(this.pluginResources)for(var i=0;i<this.pluginResources.length;i++){var plug=this.pluginResources[i];if(plug.type&&plug.type=="JS-PLUGIN"&&plug.path)require([plug.path],function(_moduleIn){plug["loaded"]=true})}}})})},"dijit/_AttachMixin":function(){define("dijit/_AttachMixin",["require",
"dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/mouse","dojo/on","dojo/touch","./_WidgetBase"],function(require,array,connect,declare,lang,mouse,on,touch,_WidgetBase){var synthEvents=lang.delegate(touch,{"mouseenter":mouse.enter,"mouseleave":mouse.leave,"keypress":connect._keypress});var a11yclick;var _AttachMixin=declare("dijit._AttachMixin",null,{constructor:function(){this._attachPoints=[];this._attachEvents=[]},buildRendering:function(){this.inherited(arguments);
this._attachTemplateNodes(this.domNode);this._beforeFillContent()},_beforeFillContent:function(){},_attachTemplateNodes:function(rootNode){var node=rootNode;while(true)if(node.nodeType==1&&(this._processTemplateNode(node,function(n,p){return n.getAttribute(p)},this._attach)||this.searchContainerNode)&&node.firstChild)node=node.firstChild;else{if(node==rootNode)return;while(!node.nextSibling){node=node.parentNode;if(node==rootNode)return}node=node.nextSibling}},_processTemplateNode:function(baseNode,
getAttrFunc,attachFunc){var ret=true;var _attachScope=this.attachScope||this,attachPoint=getAttrFunc(baseNode,"dojoAttachPoint")||getAttrFunc(baseNode,"data-dojo-attach-point");if(attachPoint){var point,points=attachPoint.split(/\s*,\s*/);while(point=points.shift()){if(lang.isArray(_attachScope[point]))_attachScope[point].push(baseNode);else _attachScope[point]=baseNode;ret=point!="containerNode";this._attachPoints.push(point)}}var attachEvent=getAttrFunc(baseNode,"dojoAttachEvent")||getAttrFunc(baseNode,
"data-dojo-attach-event");if(attachEvent){var event,events=attachEvent.split(/\s*,\s*/);var trim=lang.trim;while(event=events.shift())if(event){var thisFunc=null;if(event.indexOf(":")!=-1){var funcNameArr=event.split(":");event=trim(funcNameArr[0]);thisFunc=trim(funcNameArr[1])}else event=trim(event);if(!thisFunc)thisFunc=event;this._attachEvents.push(attachFunc(baseNode,event,lang.hitch(_attachScope,thisFunc)))}}return ret},_attach:function(node,type,func){type=type.replace(/^on/,"").toLowerCase();
if(type=="dijitclick")type=a11yclick||(a11yclick=require("./a11yclick"));else type=synthEvents[type]||type;return on(node,type,func)},_detachTemplateNodes:function(){var _attachScope=this.attachScope||this;array.forEach(this._attachPoints,function(point){delete _attachScope[point]});this._attachPoints=[];array.forEach(this._attachEvents,function(handle){handle.remove()});this._attachEvents=[]},destroyRendering:function(){this._detachTemplateNodes();this.inherited(arguments)}});lang.extend(_WidgetBase,
{dojoAttachEvent:"",dojoAttachPoint:""});return _AttachMixin})},"xas/views/GroupedSettingsView":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","./SettingsBaseView"],function(array,declare,html,on,SettingsBaseView){return dojo.declare("xas.views.GroupedSettingsView",[SettingsBaseView],{currentWidget:null,tabContainer:null,allWidgets:null,pageCIS:null,getTabForWidget:function(widget){var widgetGroup=xas.utils.getWidgetGroup(widget.userData);var widgetTab=this.tabContainer.widgetTabMap.get(widgetGroup);
return widgetTab},buildContainerWidgets:function(data){if(!this.tabContainer)this.tabContainer=xas.factory.createTabbedSettingsView(data,this)},getWidgetByType:function(type){for(var i=0;i<this.widgets.length;i++){var widget=this.widgets[i];if(widget.userData.type==type)return widget}return null},updateIconFromContentSelection:function(dataCI,iconCI){var defered=pm.appManager.serviceObject.findIconFromContentSelection(sctx.getSession().getAppId(),sctx.getSession().getAppId(),cm.utils.CIDataToJSON(dataCI));
var dst=this;var _foundIconCB=function(value){dst.foundIconCB(dst,value)};defered.addCallback(_foundIconCB);var iconCI=xapp.utils.getCIByChainAndName(this.data,0,"Icon")},getWidgetsFromTemplate:function(){},dataSourceReady:function(ds){this.currentDataItem.dataSource=ds.uid;this.updateDataItem(this.currentDataItem)},onReferenceDialogFinish:function(item){var ciDataSourceItem=xapp.utils.getCIByChainAndName(this.data,0,"Content Source");if(ciDataSourceItem!=null)ciDataSourceItem.dataRef[0]=item.id[0];
this.updateDataItem(ciDataSourceItem)},openReferenceDialog:function(widget,data){var dlg=new xas.views.JoomlaContentTreeView({style:"width:400px;height:400px",content:"",uuid:this.delegate.uuid,appIdentifier:this.delegate.appIdentifier,delegate:this});dlg.startup();dlg.initWidthDataAndDelegate(this.data);dlg.show()},attachWidgets:function(data){var dstHandler=this;this.helpNodes=new Array;for(var i=0;i<data.length;i++){var widget=data[i];widget.delegate=this;widget["region"]="center";widget["pageData"]=
this.data;widget.hasPlatform=true;var dstTab=this.getTabForWidget(widget);if(!dstTab)continue;dstTab.domNode.appendChild(widget.domNode);widget.startup();var br=dojo.create("br");dstTab.domNode.appendChild(br);this.helpNodes.push(br)}this.resize()},attachWidgetsToAllTab:function(data){var dstHandler=this;for(var i=0;i<data.length;i++){var widget=data[i];widget.delegate=this;widget["region"]="center";var dstTab=this.tabContainer.widgetTabMap.get(xas.types.ECMWidgetGroup.All);dstTab.domNode.appendChild(widget.domNode);
widget["pageData"]=this.data;widget.hasPlatform=true;widget.startup();var br=dojo.create("br");dstTab.domNode.appendChild(br);this.helpNodes.push(br)}},empty:function(){if(this.tabContainer){xapp.utils.destroyWidget(this.tabContainer);this.tabContainer=null}if(this.helpNodes)for(var i=0;i<this.helpNodes.length;i++){var widget=this.helpNodes[i];xapp.utils.destroyWidget(widget)}if(this.widgets)for(var i=0;i<this.widgets.length;i++){var widget=this.widgets[i];xapp.utils.destroyWidget(widget)}if(this.allWidgets)for(var i=
0;i<this.allWidgets.length;i++){var widget=this.allWidgets[i];xapp.utils.destroyWidget(widget)}},initWithDataItem:function(data){this.empty();this.data=data;var thiz=this;this.pageCIS=xapp.utils.getPageCIs(this.data,sctx.getApplication().getAppStore());this.buildContainerWidgets(this.pageCIS);this.widgets=xas.factory.createWidgetsFromArray(this.pageCIS,thiz,this.data);if(this.widgets)this.attachWidgets(this.widgets);this.allWidgets=xas.factory.createWidgetsFromArray(this.pageCIS,thiz);if(this.allWidgets)this.attachWidgetsToAllTab(this.allWidgets)}})})},
"dojo/Evented":function(){define("dojo/Evented",["./aspect","./on"],function(aspect,on){var after=aspect.after;function Evented(){}Evented.prototype={on:function(type,listener){return on.parse(this,type,listener,function(target,type){return after(target,"on"+type,listener,true)})},emit:function(type,event){var args=[this];args.push.apply(args,arguments);return on.emit.apply(on,args)}};return Evented})},"dijit/InlineEditBox":function(){require({cache:{"url:dijit/templates/InlineEditBox.html":'\x3cspan data-dojo-attach-point\x3d"editNode" role\x3d"presentation" class\x3d"dijitReset dijitInline dijitOffScreen"\n\t\x3e\x3cspan data-dojo-attach-point\x3d"editorPlaceholder"\x3e\x3c/span\n\t\x3e\x3cspan data-dojo-attach-point\x3d"buttonContainer"\n\t\t\x3e\x3cbutton data-dojo-type\x3d"./form/Button" data-dojo-props\x3d"label: \'${buttonSave}\', \'class\': \'saveButton\'"\n\t\t\tdata-dojo-attach-point\x3d"saveButton" data-dojo-attach-event\x3d"onClick:save"\x3e\x3c/button\n\t\t\x3e\x3cbutton data-dojo-type\x3d"./form/Button"  data-dojo-props\x3d"label: \'${buttonCancel}\', \'class\': \'cancelButton\'"\n\t\t\tdata-dojo-attach-point\x3d"cancelButton" data-dojo-attach-event\x3d"onClick:cancel"\x3e\x3c/button\n\t\x3e\x3c/span\n\x3e\x3c/span\x3e\n'}});
define("dijit/InlineEditBox",["require","dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/i18n","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","dojo/when","./a11yclick","./focus","./_Widget","./_TemplatedMixin","./_WidgetsInTemplateMixin","./_Container","./form/Button","./form/_TextBoxMixin","./form/TextBox","dojo/text!./templates/InlineEditBox.html","dojo/i18n!./nls/common"],function(require,
array,aspect,declare,domAttr,domClass,domConstruct,domStyle,i18n,kernel,keys,lang,on,has,when,a11yclick,fm,_Widget,_TemplatedMixin,_WidgetsInTemplateMixin,_Container,Button,_TextBoxMixin,TextBox,template){var InlineEditor=declare("dijit._InlineEditor",[_Widget,_TemplatedMixin,_WidgetsInTemplateMixin],{templateString:template,contextRequire:require,postMixInProperties:function(){this.inherited(arguments);this.messages=i18n.getLocalization("dijit","common",this.lang);array.forEach(["buttonSave","buttonCancel"],
function(prop){if(!this[prop])this[prop]=this.messages[prop]},this)},buildRendering:function(){this.inherited(arguments);var Cls=typeof this.editor=="string"?lang.getObject(this.editor)||require(this.editor):this.editor;var srcStyle=this.sourceStyle,editStyle="line-height:"+srcStyle.lineHeight+";",destStyle=domStyle.getComputedStyle(this.domNode);array.forEach(["Weight","Family","Size","Style"],function(prop){var textStyle=srcStyle["font"+prop],wrapperStyle=destStyle["font"+prop];if(wrapperStyle!=
textStyle)editStyle+="font-"+prop+":"+srcStyle["font"+prop]+";"},this);array.forEach(["marginTop","marginBottom","marginLeft","marginRight","position","left","top","right","bottom","float","clear","display"],function(prop){this.domNode.style[prop]=srcStyle[prop]},this);var width=this.inlineEditBox.width;if(width=="100%"){editStyle+="width:100%;";this.domNode.style.display="block"}else editStyle+="width:"+(width+(Number(width)==width?"px":""))+";";var editorParams=lang.delegate(this.inlineEditBox.editorParams,
{style:editStyle,dir:this.dir,lang:this.lang,textDir:this.textDir});this.editWidget=new Cls(editorParams,this.editorPlaceholder);if(this.inlineEditBox.autoSave)domConstruct.destroy(this.buttonContainer)},postCreate:function(){this.inherited(arguments);var ew=this.editWidget;if(this.inlineEditBox.autoSave)this.own(aspect.after(ew,"onChange",lang.hitch(this,"_onChange"),true),on(ew,"keydown",lang.hitch(this,"_onKeyDown")));else if("intermediateChanges"in ew){ew.set("intermediateChanges",true);this.own(aspect.after(ew,
"onChange",lang.hitch(this,"_onIntermediateChange"),true));this.saveButton.set("disabled",true)}},startup:function(){this.editWidget.startup();this.inherited(arguments)},_onIntermediateChange:function(){this.saveButton.set("disabled",this.getValue()==this._resetValue||!this.enableSave())},destroy:function(){this.editWidget.destroy(true);this.inherited(arguments)},getValue:function(){var ew=this.editWidget;return String(ew.get("displayedValue"in ew||"_getDisplayedValueAttr"in ew?"displayedValue":"value"))},
_onKeyDown:function(e){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(e.altKey||e.ctrlKey)return;if(e.keyCode==keys.ESCAPE){e.stopPropagation();e.preventDefault();this.cancel(true)}else if(e.keyCode==keys.ENTER&&e.target.tagName=="INPUT"){e.stopPropagation();e.preventDefault();this._onChange()}}},_onBlur:function(){this.inherited(arguments);if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing)if(this.getValue()==this._resetValue)this.cancel(false);else if(this.enableSave())this.save(false)},
_onChange:function(){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing&&this.enableSave())fm.focus(this.inlineEditBox.displayNode)},enableSave:function(){return this.editWidget.isValid?this.editWidget.isValid():true},focus:function(){this.editWidget.focus();if(this.editWidget.focusNode){fm._onFocusNode(this.editWidget.focusNode);if(this.editWidget.focusNode.tagName=="INPUT")this.defer(function(){_TextBoxMixin.selectInputText(this.editWidget.focusNode)})}}});var InlineEditBox=declare("dijit.InlineEditBox"+
(0?"_NoBidi":""),_Widget,{editing:false,autoSave:true,buttonSave:"",buttonCancel:"",renderAsHtml:false,editor:TextBox,editorWrapper:InlineEditor,editorParams:{},disabled:false,onChange:function(){},onCancel:function(){},width:"100%",value:"",noValueIndicator:has("ie")<=6?"\x3cspan style\x3d'font-family: wingdings; text-decoration: underline;'\x3e\x26#160;\x26#160;\x26#160;\x26#160;\x26#x270d;\x26#160;\x26#160;\x26#160;\x26#160;\x3c/span\x3e":"\x3cspan style\x3d'text-decoration: underline;'\x3e\x26#160;\x26#160;\x26#160;\x26#160;\x26#x270d;\x26#160;\x26#160;\x26#160;\x26#160;\x3c/span\x3e",
constructor:function(){this.editorParams={}},postMixInProperties:function(){this.inherited(arguments);this.displayNode=this.srcNodeRef;this.own(on(this.displayNode,a11yclick,lang.hitch(this,"_onClick")),on(this.displayNode,"mouseover, focus",lang.hitch(this,"_onMouseOver")),on(this.displayNode,"mouseout, blur",lang.hitch(this,"_onMouseOut")));this.displayNode.setAttribute("role","button");if(!this.displayNode.getAttribute("tabIndex"))this.displayNode.setAttribute("tabIndex",0);if(!this.value&&!("value"in
this.params))this.value=lang.trim(this.renderAsHtml?this.displayNode.innerHTML:this.displayNode.innerText||this.displayNode.textContent||"");if(!this.value)this.displayNode.innerHTML=this.noValueIndicator;domClass.add(this.displayNode,"dijitInlineEditBoxDisplayMode")},setDisabled:function(disabled){kernel.deprecated("dijit.InlineEditBox.setDisabled() is deprecated.  Use set('disabled', bool) instead.","","2.0");this.set("disabled",disabled)},_setDisabledAttr:function(disabled){this.domNode.setAttribute("aria-disabled",
disabled?"true":"false");if(disabled)this.displayNode.removeAttribute("tabIndex");else this.displayNode.setAttribute("tabIndex",0);domClass.toggle(this.displayNode,"dijitInlineEditBoxDisplayModeDisabled",disabled);this._set("disabled",disabled)},_onMouseOver:function(){if(!this.disabled)domClass.add(this.displayNode,"dijitInlineEditBoxDisplayModeHover")},_onMouseOut:function(){domClass.remove(this.displayNode,"dijitInlineEditBoxDisplayModeHover")},_onClick:function(e){if(this.disabled)return;if(e){e.stopPropagation();
e.preventDefault()}this._onMouseOut();this.defer("edit")},edit:function(){if(this.disabled||this.editing)return;this._set("editing",true);this._savedTabIndex=domAttr.get(this.displayNode,"tabIndex")||"0";if(!this.wrapperWidget){var placeholder=domConstruct.create("span",null,this.domNode,"before");var Ewc=typeof this.editorWrapper=="string"?lang.getObject(this.editorWrapper):this.editorWrapper;this.wrapperWidget=new Ewc({value:this.value,buttonSave:this.buttonSave,buttonCancel:this.buttonCancel,dir:this.dir,
lang:this.lang,tabIndex:this._savedTabIndex,editor:this.editor,inlineEditBox:this,sourceStyle:domStyle.getComputedStyle(this.displayNode),save:lang.hitch(this,"save"),cancel:lang.hitch(this,"cancel"),textDir:this.textDir},placeholder);if(!this.wrapperWidget._started)this.wrapperWidget.startup();if(!this._started)this.startup()}var ww=this.wrapperWidget;domClass.add(this.displayNode,"dijitOffScreen");domClass.remove(ww.domNode,"dijitOffScreen");domStyle.set(ww.domNode,{visibility:"visible"});domAttr.set(this.displayNode,
"tabIndex","-1");var ew=ww.editWidget;var self=this;when(ew.onLoadDeferred,lang.hitch(ww,function(){ew.set("displayedValue"in ew||"_setDisplayedValueAttr"in ew?"displayedValue":"value",self.value);this.defer(function(){ww.saveButton.set("disabled","intermediateChanges"in ew);this.focus();this._resetValue=this.getValue()})}))},_onBlur:function(){this.inherited(arguments);if(!this.editing);},destroy:function(){if(this.wrapperWidget&&!this.wrapperWidget._destroyed){this.wrapperWidget.destroy();delete this.wrapperWidget}this.inherited(arguments)},
_showText:function(focus){var ww=this.wrapperWidget;domStyle.set(ww.domNode,{visibility:"hidden"});domClass.add(ww.domNode,"dijitOffScreen");domClass.remove(this.displayNode,"dijitOffScreen");domAttr.set(this.displayNode,"tabIndex",this._savedTabIndex);if(focus)fm.focus(this.displayNode)},save:function(focus){if(this.disabled||!this.editing)return;this._set("editing",false);var ww=this.wrapperWidget;var value=ww.getValue();this.set("value",value);this._showText(focus)},setValue:function(val){kernel.deprecated("dijit.InlineEditBox.setValue() is deprecated.  Use set('value', ...) instead.",
"","2.0");return this.set("value",val)},_setValueAttr:function(val){val=lang.trim(val);var renderVal=this.renderAsHtml?val:val.replace(/&/gm,"\x26amp;").replace(/</gm,"\x26lt;").replace(/>/gm,"\x26gt;").replace(/"/gm,"\x26quot;").replace(/\n/g,"\x3cbr\x3e");this.displayNode.innerHTML=renderVal||this.noValueIndicator;this._set("value",val);if(this._started)this.defer(function(){this.onChange(val)})},getValue:function(){kernel.deprecated("dijit.InlineEditBox.getValue() is deprecated.  Use get('value') instead.",
"","2.0");return this.get("value")},cancel:function(focus){if(this.disabled||!this.editing)return;this._set("editing",false);this.defer("onCancel");this._showText(focus)}});if(0)InlineEditBox=declare("dijit.InlineEditBox",InlineEditBox,{_setValueAttr:function(){this.inherited(arguments);this.applyTextDir(this.displayNode)}});InlineEditBox._InlineEditor=InlineEditor;return InlineEditBox})},"dojox/grid/_View":function(){require({cache:{"url:dojox/grid/resources/View.html":'\x3cdiv class\x3d"dojoxGridView" role\x3d"presentation"\x3e\n\t\x3cdiv class\x3d"dojoxGridHeader" dojoAttachPoint\x3d"headerNode" role\x3d"presentation"\x3e\n\t\t\x3cdiv dojoAttachPoint\x3d"headerNodeContainer" style\x3d"width:9000em" role\x3d"presentation"\x3e\n\t\t\t\x3cdiv dojoAttachPoint\x3d"headerContentNode" role\x3d"row"\x3e\x3c/div\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\t\x3cinput type\x3d"checkbox" class\x3d"dojoxGridHiddenFocus" dojoAttachPoint\x3d"hiddenFocusNode" role\x3d"presentation" /\x3e\n\t\x3cinput type\x3d"checkbox" class\x3d"dojoxGridHiddenFocus" role\x3d"presentation" /\x3e\n\t\x3cdiv class\x3d"dojoxGridScrollbox" dojoAttachPoint\x3d"scrollboxNode" role\x3d"presentation"\x3e\n\t\t\x3cdiv class\x3d"dojoxGridContent" dojoAttachPoint\x3d"contentNode" hidefocus\x3d"hidefocus" role\x3d"presentation"\x3e\x3c/div\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e\n'}});
define("dojox/grid/_View",["dojo","dijit/registry","../main","dojo/_base/declare","dojo/_base/array","dojo/_base/lang","dojo/_base/connect","dojo/_base/sniff","dojo/query","dojo/_base/window","dojo/text!./resources/View.html","dojo/dnd/Source","dijit/_Widget","dijit/_TemplatedMixin","dojox/html/metrics","./util","dojo/_base/html","./_Builder","dojo/dnd/Avatar","dojo/dnd/Manager"],function(dojo,dijit,dojox,declare,array,lang,connect,has,query,win,template,Source,_Widget,_TemplatedMixin,metrics,util,
html,_Builder,Avatar,Manager){var getStyleText=function(inNode,inStyleText){return inNode.style.cssText==undefined?inNode.getAttribute("style"):inNode.style.cssText};var _View=declare("dojox.grid._View",[_Widget,_TemplatedMixin],{defaultWidth:"18em",viewWidth:"",templateString:template,classTag:"dojoxGrid",marginBottom:0,rowPad:2,_togglingColumn:-1,_headerBuilderClass:_Builder._HeaderBuilder,_contentBuilderClass:_Builder._ContentBuilder,postMixInProperties:function(){this.rowNodes={}},postCreate:function(){this.connect(this.scrollboxNode,
"onscroll","doscroll");util.funnelEvents(this.contentNode,this,"doContentEvent",["mouseover","mouseout","click","dblclick","contextmenu","mousedown"]);util.funnelEvents(this.headerNode,this,"doHeaderEvent",["dblclick","mouseover","mouseout","mousemove","mousedown","click","contextmenu"]);this.content=new this._contentBuilderClass(this);this.header=new this._headerBuilderClass(this);if(!this.grid.isLeftToRight())this.headerNodeContainer.style.width=""},destroy:function(){html.destroy(this.headerNode);
delete this.headerNode;for(var i in this.rowNodes){this._cleanupRowWidgets(this.rowNodes[i]);html.destroy(this.rowNodes[i])}this.rowNodes={};if(this.source)this.source.destroy();this.inherited(arguments)},focus:function(){if(has("ie")||has("webkit")||has("opera"))this.hiddenFocusNode.focus();else this.scrollboxNode.focus()},setStructure:function(inStructure){var vs=this.structure=inStructure;if(vs.width&&!isNaN(vs.width))this.viewWidth=vs.width+"em";else this.viewWidth=vs.width||(vs.noscroll?"auto":
this.viewWidth);this._onBeforeRow=vs.onBeforeRow||function(){};this._onAfterRow=vs.onAfterRow||function(){};this.noscroll=vs.noscroll;if(this.noscroll)this.scrollboxNode.style.overflow="hidden";this.simpleStructure=Boolean(vs.cells.length==1);this.testFlexCells();this.updateStructure()},_cleanupRowWidgets:function(inRowNode){if(inRowNode)array.forEach(query("[widgetId]",inRowNode).map(dijit.byNode),function(w){if(w._destroyOnRemove){w.destroy();delete w}else if(w.domNode&&w.domNode.parentNode)w.domNode.parentNode.removeChild(w.domNode)})},
onBeforeRow:function(inRowIndex,cells){this._onBeforeRow(inRowIndex,cells);if(inRowIndex>=0)this._cleanupRowWidgets(this.getRowNode(inRowIndex))},onAfterRow:function(inRowIndex,cells,inRowNode){this._onAfterRow(inRowIndex,cells,inRowNode);var g=this.grid;array.forEach(query(".dojoxGridStubNode",inRowNode),function(n){if(n&&n.parentNode){var lw=n.getAttribute("linkWidget");var cellIdx=window.parseInt(html.attr(n,"cellIdx"),10);var cellDef=g.getCell(cellIdx);var w=dijit.byId(lw);if(w){n.parentNode.replaceChild(w.domNode,
n);if(!w._started)w.startup();dojo.destroy(n)}else n.innerHTML=""}},this)},testFlexCells:function(){this.flexCells=false;for(var j=0,row;row=this.structure.cells[j];j++)for(var i=0,cell;cell=row[i];i++){cell.view=this;this.flexCells=this.flexCells||cell.isFlex()}return this.flexCells},updateStructure:function(){this.header.update();this.content.update()},getScrollbarWidth:function(){var hasScrollSpace=this.hasVScrollbar();var overflow=html.style(this.scrollboxNode,"overflow");if(this.noscroll||!overflow||
overflow=="hidden")hasScrollSpace=false;else if(overflow=="scroll")hasScrollSpace=true;return hasScrollSpace?metrics.getScrollbar().w:0},getColumnsWidth:function(){var h=this.headerContentNode;return h&&h.firstChild?h.firstChild.offsetWidth||html.style(h.firstChild,"width"):0},setColumnsWidth:function(width){this.headerContentNode.firstChild.style.width=width+"px";if(this.viewWidth)this.viewWidth=width+"px"},getWidth:function(){return this.viewWidth||this.getColumnsWidth()+this.getScrollbarWidth()+
"px"},getContentWidth:function(){return Math.max(0,html._getContentBox(this.domNode).w-this.getScrollbarWidth())+"px"},render:function(){this.scrollboxNode.style.height="";this.renderHeader();if(this._togglingColumn>=0){this.setColumnsWidth(this.getColumnsWidth()-this._togglingColumn);this._togglingColumn=-1}var cells=this.grid.layout.cells;var getSibling=lang.hitch(this,function(node,before){!this.grid.isLeftToRight()&&(before=!before);var inc=before?-1:1;var idx=this.header.getCellNodeIndex(node)+
inc;var cell=cells[idx];while(cell&&cell.getHeaderNode()&&cell.getHeaderNode().style.display=="none"){idx+=inc;cell=cells[idx]}if(cell)return cell.getHeaderNode();return null});if(this.grid.columnReordering&&this.simpleStructure){if(this.source)this.source.destroy();var bottomMarkerId="dojoxGrid_bottomMarker";var topMarkerId="dojoxGrid_topMarker";if(this.bottomMarker)html.destroy(this.bottomMarker);this.bottomMarker=html.byId(bottomMarkerId);if(this.topMarker)html.destroy(this.topMarker);this.topMarker=
html.byId(topMarkerId);if(!this.bottomMarker){this.bottomMarker=html.create("div",{"id":bottomMarkerId,"class":"dojoxGridColPlaceBottom"},win.body());this._hide(this.bottomMarker);this.topMarker=html.create("div",{"id":topMarkerId,"class":"dojoxGridColPlaceTop"},win.body());this._hide(this.topMarker)}this.arrowDim=html.contentBox(this.bottomMarker);var headerHeight=html.contentBox(this.headerContentNode.firstChild.rows[0]).h;this.source=new Source(this.headerContentNode.firstChild.rows[0],{horizontal:true,
accept:["gridColumn_"+this.grid.id],viewIndex:this.index,generateText:false,onMouseDown:lang.hitch(this,function(e){this.header.decorateEvent(e);if((this.header.overRightResizeArea(e)||this.header.overLeftResizeArea(e))&&this.header.canResize(e)&&!this.header.moveable)this.header.beginColumnResize(e);else{if(this.grid.headerMenu)this.grid.headerMenu.onCancel(true);if(e.button===(has("ie")<9?1:0))Source.prototype.onMouseDown.call(this.source,e)}}),onMouseOver:lang.hitch(this,function(e){var src=this.source;
if(src._getChildByEvent(e))Source.prototype.onMouseOver.apply(src,arguments)}),_markTargetAnchor:lang.hitch(this,function(before){var src=this.source;if(src.current==src.targetAnchor&&src.before==before)return;if(src.targetAnchor&&getSibling(src.targetAnchor,src.before))src._removeItemClass(getSibling(src.targetAnchor,src.before),src.before?"After":"Before");Source.prototype._markTargetAnchor.call(src,before);var target=before?src.targetAnchor:getSibling(src.targetAnchor,src.before);var endAdd=0;
if(!target){target=src.targetAnchor;endAdd=html.contentBox(target).w+this.arrowDim.w/2+2}var pos=html.position(target,true);var left=Math.floor(pos.x-this.arrowDim.w/2+endAdd);html.style(this.bottomMarker,"visibility","visible");html.style(this.topMarker,"visibility","visible");html.style(this.bottomMarker,{"left":left+"px","top":headerHeight+pos.y+"px"});html.style(this.topMarker,{"left":left+"px","top":pos.y-this.arrowDim.h+"px"});if(src.targetAnchor&&getSibling(src.targetAnchor,src.before))src._addItemClass(getSibling(src.targetAnchor,
src.before),src.before?"After":"Before")}),_unmarkTargetAnchor:lang.hitch(this,function(){var src=this.source;if(!src.targetAnchor)return;if(src.targetAnchor&&getSibling(src.targetAnchor,src.before))src._removeItemClass(getSibling(src.targetAnchor,src.before),src.before?"After":"Before");this._hide(this.bottomMarker);this._hide(this.topMarker);Source.prototype._unmarkTargetAnchor.call(src)}),destroy:lang.hitch(this,function(){connect.disconnect(this._source_conn);connect.unsubscribe(this._source_sub);
Source.prototype.destroy.call(this.source);if(this.bottomMarker){html.destroy(this.bottomMarker);delete this.bottomMarker}if(this.topMarker){html.destroy(this.topMarker);delete this.topMarker}}),onDndCancel:lang.hitch(this,function(){Source.prototype.onDndCancel.call(this.source);this._hide(this.bottomMarker);this._hide(this.topMarker)})});this._source_conn=connect.connect(this.source,"onDndDrop",this,"_onDndDrop");this._source_sub=connect.subscribe("/dnd/drop/before",this,"_onDndDropBefore");this.source.startup()}},
_hide:function(node){html.style(node,{top:"-10000px","visibility":"hidden"})},_onDndDropBefore:function(source,nodes,copy){if(Manager.manager().target!==this.source)return;this.source._targetNode=this.source.targetAnchor;this.source._beforeTarget=this.source.before;var views=this.grid.views.views;var srcView=views[source.viewIndex];var tgtView=views[this.index];if(tgtView!=srcView){srcView.convertColPctToFixed();tgtView.convertColPctToFixed()}},_onDndDrop:function(source,nodes,copy){if(Manager.manager().target!==
this.source){if(Manager.manager().source===this.source)this._removingColumn=true;return}this._hide(this.bottomMarker);this._hide(this.topMarker);var getIdx=function(n){return n?html.attr(n,"idx"):null};var w=html.marginBox(nodes[0]).w;if(source.viewIndex!==this.index){var views=this.grid.views.views;var srcView=views[source.viewIndex];var tgtView=views[this.index];if(srcView.viewWidth&&srcView.viewWidth!="auto")srcView.setColumnsWidth(srcView.getColumnsWidth()-w);if(tgtView.viewWidth&&tgtView.viewWidth!=
"auto")tgtView.setColumnsWidth(tgtView.getColumnsWidth())}var stn=this.source._targetNode;var stb=this.source._beforeTarget;!this.grid.isLeftToRight()&&(stb=!stb);var layout=this.grid.layout;var idx=this.index;delete this.source._targetNode;delete this.source._beforeTarget;layout.moveColumn(source.viewIndex,idx,getIdx(nodes[0]),getIdx(stn),stb)},renderHeader:function(){this.headerContentNode.innerHTML=this.header.generateHtml(this._getHeaderContent);if(this.flexCells){this.contentWidth=this.getContentWidth();
this.headerContentNode.firstChild.style.width=this.contentWidth}util.fire(this,"onAfterRow",[-1,this.structure.cells,this.headerContentNode])},_getHeaderContent:function(inCell){var n=inCell.name||inCell.grid.getCellName(inCell);if(/^\s+$/.test(n))n="\x26nbsp;";var ret=['\x3cdiv class\x3d"dojoxGridSortNode'];if(inCell.index!=inCell.grid.getSortIndex())ret.push('"\x3e');else ret=ret.concat([" ",inCell.grid.sortInfo>0?"dojoxGridSortUp":"dojoxGridSortDown",'"\x3e\x3cdiv class\x3d"dojoxGridArrowButtonChar"\x3e',
inCell.grid.sortInfo>0?"\x26#9650;":"\x26#9660;",'\x3c/div\x3e\x3cdiv class\x3d"dojoxGridArrowButtonNode" role\x3d"presentation"\x3e\x3c/div\x3e','\x3cdiv class\x3d"dojoxGridColCaption"\x3e']);ret=ret.concat([n,"\x3c/div\x3e\x3c/div\x3e"]);return ret.join("")},resize:function(){this.adaptHeight();this.adaptWidth()},hasHScrollbar:function(reset){var hadScroll=this._hasHScroll||false;if(this._hasHScroll==undefined||reset)if(this.noscroll)this._hasHScroll=false;else{var style=html.style(this.scrollboxNode,
"overflow");if(style=="hidden")this._hasHScroll=false;else if(style=="scroll")this._hasHScroll=true;else this._hasHScroll=this.scrollboxNode.offsetWidth-this.getScrollbarWidth()<this.contentNode.offsetWidth}if(hadScroll!==this._hasHScroll)this.grid.update();return this._hasHScroll},hasVScrollbar:function(reset){var hadScroll=this._hasVScroll||false;if(this._hasVScroll==undefined||reset)if(this.noscroll)this._hasVScroll=false;else{var style=html.style(this.scrollboxNode,"overflow");if(style=="hidden")this._hasVScroll=
false;else if(style=="scroll")this._hasVScroll=true;else this._hasVScroll=this.scrollboxNode.scrollHeight>this.scrollboxNode.clientHeight}if(hadScroll!==this._hasVScroll)this.grid.update();return this._hasVScroll},convertColPctToFixed:function(){var hasPct=false;this.grid.initialWidth="";var cellNodes=query("th",this.headerContentNode);var fixedWidths=array.map(cellNodes,function(c,vIdx){var w=c.style.width;html.attr(c,"vIdx",vIdx);if(w&&w.slice(-1)=="%")hasPct=true;else if(w&&w.slice(-2)=="px")return window.parseInt(w,
10);return html.contentBox(c).w});if(hasPct){array.forEach(this.grid.layout.cells,function(cell,idx){if(cell.view==this){var cellNode=cell.view.getHeaderCellNode(cell.index);if(cellNode&&html.hasAttr(cellNode,"vIdx")){var vIdx=window.parseInt(html.attr(cellNode,"vIdx"));this.setColWidth(idx,fixedWidths[vIdx]);html.removeAttr(cellNode,"vIdx")}}},this);return true}return false},adaptHeight:function(minusScroll){if(!this.grid._autoHeight){var h=this.domNode.style.height&&parseInt(this.domNode.style.height.replace(/px/,
""),10)||this.domNode.clientHeight;var self=this;var checkOtherViewScrollers=function(){var v;for(var i in self.grid.views.views){v=self.grid.views.views[i];if(v!==self&&v.hasHScrollbar())return true}return false};if(minusScroll||this.noscroll&&checkOtherViewScrollers())h-=metrics.getScrollbar().h;util.setStyleHeightPx(this.scrollboxNode,h)}this.hasVScrollbar(true)},adaptWidth:function(){if(this.flexCells){this.contentWidth=this.getContentWidth();this.headerContentNode.firstChild.style.width=this.contentWidth}var w=
this.scrollboxNode.offsetWidth-this.getScrollbarWidth();if(!this._removingColumn)w=Math.max(w,this.getColumnsWidth())+"px";else{w=Math.min(w,this.getColumnsWidth())+"px";this._removingColumn=false}var cn=this.contentNode;cn.style.width=w;this.hasHScrollbar(true)},setSize:function(w,h){var ds=this.domNode.style;var hs=this.headerNode.style;if(w){ds.width=w;hs.width=w}ds.height=h>=0?h+"px":""},renderRow:function(inRowIndex){var rowNode=this.createRowNode(inRowIndex);this.buildRow(inRowIndex,rowNode);
return rowNode},createRowNode:function(inRowIndex){var node=document.createElement("div");node.className=this.classTag+"Row";if(this instanceof dojox.grid._RowSelector)html.attr(node,"role","presentation");else{html.attr(node,"role","row");if(this.grid.selectionMode!="none")node.setAttribute("aria-selected","false")}node[util.gridViewTag]=this.id;node[util.rowIndexTag]=inRowIndex;this.rowNodes[inRowIndex]=node;return node},buildRow:function(inRowIndex,inRowNode){this.buildRowContent(inRowIndex,inRowNode);
this.styleRow(inRowIndex,inRowNode)},buildRowContent:function(inRowIndex,inRowNode){inRowNode.innerHTML=this.content.generateHtml(inRowIndex,inRowIndex);if(this.flexCells&&this.contentWidth)inRowNode.firstChild.style.width=this.contentWidth;util.fire(this,"onAfterRow",[inRowIndex,this.structure.cells,inRowNode])},rowRemoved:function(inRowIndex){if(inRowIndex>=0)this._cleanupRowWidgets(this.getRowNode(inRowIndex));this.grid.edit.save(this,inRowIndex);delete this.rowNodes[inRowIndex]},getRowNode:function(inRowIndex){return this.rowNodes[inRowIndex]},
getCellNode:function(inRowIndex,inCellIndex){var row=this.getRowNode(inRowIndex);if(row)return this.content.getCellNode(row,inCellIndex)},getHeaderCellNode:function(inCellIndex){if(this.headerContentNode)return this.header.getCellNode(this.headerContentNode,inCellIndex)},styleRow:function(inRowIndex,inRowNode){inRowNode._style=getStyleText(inRowNode);this.styleRowNode(inRowIndex,inRowNode)},styleRowNode:function(inRowIndex,inRowNode){if(inRowNode)this.doStyleRowNode(inRowIndex,inRowNode)},doStyleRowNode:function(inRowIndex,
inRowNode){this.grid.styleRowNode(inRowIndex,inRowNode)},updateRow:function(inRowIndex){var rowNode=this.getRowNode(inRowIndex);if(rowNode){rowNode.style.height="";this.buildRow(inRowIndex,rowNode)}return rowNode},updateRowStyles:function(inRowIndex){this.styleRowNode(inRowIndex,this.getRowNode(inRowIndex))},lastTop:0,firstScroll:0,_nativeScroll:false,doscroll:function(inEvent){if(has("ff")>=13)this._nativeScroll=true;var isLtr=this.grid.isLeftToRight();if(this.firstScroll<2){if(!isLtr&&this.firstScroll==
1||isLtr&&this.firstScroll===0){var s=html.marginBox(this.headerNodeContainer);if(has("ie"))this.headerNodeContainer.style.width=s.w+this.getScrollbarWidth()+"px";else if(has("mozilla")){this.headerNodeContainer.style.width=s.w-this.getScrollbarWidth()+"px";this.scrollboxNode.scrollLeft=isLtr?this.scrollboxNode.clientWidth-this.scrollboxNode.scrollWidth:this.scrollboxNode.scrollWidth-this.scrollboxNode.clientWidth}}this.firstScroll++}this.headerNode.scrollLeft=this.scrollboxNode.scrollLeft;var top=
this.scrollboxNode.scrollTop;if(top!==this.lastTop)this.grid.scrollTo(top);this._nativeScroll=false},setScrollTop:function(inTop){this.lastTop=inTop;if(!this._nativeScroll)this.scrollboxNode.scrollTop=inTop;return this.scrollboxNode.scrollTop},doContentEvent:function(e){if(this.content.decorateEvent(e))this.grid.onContentEvent(e)},doHeaderEvent:function(e){if(this.header.decorateEvent(e))this.grid.onHeaderEvent(e)},dispatchContentEvent:function(e){return this.content.dispatchEvent(e)},dispatchHeaderEvent:function(e){return this.header.dispatchEvent(e)},
setColWidth:function(inIndex,inWidth){this.grid.setCellWidth(inIndex,inWidth+"px")},update:function(){if(!this.domNode)return;this.content.update();this.grid.update();var left=this.scrollboxNode.scrollLeft;this.scrollboxNode.scrollLeft=left;this.headerNode.scrollLeft=left}});var _GridAvatar=declare("dojox.grid._GridAvatar",Avatar,{construct:function(){var dd=win.doc;var a=dd.createElement("table");a.cellPadding=a.cellSpacing="0";a.className="dojoxGridDndAvatar";a.style.position="absolute";a.style.zIndex=
1999;a.style.margin="0px";var b=dd.createElement("tbody");var tr=dd.createElement("tr");var td=dd.createElement("td");var img=dd.createElement("td");tr.className="dojoxGridDndAvatarItem";img.className="dojoxGridDndAvatarItemImage";img.style.width="16px";var source=this.manager.source,node;if(source.creator)node=source._normalizedCreator(source.getItem(this.manager.nodes[0].id).data,"avatar").node;else{node=this.manager.nodes[0].cloneNode(true);var table,tbody;if(node.tagName.toLowerCase()=="tr"){table=
dd.createElement("table");tbody=dd.createElement("tbody");tbody.appendChild(node);table.appendChild(tbody);node=table}else if(node.tagName.toLowerCase()=="th"){table=dd.createElement("table");tbody=dd.createElement("tbody");var r=dd.createElement("tr");table.cellPadding=table.cellSpacing="0";r.appendChild(node);tbody.appendChild(r);table.appendChild(tbody);node=table}}node.id="";td.appendChild(node);tr.appendChild(img);tr.appendChild(td);html.style(tr,"opacity",0.9);b.appendChild(tr);a.appendChild(b);
this.node=a;var m=Manager.manager();this.oldOffsetY=m.OFFSET_Y;m.OFFSET_Y=1},destroy:function(){Manager.manager().OFFSET_Y=this.oldOffsetY;this.inherited(arguments)}});var oldMakeAvatar=Manager.manager().makeAvatar;Manager.manager().makeAvatar=function(){var src=this.source;if(src.viewIndex!==undefined&&!html.hasClass(win.body(),"dijit_a11y"))return new _GridAvatar(this);return oldMakeAvatar.call(Manager.manager())};return _View})},"dojox/mobile/View":function(){define("dojox/mobile/View",["dojo/_base/array",
"dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/sniff","dojo/_base/window","dojo/_base/Deferred","dojo/dom","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dijit/registry","dijit/_Contained","dijit/_Container","dijit/_WidgetBase","./ViewController","./common","./transition","./viewRegistry","./_css3"],function(array,config,connect,declare,lang,has,win,Deferred,dom,domClass,domConstruct,domGeometry,domStyle,registry,Contained,Container,
WidgetBase,ViewController,common,transitDeferred,viewRegistry,css3){var dm=lang.getObject("dojox.mobile",true);return declare("dojox.mobile.View",[WidgetBase,Container,Contained],{selected:false,keepScrollPos:true,tag:"div",baseClass:"mblView",constructor:function(params,node){if(node)dom.byId(node).style.visibility="hidden"},destroy:function(){viewRegistry.remove(this.id);this.inherited(arguments)},buildRendering:function(){if(!this.templateString)this.domNode=this.containerNode=this.srcNodeRef||
domConstruct.create(this.tag);this._animEndHandle=this.connect(this.domNode,css3.name("animationEnd"),"onAnimationEnd");this._animStartHandle=this.connect(this.domNode,css3.name("animationStart"),"onAnimationStart");if(!config["mblCSS3Transition"])this._transEndHandle=this.connect(this.domNode,css3.name("transitionEnd"),"onAnimationEnd");if(has("mblAndroid3Workaround")&&!has("chrome"))domStyle.set(this.domNode,css3.name("transformStyle"),"preserve-3d");viewRegistry.add(this);this.inherited(arguments)},
startup:function(){if(this._started)return;if(this._visible===undefined){var views=this.getSiblingViews();var ids=location.hash&&location.hash.substring(1).split(/,/);var fragView,selectedView,firstView;array.forEach(views,function(v,i){if(array.indexOf(ids,v.id)!==-1)fragView=v;if(i==0)firstView=v;if(v.selected)selectedView=v;v._visible=false},this);(fragView||selectedView||firstView)._visible=true}if(this._visible){this.show(true,true);this.defer(function(){this.onStartView();connect.publish("/dojox/mobile/startView",
[this])})}if(this.domNode.style.visibility!="visible")this.domNode.style.visibility="visible";this.inherited(arguments);var parent=this.getParent();if(!parent||!parent.resize)this.resize();if(!this._visible)this.hide()},resize:function(){array.forEach(this.getChildren(),function(child){if(child.resize)child.resize()})},onStartView:function(){},onBeforeTransitionIn:function(moveTo,dir,transition,context,method){},onAfterTransitionIn:function(moveTo,dir,transition,context,method){},onBeforeTransitionOut:function(moveTo,
dir,transition,context,method){},onAfterTransitionOut:function(moveTo,dir,transition,context,method){},_clearClasses:function(node){if(!node)return;var classes=[];array.forEach(lang.trim(node.className||"").split(/\s+/),function(c){if(c.match(/^mbl\w*View$/)||c.indexOf("mbl")===-1)classes.push(c)},this);node.className=classes.join(" ")},_fixViewState:function(toNode){if(!this.domNode.parentNode)return;var nodes=this.domNode.parentNode.childNodes;for(var i=0;i<nodes.length;i++){var n=nodes[i];if(n.nodeType===
1&&domClass.contains(n,"mblView"))this._clearClasses(n)}this._clearClasses(toNode);var toWidget=registry.byNode(toNode);if(toWidget)toWidget._inProgress=false},convertToId:function(moveTo){if(typeof moveTo=="string")return moveTo.replace(/^#?([^&?]+).*/,"$1");return moveTo},_isBookmarkable:function(detail){return detail.moveTo&&(config["mblForceBookmarkable"]||detail.moveTo.charAt(0)==="#")&&!detail.hashchange},performTransition:function(moveTo,transitionDir,transition,context,method){if(this._inProgress)return;
this._inProgress=true;var detail,optArgs;if(moveTo&&typeof moveTo==="object"){detail=moveTo;optArgs=transitionDir}else{detail={moveTo:moveTo,transitionDir:transitionDir,transition:transition,context:context,method:method};optArgs=[];for(var i=5;i<arguments.length;i++)optArgs.push(arguments[i])}this._detail=detail;this._optArgs=optArgs;this._arguments=[detail.moveTo,detail.transitionDir,detail.transition,detail.context,detail.method];if(detail.moveTo==="#")return;var toNode;if(detail.moveTo)toNode=
this.convertToId(detail.moveTo);else{if(!this._dummyNode){this._dummyNode=win.doc.createElement("div");win.body().appendChild(this._dummyNode)}toNode=this._dummyNode}if(this.addTransitionInfo&&typeof detail.moveTo=="string"&&this._isBookmarkable(detail))this.addTransitionInfo(this.id,detail.moveTo,{transitionDir:detail.transitionDir,transition:detail.transition});var fromNode=this.domNode;var fromTop=fromNode.offsetTop;toNode=this.toNode=dom.byId(toNode);if(!toNode){0&&console.log("dojox/mobile/View.performTransition: destination view not found: "+
detail.moveTo);return}toNode.style.visibility="hidden";toNode.style.display="";this._fixViewState(toNode);var toWidget=registry.byNode(toNode);if(toWidget){if(config["mblAlwaysResizeOnTransition"]||!toWidget._resized){common.resizeAll(null,toWidget);toWidget._resized=true}if(detail.transition&&detail.transition!="none")toWidget._addTransitionPaddingTop(fromTop);toWidget.load&&toWidget.load();toWidget.movedFrom=fromNode.id}if(has("mblAndroidWorkaround")&&!config["mblCSS3Transition"]&&detail.transition&&
detail.transition!="none"){domStyle.set(toNode,css3.name("transformStyle"),"preserve-3d");domStyle.set(fromNode,css3.name("transformStyle"),"preserve-3d");domClass.add(toNode,"mblAndroidWorkaround")}this.onBeforeTransitionOut.apply(this,this._arguments);connect.publish("/dojox/mobile/beforeTransitionOut",[this].concat(lang._toArray(this._arguments)));if(toWidget){if(this.keepScrollPos&&!this.getParent()){var scrollTop=win.body().scrollTop||win.doc.documentElement.scrollTop||win.global.pageYOffset||
0;fromNode._scrollTop=scrollTop;var toTop=detail.transitionDir==1?0:toNode._scrollTop||0;toNode.style.top="0px";if(scrollTop>1||toTop!==0){fromNode.style.top=toTop-scrollTop+"px";if(config["mblHideAddressBar"]!==false)this.defer(function(){win.global.scrollTo(0,toTop||1)})}}else toNode.style.top="0px";toWidget.onBeforeTransitionIn.apply(toWidget,this._arguments);connect.publish("/dojox/mobile/beforeTransitionIn",[toWidget].concat(lang._toArray(this._arguments)))}toNode.style.display="none";toNode.style.visibility=
"visible";common.fromView=this;common.toView=toWidget;this._doTransition(fromNode,toNode,detail.transition,detail.transitionDir)},_addTransitionPaddingTop:function(value){this.containerNode.style.paddingTop=value+"px"},_removeTransitionPaddingTop:function(){this.containerNode.style.paddingTop=""},_toCls:function(s){return"mbl"+s.charAt(0).toUpperCase()+s.substring(1)},_doTransition:function(fromNode,toNode,transition,transitionDir){var rev=transitionDir==-1?" mblReverse":"";toNode.style.display="";
if(!transition||transition=="none"){this.domNode.style.display="none";this.invokeCallback()}else if(config["mblCSS3Transition"])Deferred.when(transitDeferred,lang.hitch(this,function(transit){var toPosition=domStyle.get(toNode,"position");domStyle.set(toNode,"position","absolute");Deferred.when(transit(fromNode,toNode,{transition:transition,reverse:transitionDir===-1?true:false}),lang.hitch(this,function(){domStyle.set(toNode,"position",toPosition);toNode.style.paddingTop="";this.invokeCallback()}))}));
else{if(transition.indexOf("cube")!=-1)if(has("ipad"))domStyle.set(toNode.parentNode,{webkitPerspective:1600});else if(has("ios"))domStyle.set(toNode.parentNode,{webkitPerspective:800});var s=this._toCls(transition);if(has("mblAndroidWorkaround")){var _this=this;_this.defer(function(){domClass.add(fromNode,s+" mblOut"+rev);domClass.add(toNode,s+" mblIn"+rev);domClass.remove(toNode,"mblAndroidWorkaround");_this.defer(function(){domClass.add(fromNode,"mblTransition");domClass.add(toNode,"mblTransition")},
30)},70)}else{domClass.add(fromNode,s+" mblOut"+rev);domClass.add(toNode,s+" mblIn"+rev);this.defer(function(){domClass.add(fromNode,"mblTransition");domClass.add(toNode,"mblTransition")},100)}var fromOrigin="50% 50%";var toOrigin="50% 50%";var scrollTop,posX,posY;if(transition.indexOf("swirl")!=-1||transition.indexOf("zoom")!=-1){if(this.keepScrollPos&&!this.getParent())scrollTop=win.body().scrollTop||win.doc.documentElement.scrollTop||win.global.pageYOffset||0;else scrollTop=-domGeometry.position(fromNode,
true).y;posY=win.global.innerHeight/2+scrollTop;fromOrigin="50% "+posY+"px";toOrigin="50% "+posY+"px"}else if(transition.indexOf("scale")!=-1){var viewPos=domGeometry.position(fromNode,true);posX=(this.clickedPosX!==undefined?this.clickedPosX:win.global.innerWidth/2)-viewPos.x;if(this.keepScrollPos&&!this.getParent())scrollTop=win.body().scrollTop||win.doc.documentElement.scrollTop||win.global.pageYOffset||0;else scrollTop=-viewPos.y;posY=(this.clickedPosY!==undefined?this.clickedPosY:win.global.innerHeight/
2)+scrollTop;fromOrigin=posX+"px "+posY+"px";toOrigin=posX+"px "+posY+"px"}domStyle.set(fromNode,css3.add({},{transformOrigin:fromOrigin}));domStyle.set(toNode,css3.add({},{transformOrigin:toOrigin}))}},onAnimationStart:function(e){},onAnimationEnd:function(e){var name=e.animationName||e.target.className;if(name.indexOf("Out")===-1&&name.indexOf("In")===-1&&name.indexOf("Shrink")===-1)return;var isOut=false;if(domClass.contains(this.domNode,"mblOut")){isOut=true;this.domNode.style.display="none";
domClass.remove(this.domNode,[this._toCls(this._detail.transition),"mblIn","mblOut","mblReverse"])}else this._removeTransitionPaddingTop();domStyle.set(this.domNode,css3.add({},{transformOrigin:""}));if(name.indexOf("Shrink")!==-1){var li=e.target;li.style.display="none";domClass.remove(li,"mblCloseContent");var p=viewRegistry.getEnclosingScrollable(this.domNode);p&&p.onTouchEnd()}if(isOut)this.invokeCallback();this._clearClasses(this.domNode);this.clickedPosX=this.clickedPosY=undefined;if(name.indexOf("Cube")!==
-1&&name.indexOf("In")!==-1&&has("ios"))this.domNode.parentNode.style[css3.name("perspective")]=""},invokeCallback:function(){this.onAfterTransitionOut.apply(this,this._arguments);connect.publish("/dojox/mobile/afterTransitionOut",[this].concat(this._arguments));var toWidget=registry.byNode(this.toNode);if(toWidget){toWidget.onAfterTransitionIn.apply(toWidget,this._arguments);connect.publish("/dojox/mobile/afterTransitionIn",[toWidget].concat(this._arguments));toWidget.movedFrom=undefined;if(this.setFragIds&&
this._isBookmarkable(this._detail))this.setFragIds(toWidget)}if(has("mblAndroidWorkaround"))this.defer(function(){if(toWidget)domStyle.set(this.toNode,css3.name("transformStyle"),"");domStyle.set(this.domNode,css3.name("transformStyle"),"")});var c=this._detail.context,m=this._detail.method;if(c||m){if(!m){m=c;c=null}c=c||win.global;if(typeof m=="string")c[m].apply(c,this._optArgs);else if(typeof m=="function")m.apply(c,this._optArgs)}this._detail=this._optArgs=this._arguments=undefined;this._inProgress=
false},isVisible:function(checkAncestors){var visible=function(node){return domStyle.get(node,"display")!=="none"};if(checkAncestors){for(var n=this.domNode;n.tagName!=="BODY";n=n.parentNode)if(!visible(n))return false;return true}else return visible(this.domNode)},getShowingView:function(){var nodes=this.domNode.parentNode.childNodes;for(var i=0;i<nodes.length;i++){var n=nodes[i];if(n.nodeType===1&&domClass.contains(n,"mblView")&&n.style.display!=="none")return registry.byNode(n)}return null},getSiblingViews:function(){if(!this.domNode.parentNode)return[this];
return array.map(array.filter(this.domNode.parentNode.childNodes,function(n){return n.nodeType===1&&domClass.contains(n,"mblView")}),function(n){return registry.byNode(n)})},show:function(noEvent,doNotHideOthers){var out=this.getShowingView();if(!noEvent){if(out){out.onBeforeTransitionOut(out.id);connect.publish("/dojox/mobile/beforeTransitionOut",[out,out.id])}this.onBeforeTransitionIn(this.id);connect.publish("/dojox/mobile/beforeTransitionIn",[this,this.id])}if(doNotHideOthers)this.domNode.style.display=
"";else array.forEach(this.getSiblingViews(),function(v){v.domNode.style.display=v===this?"":"none"},this);this.load&&this.load();if(!noEvent){if(out){out.onAfterTransitionOut(out.id);connect.publish("/dojox/mobile/afterTransitionOut",[out,out.id])}this.onAfterTransitionIn(this.id);connect.publish("/dojox/mobile/afterTransitionIn",[this,this.id])}},hide:function(){this.domNode.style.display="none"}})})},"cbtree/util/IE8_Event":function(){define("cbtree/util/IE8_Event",function(){function IE8_Event(target,
type,props,ieEventObject){this.target=target;this.currentTarget=target;this.eventPhase=2;this.bubbles=!!(props&&props.bubbles);this.cancelable=!!(props&&props.cancelable);this.isTrusted=false;this.defaultPrevented=false;this.ieEventObject=ieEventObject;this.type=type;this.stopPropagation=this.stopImmediatePropagation=function(){ieEventObject.cancelBubble=true};this.preventDefault=function(){ieEventObject.returnValue=false;this.defaultPrevented=true}}return IE8_Event})},"dijit/hccss":function(){define("dijit/hccss",
["dojo/dom-class","dojo/hccss","dojo/domReady","dojo/_base/window"],function(domClass,has,domReady,win){domReady(function(){if(has("highcontrast"))domClass.add(win.body(),"dijit_a11y")});return has})},"dijit/PopupMenuItem":function(){define("dijit/PopupMenuItem",["dojo/_base/declare","dojo/dom-style","dojo/_base/lang","dojo/query","./popup","./registry","./MenuItem","./hccss"],function(declare,domStyle,lang,query,pm,registry,MenuItem){return declare("dijit.PopupMenuItem",MenuItem,{_fillContent:function(){if(this.srcNodeRef){var nodes=
query("*",this.srcNodeRef);this.inherited(arguments,[nodes[0]]);this.dropDownContainer=this.srcNodeRef}},_openPopup:function(params,focus){var popup=this.popup;pm.open(lang.delegate(params,{popup:this.popup,around:this.domNode}));if(focus&&popup.focus)popup.focus()},_closePopup:function(){pm.close(this.popup);this.popup.parentMenu=null},startup:function(){if(this._started)return;this.inherited(arguments);if(!this.popup){var node=query("[widgetId]",this.dropDownContainer)[0];this.popup=registry.byNode(node)}this.ownerDocumentBody.appendChild(this.popup.domNode);
this.popup.startup();this.popup.domNode.style.display="none";if(this.arrowWrapper)domStyle.set(this.arrowWrapper,"visibility","");this.focusNode.setAttribute("aria-haspopup","true")},destroyDescendants:function(preserveDom){if(this.popup){if(!this.popup._destroyed)this.popup.destroyRecursive(preserveDom);delete this.popup}this.inherited(arguments)}})})},"dijit/form/_FormSelectWidget":function(){define("dijit/form/_FormSelectWidget",["dojo/_base/array","dojo/_base/Deferred","dojo/aspect","dojo/data/util/sorter",
"dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/_base/kernel","dojo/_base/lang","dojo/query","dojo/when","dojo/store/util/QueryResults","./_FormValueWidget"],function(array,Deferred,aspect,sorter,declare,dom,domClass,kernel,lang,query,when,QueryResults,_FormValueWidget){var _FormSelectWidget=declare("dijit.form._FormSelectWidget",_FormValueWidget,{multiple:false,options:null,store:null,query:null,queryOptions:null,labelAttr:"",onFetch:null,sortByLabel:true,loadChildrenOnOpen:false,onLoadDeferred:null,
getOptions:function(valueOrIdx){var opts=this.options||[];if(valueOrIdx==null)return opts;if(lang.isArray(valueOrIdx))return array.map(valueOrIdx,"return this.getOptions(item);",this);if(lang.isString(valueOrIdx))valueOrIdx={value:valueOrIdx};if(lang.isObject(valueOrIdx))if(!array.some(opts,function(option,idx){for(var a in valueOrIdx)if(!(a in option)||option[a]!=valueOrIdx[a])return false;valueOrIdx=idx;return true}))valueOrIdx=-1;if(valueOrIdx>=0&&valueOrIdx<opts.length)return opts[valueOrIdx];
return null},addOption:function(option){array.forEach([].concat(option),function(i){if(i&&lang.isObject(i))this.options.push(i)},this);this._loadChildren()},removeOption:function(valueOrIdx){var oldOpts=this.getOptions([].concat(valueOrIdx));array.forEach(oldOpts,function(option){if(option){this.options=array.filter(this.options,function(node){return node.value!==option.value||node.label!==option.label});this._removeOptionItem(option)}},this);this._loadChildren()},updateOption:function(newOption){array.forEach([].concat(newOption),
function(i){var oldOpt=this.getOptions({value:i.value}),k;if(oldOpt)for(k in i)oldOpt[k]=i[k]},this);this._loadChildren()},setStore:function(store,selectedValue,fetchArgs){var oStore=this.store;fetchArgs=fetchArgs||{};if(oStore!==store){var h;while(h=this._notifyConnections.pop())h.remove();if(!store.get){lang.mixin(store,{_oldAPI:true,get:function(id){var deferred=new Deferred;this.fetchItemByIdentity({identity:id,onItem:function(object){deferred.resolve(object)},onError:function(error){deferred.reject(error)}});
return deferred.promise},query:function(query,options){var deferred=new Deferred(function(){if(fetchHandle.abort)fetchHandle.abort()});deferred.total=new Deferred;var fetchHandle=this.fetch(lang.mixin({query:query,onBegin:function(count){deferred.total.resolve(count)},onComplete:function(results){deferred.resolve(results)},onError:function(error){deferred.reject(error)}},options));return new QueryResults(deferred)}});if(store.getFeatures()["dojo.data.api.Notification"])this._notifyConnections=[aspect.after(store,
"onNew",lang.hitch(this,"_onNewItem"),true),aspect.after(store,"onDelete",lang.hitch(this,"_onDeleteItem"),true),aspect.after(store,"onSet",lang.hitch(this,"_onSetItem"),true)]}this._set("store",store)}if(this.options&&this.options.length)this.removeOption(this.options);if(this._queryRes&&this._queryRes.close)this._queryRes.close();if(fetchArgs.query){this._set("query",fetchArgs.query);this._set("queryOptions",fetchArgs.queryOptions)}if(store){this._loadingStore=true;this.onLoadDeferred=new Deferred;
this._queryRes=store.query(this.query,this.queryOptions);when(this._queryRes,lang.hitch(this,function(items){if(this.sortByLabel&&!fetchArgs.sort&&items.length)if(store.getValue)items.sort(sorter.createSortFunction([{attribute:store.getLabelAttributes(items[0])[0]}],store));else{var labelAttr=this.labelAttr;items.sort(function(a,b){return a[labelAttr]>b[labelAttr]?1:b[labelAttr]>a[labelAttr]?-1:0})}if(fetchArgs.onFetch)items=fetchArgs.onFetch.call(this,items,fetchArgs);array.forEach(items,function(i){this._addOptionForItem(i)},
this);if(this._queryRes.observe)this._queryRes.observe(lang.hitch(this,function(object,deletedFrom,insertedInto){if(deletedFrom==insertedInto)this._onSetItem(object);else{if(deletedFrom!=-1)this._onDeleteItem(object);if(insertedInto!=-1)this._onNewItem(object)}}),true);this._loadingStore=false;this.set("value","_pendingValue"in this?this._pendingValue:selectedValue);delete this._pendingValue;if(!this.loadChildrenOnOpen)this._loadChildren();else this._pseudoLoadChildren(items);this.onLoadDeferred.resolve(true);
this.onSetStore()}),function(err){console.error("dijit.form.Select: "+err.toString());this.onLoadDeferred.reject(err)})}return oStore},_setValueAttr:function(newValue,priorityChange){if(!this._onChangeActive)priorityChange=null;if(this._loadingStore){this._pendingValue=newValue;return}if(newValue==null)return;if(lang.isArray(newValue))newValue=array.map(newValue,function(value){return lang.isObject(value)?value:{value:value}});else if(lang.isObject(newValue))newValue=[newValue];else newValue=[{value:newValue}];
newValue=array.filter(this.getOptions(newValue),function(i){return i&&i.value});var opts=this.getOptions()||[];if(!this.multiple&&(!newValue[0]||!newValue[0].value)&&!!opts.length)newValue[0]=opts[0];array.forEach(opts,function(opt){opt.selected=array.some(newValue,function(v){return v.value===opt.value})});var val=array.map(newValue,function(opt){return opt.value});if(typeof val=="undefined"||typeof val[0]=="undefined")return;var disp=array.map(newValue,function(opt){return opt.label});this._setDisplay(this.multiple?
disp:disp[0]);this.inherited(arguments,[this.multiple?val:val[0],priorityChange]);this._updateSelection()},_getDisplayedValueAttr:function(){var ret=array.map([].concat(this.get("selectedOptions")),function(v){if(v&&"label"in v)return v.label;else if(v)return v.value;return null},this);return this.multiple?ret:ret[0]},_setDisplayedValueAttr:function(label){this.set("value",this.getOptions(typeof label=="string"?{label:label}:label))},_loadChildren:function(){if(this._loadingStore)return;array.forEach(this._getChildren(),
function(child){child.destroyRecursive()});array.forEach(this.options,this._addOptionItem,this);this._updateSelection()},_updateSelection:function(){this.focusedChild=null;this._set("value",this._getValueFromOpts());var val=[].concat(this.value);if(val&&val[0]){var self=this;array.forEach(this._getChildren(),function(child){var isSelected=array.some(val,function(v){return child.option&&v===child.option.value});if(isSelected&&!self.multiple)self.focusedChild=child;domClass.toggle(child.domNode,this.baseClass.replace(/\s+|$/g,
"SelectedOption "),isSelected);child.domNode.setAttribute("aria-selected",isSelected?"true":"false")},this)}},_getValueFromOpts:function(){var opts=this.getOptions()||[];if(!this.multiple&&opts.length){var opt=array.filter(opts,function(i){return i.selected})[0];if(opt&&opt.value)return opt.value;else{opts[0].selected=true;return opts[0].value}}else if(this.multiple)return array.map(array.filter(opts,function(i){return i.selected}),function(i){return i.value})||[];return""},_onNewItem:function(item,
parentInfo){if(!parentInfo||!parentInfo.parent)this._addOptionForItem(item)},_onDeleteItem:function(item){var store=this.store;this.removeOption({value:store.getIdentity(item)})},_onSetItem:function(item){this.updateOption(this._getOptionObjForItem(item))},_getOptionObjForItem:function(item){var store=this.store,label=this.labelAttr&&this.labelAttr in item?item[this.labelAttr]:store.getLabel(item),value=label?store.getIdentity(item):null;return{value:value,label:label,item:item}},_addOptionForItem:function(item){var store=
this.store;if(store.isItemLoaded&&!store.isItemLoaded(item)){store.loadItem({item:item,onItem:function(i){this._addOptionForItem(i)},scope:this});return}var newOpt=this._getOptionObjForItem(item);this.addOption(newOpt)},constructor:function(params){this._oValue=(params||{}).value||null;this._notifyConnections=[]},buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.focusNode,false)},_fillContent:function(){if(!this.options)this.options=this.srcNodeRef?query("\x3e *",this.srcNodeRef).map(function(node){if(node.getAttribute("type")===
"separator")return{value:"",label:"",selected:false,disabled:false};return{value:node.getAttribute("data-"+kernel._scopeName+"-value")||node.getAttribute("value"),label:String(node.innerHTML),selected:node.getAttribute("selected")||false,disabled:node.getAttribute("disabled")||false}},this):[];if(!this.value)this._set("value",this._getValueFromOpts());else if(this.multiple&&typeof this.value=="string")this._set("value",this.value.split(","))},postCreate:function(){this.inherited(arguments);aspect.after(this,
"onChange",lang.hitch(this,"_updateSelection"));var store=this.store;if(store&&(store.getIdentity||store.getFeatures()["dojo.data.api.Identity"])){this.store=null;this.setStore(store,this._oValue)}},startup:function(){this._loadChildren();this.inherited(arguments)},destroy:function(){var h;while(h=this._notifyConnections.pop())h.remove();if(this._queryRes&&this._queryRes.close)this._queryRes.close();this.inherited(arguments)},_addOptionItem:function(){},_removeOptionItem:function(){},_setDisplay:function(){},
_getChildren:function(){return[]},_getSelectedOptionsAttr:function(){return this.getOptions({selected:true})},_pseudoLoadChildren:function(){},onSetStore:function(){}});return _FormSelectWidget})},"dojox/grid/_SelectionPreserver":function(){define("dojox/grid/_SelectionPreserver",["dojo/_base/declare","dojo/_base/connect","dojo/_base/lang","dojo/_base/array"],function(declare,connect,lang,array){return declare("dojox.grid._SelectionPreserver",null,{constructor:function(selection){this.selection=selection;
var grid=this.grid=selection.grid;this.reset();this._connects=[connect.connect(grid,"_setStore",this,"reset"),connect.connect(grid,"_addItem",this,"_reSelectById"),connect.connect(selection,"onSelected",lang.hitch(this,"_selectById",true)),connect.connect(selection,"onDeselected",lang.hitch(this,"_selectById",false)),connect.connect(selection,"deselectAll",this,"reset")]},destroy:function(){this.reset();array.forEach(this._connects,connect.disconnect);delete this._connects},reset:function(){this._selectedById=
{}},_reSelectById:function(item,index){if(item&&this.grid._hasIdentity)this.selection.selected[index]=this._selectedById[this.grid.store.getIdentity(item)]},_selectById:function(toSelect,inItemOrIndex){if(this.selection.mode=="none"||!this.grid._hasIdentity)return;var item=inItemOrIndex,g=this.grid;if(typeof inItemOrIndex=="number"||typeof inItemOrIndex=="string"){var entry=g._by_idx[inItemOrIndex];item=entry&&entry.item}if(item)this._selectedById[g.store.getIdentity(item)]=!!toSelect;return item}})})},
"dojo/_base/NodeList":function(){define("dojo/_base/NodeList",["./kernel","../query","./array","./html","../NodeList-dom"],function(dojo,query,array){var NodeList=query.NodeList,nlp=NodeList.prototype;nlp.connect=NodeList._adaptAsForEach(function(){return dojo.connect.apply(this,arguments)});nlp.coords=NodeList._adaptAsMap(dojo.coords);NodeList.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover",
"mouseup","submit"];array.forEach(NodeList.events,function(evt){var _oe="on"+evt;nlp[_oe]=function(a,b){return this.connect(_oe,a,b)}});dojo.NodeList=NodeList;return NodeList})},"dojox/mdnd/AreaManager":function(){define("dojox/mdnd/AreaManager",["dojo/_base/kernel","dojo/_base/declare","dojo/_base/connect","dojo/_base/window","dojo/_base/array","dojo/_base/sniff","dojo/_base/lang","dojo/query","dojo/topic","dojo/dom-class","dojo/dom-geometry","dojo/dom-construct","dijit/registry","dijit/_Widget",
"./Moveable"],function(dojo,declare,connect,win,array,sniff,lang,query,topic,domClass,geom,domConstruct,registry,_Widget,Moveable){var am=declare("dojox.mdnd.AreaManager",null,{autoRefresh:true,areaClass:"dojoxDndArea",dragHandleClass:"dojoxDragHandle",constructor:function(){this._areaList=[];this.resizeHandler=connect.connect(dojo.global,"onresize",this,function(){this._dropMode.updateAreas(this._areaList)});this._oldIndexArea=this._currentIndexArea=this._oldDropIndex=this._currentDropIndex=this._sourceIndexArea=
this._sourceDropIndex=-1},init:function(){this.registerByClass()},registerByNode:function(area,notInitAreas){var index=this._getIndexArea(area);if(area&&index==-1){var acceptType=area.getAttribute("accept");var accept=acceptType?acceptType.split(/\s*,\s*/):["text"];var obj={"node":area,"items":[],"coords":{},"margin":null,"accept":accept,"initItems":false};array.forEach(this._getChildren(area),function(item){this._setMarginArea(obj,item);obj.items.push(this._addMoveableItem(item))},this);this._areaList=
this._dropMode.addArea(this._areaList,obj);if(!notInitAreas)this._dropMode.updateAreas(this._areaList);connect.publish("/dojox/mdnd/manager/register",[area])}},registerByClass:function(){query("."+this.areaClass).forEach(function(area){this.registerByNode(area,true)},this);this._dropMode.updateAreas(this._areaList)},unregister:function(area){var index=this._getIndexArea(area);if(index!=-1){array.forEach(this._areaList[index].items,function(item){this._deleteMoveableItem(item)},this);this._areaList.splice(index,
1);this._dropMode.updateAreas(this._areaList);return true}return false},_addMoveableItem:function(node){node.setAttribute("tabIndex","0");var handle=this._searchDragHandle(node);var moveable=new Moveable({"handle":handle,"skip":true},node);domClass.add(handle||node,"dragHandle");var type=node.getAttribute("dndType");var item={"item":moveable,"type":type?type.split(/\s*,\s*/):["text"],"handlers":[connect.connect(moveable,"onDragStart",this,"onDragStart")]};if(registry&&registry.byNode){var widget=
registry.byNode(node);if(widget){item.type=widget.dndType?widget.dndType.split(/\s*,\s*/):["text"];item.handlers.push(connect.connect(widget,"uninitialize",this,function(){this.removeDragItem(node.parentNode,moveable.node)}))}}return item},_deleteMoveableItem:function(objItem){array.forEach(objItem.handlers,function(handler){connect.disconnect(handler)});var node=objItem.item.node,handle=this._searchDragHandle(node);domClass.remove(handle||node,"dragHandle");objItem.item.destroy()},_getIndexArea:function(area){if(area)for(var i=
0;i<this._areaList.length;i++)if(this._areaList[i].node===area)return i;return-1},_searchDragHandle:function(node){if(node){var cssArray=this.dragHandleClass.split(" "),length=cssArray.length,queryCss="";array.forEach(cssArray,function(css,i){queryCss+="."+css;if(i!=length-1)queryCss+=", "});return query(queryCss,node)[0]}},addDragItem:function(area,node,index,notCheckParent){var add=true;if(!notCheckParent)add=area&&node&&(node.parentNode===null||node.parentNode&&node.parentNode.nodeType!==1);if(add){var indexArea=
this._getIndexArea(area);if(indexArea!==-1){var item=this._addMoveableItem(node),items=this._areaList[indexArea].items;if(0<=index&&index<items.length){var firstListChild=items.slice(0,index),lastListChild=items.slice(index,items.length);firstListChild[firstListChild.length]=item;this._areaList[indexArea].items=firstListChild.concat(lastListChild);area.insertBefore(node,items[index].item.node)}else{this._areaList[indexArea].items.push(item);area.appendChild(node)}this._setMarginArea(this._areaList[indexArea],
node);this._areaList[indexArea].initItems=false;return true}}return false},removeDragItem:function(area,node){var index=this._getIndexArea(area);if(area&&index!==-1){var items=this._areaList[index].items;for(var j=0;j<items.length;j++)if(items[j].item.node===node){this._deleteMoveableItem(items[j]);items.splice(j,1);return area.removeChild(node)}}return null},_getChildren:function(area){var children=[];array.forEach(area.childNodes,function(child){if(child.nodeType==1)if(registry&&registry.byNode){var widget=
registry.byNode(child);if(widget){if(!widget.dragRestriction)children.push(child)}else children.push(child)}else children.push(child)});return children},_setMarginArea:function(area,node){if(area&&area.margin===null&&node)area.margin=geom.getMarginExtents(node)},findCurrentIndexArea:function(coords,size){this._oldIndexArea=this._currentIndexArea;this._currentIndexArea=this._dropMode.getTargetArea(this._areaList,coords,this._currentIndexArea);if(this._currentIndexArea!=this._oldIndexArea){if(this._oldIndexArea!=
-1)this.onDragExit(coords,size);if(this._currentIndexArea!=-1)this.onDragEnter(coords,size)}return this._currentIndexArea},_isAccepted:function(type,accept){this._accept=false;for(var i=0;i<accept.length;++i)for(var j=0;j<type.length;++j)if(type[j]==accept[i]){this._accept=true;break}},onDragStart:function(node,coords,size){if(this.autoRefresh)this._dropMode.updateAreas(this._areaList);var _html=sniff("webkit")?dojo.body():dojo.body().parentNode;if(!this._cover){this._cover=domConstruct.create("div",
{"class":"dndCover"});this._cover2=lang.clone(this._cover);domClass.add(this._cover2,"dndCover2")}var h=_html.scrollHeight+"px";this._cover.style.height=this._cover2.style.height=h;dojo.body().appendChild(this._cover);dojo.body().appendChild(this._cover2);this._dragStartHandler=connect.connect(node.ownerDocument,"ondragstart",dojo,"stopEvent");this._sourceIndexArea=this._lastValidIndexArea=this._currentIndexArea=this._getIndexArea(node.parentNode);var sourceArea=this._areaList[this._sourceIndexArea];
var children=sourceArea.items;for(var i=0;i<children.length;i++)if(children[i].item.node==node){this._dragItem=children[i];this._dragItem.handlers.push(connect.connect(this._dragItem.item,"onDrag",this,"onDrag"));this._dragItem.handlers.push(connect.connect(this._dragItem.item,"onDragEnd",this,"onDrop"));children.splice(i,1);this._currentDropIndex=this._sourceDropIndex=i;break}var nodeRef=null;if(this._sourceDropIndex!==sourceArea.items.length)nodeRef=sourceArea.items[this._sourceDropIndex].item.node;
if(sniff("ie")>7)this._eventsIE7=[connect.connect(this._cover,"onmouseover",dojo,"stopEvent"),connect.connect(this._cover,"onmouseout",dojo,"stopEvent"),connect.connect(this._cover,"onmouseenter",dojo,"stopEvent"),connect.connect(this._cover,"onmouseleave",dojo,"stopEvent")];var s=node.style;s.left=coords.x+"px";s.top=coords.y+"px";if(s.position=="relative"||s.position=="")s.position="absolute";this._cover.appendChild(node);this._dropIndicator.place(sourceArea.node,nodeRef,size);domClass.add(node,
"dragNode");this._accept=true;connect.publish("/dojox/mdnd/drag/start",[node,sourceArea,this._sourceDropIndex])},onDragEnter:function(coords,size){if(this._currentIndexArea===this._sourceIndexArea)this._accept=true;else this._isAccepted(this._dragItem.type,this._areaList[this._currentIndexArea].accept)},onDragExit:function(coords,size){this._accept=false},onDrag:function(node,coords,size,mousePosition){var coordinates=this._dropMode.getDragPoint(coords,size,mousePosition);this.findCurrentIndexArea(coordinates,
size);if(this._currentIndexArea!==-1&&this._accept)this.placeDropIndicator(coordinates,size)},placeDropIndicator:function(coords,size){this._oldDropIndex=this._currentDropIndex;var area=this._areaList[this._currentIndexArea];if(!area.initItems)this._dropMode.initItems(area);this._currentDropIndex=this._dropMode.getDropIndex(area,coords);if(!(this._currentIndexArea===this._oldIndexArea&&this._oldDropIndex===this._currentDropIndex))this._placeDropIndicator(size);return this._currentDropIndex},_placeDropIndicator:function(size){var oldArea=
this._areaList[this._lastValidIndexArea];var currentArea=this._areaList[this._currentIndexArea];this._dropMode.refreshItems(oldArea,this._oldDropIndex,size,false);var node=null;if(this._currentDropIndex!=-1)node=currentArea.items[this._currentDropIndex].item.node;this._dropIndicator.place(currentArea.node,node);this._lastValidIndexArea=this._currentIndexArea;this._dropMode.refreshItems(currentArea,this._currentDropIndex,size,true)},onDropCancel:function(){if(!this._accept){var index=this._getIndexArea(this._dropIndicator.node.parentNode);
if(index!=-1)this._currentIndexArea=index;else this._currentIndexArea=0}},onDrop:function(node){this.onDropCancel();var targetArea=this._areaList[this._currentIndexArea];domClass.remove(node,"dragNode");var style=node.style;style.position="relative";style.left="0";style.top="0";style.width="auto";if(targetArea.node==this._dropIndicator.node.parentNode)targetArea.node.insertBefore(node,this._dropIndicator.node);else{targetArea.node.appendChild(node);this._currentDropIndex=targetArea.items.length}var indexChild=
this._currentDropIndex;if(indexChild==-1)indexChild=targetArea.items.length;var children=targetArea.items;var firstListArea=children.slice(0,indexChild);var lastListArea=children.slice(indexChild,children.length);firstListArea[firstListArea.length]=this._dragItem;targetArea.items=firstListArea.concat(lastListArea);this._setMarginArea(targetArea,node);array.forEach(this._areaList,function(obj){obj.initItems=false});connect.disconnect(this._dragItem.handlers.pop());connect.disconnect(this._dragItem.handlers.pop());
this._resetAfterDrop();if(this._cover){dojo.body().removeChild(this._cover);dojo.body().removeChild(this._cover2)}connect.publish("/dojox/mdnd/drop",[node,targetArea,indexChild])},_resetAfterDrop:function(){this._accept=false;this._dragItem=null;this._currentDropIndex=-1;this._currentIndexArea=-1;this._oldDropIndex=-1;this._sourceIndexArea=-1;this._sourceDropIndex=-1;this._dropIndicator.remove();if(this._dragStartHandler)connect.disconnect(this._dragStartHandler);if(sniff("ie")>7)array.forEach(this._eventsIE7,
connect.disconnect)},destroy:function(){while(this._areaList.length>0)if(!this.unregister(this._areaList[0].node))throw new Error("Error while destroying AreaManager");connect.disconnect(this.resizeHandler);this._dropIndicator.destroy();this._dropMode.destroy();if(dojox.mdnd.autoScroll)dojox.mdnd.autoScroll.destroy();if(this.refreshListener)connect.unsubscribe(this.refreshListener);if(this._cover){domConstruct.destroy(this._cover);domConstruct.destroy(this._cover2);delete this._cover;delete this._cover2}}});
if(_Widget)lang.extend(_Widget,{dndType:"text"});dojox.mdnd._areaManager=null;dojox.mdnd.areaManager=function(){if(!dojox.mdnd._areaManager)dojox.mdnd._areaManager=new dojox.mdnd.AreaManager;return dojox.mdnd._areaManager};return am})},"dgrid/List":function(){define(["dojo/_base/kernel","dojo/_base/declare","dojo/dom","dojo/on","dojo/has","./util/misc","dojo/has!touch?./TouchScroll","xstyle/has-class","put-selector/put","dojo/_base/sniff","xstyle/css!./css/dgrid.css"],function(kernel,declare,dom,
listen,has,miscUtil,TouchScroll,hasClass,put){hasClass("mozilla","opera","webkit","ie","ie-6","ie-6-7","quirks","no-quirks","touch");var oddClass="dgrid-row-odd",evenClass="dgrid-row-even",scrollbarWidth,scrollbarHeight;function byId(id){return document.getElementById(id)}function cleanupTestElement(element){element.className="";document.body.removeChild(element)}function getScrollbarSize(element,dimension){put(document.body,element,".dgrid-scrollbar-measure");var size=element["offset"+dimension]-
element["client"+dimension];cleanupTestElement(element);return size}has.add("dom-scrollbar-width",function(global,doc,element){return getScrollbarSize(element,"Width")});has.add("dom-scrollbar-height",function(global,doc,element){return getScrollbarSize(element,"Height")});has.add("dom-rtl-scrollbar-left",function(global,doc,element){var div=put("div"),isLeft;put(document.body,element,".dgrid-scrollbar-measure[dir\x3drtl]");put(element,div);isLeft=!!has("ie")||!!has("trident")||div.offsetLeft>=has("dom-scrollbar-width");
cleanupTestElement(element);put(div,"!");element.removeAttribute("dir");return isLeft});var autogen=0;function generateId(){return"dgrid_"+autogen++}var spaceRx=/ +/g;function setClass(cls){var putClass=cls?"."+cls.replace(spaceRx,"."):"";if(this._class)putClass="!"+this._class.replace(spaceRx,"!")+putClass;put(this.domNode,putClass);this._class=cls}function getClass(){return this._class}var winResizeHandler=has("ie")<7&&!has("quirks")?function(){var root,w,h,dims;if(!this._started)return;root=document.documentElement;
w=root.clientWidth;h=root.clientHeight;dims=this._prevWinDims||[];if(dims[0]!==w||dims[1]!==h){this.resize();this._prevWinDims=[w,h]}}:function(){if(this._started)this.resize()};function desktopGetScrollPosition(){return{x:this.bodyNode.scrollLeft,y:this.bodyNode.scrollTop}}function desktopScrollTo(options){if(typeof options.x!=="undefined")this.bodyNode.scrollLeft=options.x;if(typeof options.y!=="undefined")this.bodyNode.scrollTop=options.y}return declare(has("touch")?TouchScroll:null,{tabableHeader:false,
showHeader:false,showFooter:false,maintainOddEven:true,cleanAddedRules:true,useTouchScroll:!has("dom-scrollbar-width"),addUiClasses:true,cleanEmptyObservers:true,highlightDuration:250,postscript:function(params,srcNodeRef){var grid=this;(this._Row=function(id,object,element){this.id=id;this.data=object;this.element=element}).prototype.remove=function(){grid.removeRow(this.element)};if(srcNodeRef)this.srcNodeRef=srcNodeRef=srcNodeRef.nodeType?srcNodeRef:byId(srcNodeRef);this.create(params,srcNodeRef)},
listType:"list",create:function(params,srcNodeRef){var domNode=this.domNode=srcNodeRef||put("div"),cls;if(params){this.params=params;declare.safeMixin(this,params);cls=params["class"]||params.className||domNode.className;this._sort=params.sort||[];delete this.sort}else this._sort=[];this.observers=[];this._numObservers=0;this._listeners=[];this._rowIdToObject={};this.postMixInProperties&&this.postMixInProperties();this.id=domNode.id=domNode.id||this.id||generateId();this.buildRendering();if(cls)setClass.call(this,
cls);this.postCreate();delete this.srcNodeRef;if(this.domNode.offsetHeight)this.startup()},buildRendering:function(){var domNode=this.domNode,addUiClasses=this.addUiClasses,self=this,headerNode,spacerNode,bodyNode,footerNode,isRTL;isRTL=this.isRTL=(document.body.dir||document.documentElement.dir||document.body.style.direction).toLowerCase()=="rtl";domNode.className="";put(domNode,"[role\x3dgrid].dgrid.dgrid-"+this.listType+(addUiClasses?".ui-widget":""));headerNode=this.headerNode=put(domNode,"div.dgrid-header.dgrid-header-row"+
(addUiClasses?".ui-widget-header":"")+(this.showHeader?"":".dgrid-header-hidden"));if(has("quirks")||has("ie")<8)spacerNode=put(domNode,"div.dgrid-spacer");bodyNode=this.bodyNode=put(domNode,"div.dgrid-scroller");if(has("ff"))bodyNode.tabIndex=-1;this.headerScrollNode=put(domNode,"div.dgrid-header.dgrid-header-scroll.dgrid-scrollbar-width"+(addUiClasses?".ui-widget-header":""));footerNode=this.footerNode=put("div.dgrid-footer"+(this.showFooter?"":".dgrid-footer-hidden"));put(domNode,footerNode);if(isRTL)domNode.className+=
" dgrid-rtl"+(has("dom-rtl-scrollbar-left")?" dgrid-rtl-swap":"");listen(bodyNode,"scroll",function(event){if(self.showHeader)headerNode.scrollLeft=event.scrollLeft||bodyNode.scrollLeft;event.stopPropagation();listen.emit(domNode,"scroll",{scrollTarget:bodyNode})});this.configStructure();this.renderHeader();this.contentNode=this.touchNode=put(this.bodyNode,"div.dgrid-content"+(addUiClasses?".ui-widget-content":""));this._listeners.push(this._resizeHandle=listen(window,"resize",miscUtil.throttleDelayed(winResizeHandler,
this)))},postCreate:has("touch")?function(){if(this.useTouchScroll)this.inherited(arguments)}:function(){},startup:function(){if(this._started)return;this.inherited(arguments);this._started=true;this.resize();this.set("sort",this._sort)},configStructure:function(){},resize:function(){var bodyNode=this.bodyNode,headerNode=this.headerNode,footerNode=this.footerNode,headerHeight=headerNode.offsetHeight,footerHeight=this.showFooter?footerNode.offsetHeight:0,quirks=has("quirks")||has("ie")<7;this.headerScrollNode.style.height=
bodyNode.style.marginTop=headerHeight+"px";bodyNode.style.marginBottom=footerHeight+"px";if(quirks){bodyNode.style.height="";bodyNode.style.height=Math.max(this.domNode.offsetHeight-headerHeight-footerHeight,0)+"px";if(footerHeight){footerNode.style.bottom="1px";setTimeout(function(){footerNode.style.bottom=""},0)}}if(!scrollbarWidth){scrollbarWidth=has("dom-scrollbar-width");scrollbarHeight=has("dom-scrollbar-height");if(has("ie")){scrollbarWidth++;scrollbarHeight++}miscUtil.addCssRule(".dgrid-scrollbar-width",
"width: "+scrollbarWidth+"px");miscUtil.addCssRule(".dgrid-scrollbar-height","height: "+scrollbarHeight+"px");if(scrollbarWidth!=17&&!quirks){miscUtil.addCssRule(".dgrid-header-row","right: "+scrollbarWidth+"px");miscUtil.addCssRule(".dgrid-rtl-swap .dgrid-header-row","left: "+scrollbarWidth+"px")}}if(quirks){headerNode.style.width=bodyNode.clientWidth+"px";setTimeout(function(){headerNode.scrollLeft=bodyNode.scrollLeft},0)}},addCssRule:function(selector,css){var rule=miscUtil.addCssRule(selector,
css);if(this.cleanAddedRules)this._listeners.push(rule);return rule},on:function(eventType,listener){var signal=listen(this.domNode,eventType,listener);if(!has("dom-addeventlistener"))this._listeners.push(signal);return signal},cleanup:function(){var observers=this.observers,i;for(i in this._rowIdToObject)if(this._rowIdToObject[i]!=this.columns){var rowElement=byId(i);if(rowElement)this.removeRow(rowElement,true)}for(i=0;i<observers.length;i++){var observer=observers[i];observer&&observer.cancel()}this.observers=
[];this._numObservers=0;this.preload=null},destroy:function(){if(this._listeners){for(var i=this._listeners.length;i--;)this._listeners[i].remove();delete this._listeners}this._started=false;this.cleanup();put(this.domNode,"!");if(this.useTouchScroll)this.inherited(arguments)},refresh:function(){this.cleanup();this._rowIdToObject={};this._autoId=0;this.contentNode.innerHTML="";this.scrollTo({x:0,y:0})},newRow:function(object,parentNode,beforeNode,i,options){if(parentNode){var row=this.insertRow(object,
parentNode,beforeNode,i,options);put(row,".dgrid-highlight"+(this.addUiClasses?".ui-state-highlight":""));setTimeout(function(){put(row,"!dgrid-highlight!ui-state-highlight")},this.highlightDuration);return row}},adjustRowIndices:function(firstRow){var next=firstRow;var rowIndex=next.rowIndex;if(rowIndex>-1){do if(next.rowIndex>-1){if(this.maintainOddEven)if((next.className+" ").indexOf("dgrid-row ")>-1)put(next,"."+(rowIndex%2==1?oddClass:evenClass)+"!"+(rowIndex%2==0?oddClass:evenClass));next.rowIndex=
rowIndex++}while((next=next.nextSibling)&&next.rowIndex!=rowIndex)}},renderArray:function(results,beforeNode,options){options=options||{};var self=this,start=options.start||0,observers=this.observers,rows,container,observerIndex;if(!beforeNode)this._lastCollection=results;if(results.observe){self._numObservers++;var observer=results.observe(function(object,from,to){var row,firstRow,nextNode,parentNode;function advanceNext(){nextNode=(nextNode.connected||nextNode).nextSibling}if(from>-1&&rows[from]){row=
rows.splice(from,1)[0];if(row.parentNode==container){firstRow=row.nextSibling;if(firstRow)if(from!=to)firstRow.rowIndex--;self.removeRow(row)}options.count--;if(self._processScroll)self._processScroll()}if(to>-1){if(rows.length)if(to===0){nextNode=rows[to];nextNode=nextNode&&correctElement(nextNode)}else{nextNode=rows[to-1];if(nextNode){nextNode=correctElement(nextNode);advanceNext()}}else nextNode=self._getFirstRowSibling&&self._getFirstRowSibling(container);if(row&&nextNode&&row.id===nextNode.id)advanceNext();
if(nextNode&&!nextNode.parentNode)nextNode=byId(nextNode.id);parentNode=beforeNode&&beforeNode.parentNode||nextNode&&nextNode.parentNode||self.contentNode;row=self.newRow(object,parentNode,nextNode,options.start+to,options);if(row){row.observerIndex=observerIndex;rows.splice(to,0,row);if(!firstRow||to<from){var previous=row.previousSibling;firstRow=!previous||previous.rowIndex+1==row.rowIndex||row.rowIndex==0?row:previous}}options.count++}if(from===0)overlapRows(1,1);else if(from===results.length-
(to===-1?0:1))overlapRows(0,0);from!=to&&firstRow&&self.adjustRowIndices(firstRow);self._onNotification(rows,object,from,to)},true);observerIndex=observers.push(observer)-1}var rowsFragment=document.createDocumentFragment(),lastRow;function overlapRows(){var sides=arguments;if(observerIndex>-1)for(var i=0;i<sides.length;i++){var top=sides[i];var lastRow=rows[top?0:rows.length-1];lastRow=lastRow&&correctElement(lastRow);if(lastRow){var row=lastRow[top?"previousSibling":"nextSibling"];if(row)row=self.row(row);
if(row&&row.element!=lastRow){var method=top?"unshift":"push";results[method](row.data);rows[method](row.element);options.count++}}}}function correctElement(row){if(!dom.isDescendant(row,self.domNode)&&byId(row.id))return self.row(row.id.slice(self.id.length+5)).element;return row}function mapEach(object){lastRow=self.insertRow(object,rowsFragment,null,start++,options);lastRow.observerIndex=observerIndex;return lastRow}function whenError(error){if(typeof observerIndex!=="undefined"){observers[observerIndex].cancel();
observers[observerIndex]=0;self._numObservers--}if(error)throw error;}var originalRows;function whenDone(resolvedRows){originalRows=resolvedRows.slice(0);container=beforeNode?beforeNode.parentNode:self.contentNode;if(container&&container.parentNode&&(container!==self.contentNode||resolvedRows.length)){container.insertBefore(rowsFragment,beforeNode||null);lastRow=resolvedRows[resolvedRows.length-1];lastRow&&self.adjustRowIndices(lastRow)}else if(observers[observerIndex]&&self.cleanEmptyObservers)whenError();
rows=resolvedRows;if(observer)observer.rows=rows}if(results.map){rows=results.map(mapEach,console.error);if(rows.then)return results.then(function(resultsArray){results=resultsArray;return rows.then(function(resolvedRows){whenDone(resolvedRows);overlapRows(1,1,0,0);return originalRows})})}else{rows=[];for(var i=0,l=results.length;i<l;i++)rows[i]=mapEach(results[i])}whenDone(rows);overlapRows(1,1,0,0);return originalRows},_onNotification:function(rows,object,from,to){},renderHeader:function(){},_autoId:0,
insertRow:function(object,parent,beforeNode,i,options){var parentId=options.parentId,id=this.id+"-row-"+(parentId?parentId+"-":"")+(this.store&&this.store.getIdentity?this.store.getIdentity(object):this._autoId++),row=byId(id),previousRow=row&&row.previousSibling;if(row){if(row===beforeNode)beforeNode=(beforeNode.connected||beforeNode).nextSibling;this.removeRow(row)}row=this.renderRow(object,options);row.className=(row.className||"")+" dgrid-row "+(i%2==1?oddClass:evenClass)+(this.addUiClasses?" ui-state-default":
"");this._rowIdToObject[row.id=id]=object;parent.insertBefore(row,beforeNode||null);if(previousRow)this.adjustRowIndices(previousRow);row.rowIndex=i;return row},renderRow:function(value,options){return put("div",""+value)},removeRow:function(rowElement,justCleanup){rowElement=rowElement.element||rowElement;delete this._rowIdToObject[rowElement.id];if(!justCleanup)put(rowElement,"!")},row:function(target){var id;if(target instanceof this._Row)return target;if(target.target&&target.target.nodeType)target=
target.target;if(target.nodeType){var object;do{var rowId=target.id;if(object=this._rowIdToObject[rowId])return new this._Row(rowId.substring(this.id.length+5),object,target);target=target.parentNode}while(target&&target!=this.domNode);return}if(typeof target=="object")id=this.store.getIdentity(target);else{id=target;target=this._rowIdToObject[this.id+"-row-"+id]}return new this._Row(id,target,byId(this.id+"-row-"+id))},cell:function(target){return{row:this.row(target)}},_move:function(item,steps,
targetClass,visible){var nextSibling,current,element;element=current=item.element;steps=steps||1;do if(nextSibling=current[steps<0?"previousSibling":"nextSibling"]){do{current=nextSibling;if(current&&(current.className+" ").indexOf(targetClass+" ")>-1){element=current;steps+=steps<0?1:-1;break}}while(nextSibling=(!visible||!current.hidden)&&current[steps<0?"lastChild":"firstChild"])}else{current=current.parentNode;if(!current||current===this.bodyNode||current===this.headerNode)break}while(steps);
return element},up:function(row,steps,visible){if(!row.element)row=this.row(row);return this.row(this._move(row,-(steps||1),"dgrid-row",visible))},down:function(row,steps,visible){if(!row.element)row=this.row(row);return this.row(this._move(row,steps||1,"dgrid-row",visible))},scrollTo:has("touch")?function(options){return this.useTouchScroll?this.inherited(arguments):desktopScrollTo.call(this,options)}:desktopScrollTo,getScrollPosition:has("touch")?function(){return this.useTouchScroll?this.inherited(arguments):
desktopGetScrollPosition.call(this)}:desktopGetScrollPosition,get:function(name){var fn="_get"+name.charAt(0).toUpperCase()+name.slice(1);if(typeof this[fn]==="function")return this[fn].apply(this,[].slice.call(arguments,1));if(!1&&typeof this[fn+"Attr"]==="function")0&&console.warn("dgrid: Use "+fn+" instead of "+fn+"Attr for getting "+name);return this[name]},set:function(name,value){if(typeof name==="object")for(var k in name)this.set(k,name[k]);else{var fn="_set"+name.charAt(0).toUpperCase()+
name.slice(1);if(typeof this[fn]==="function")this[fn].apply(this,[].slice.call(arguments,1));else{if(!1&&typeof this[fn+"Attr"]==="function")0&&console.warn("dgrid: Use "+fn+" instead of "+fn+"Attr for setting "+name);this[name]=value}}return this},_getClass:getClass,_setClass:setClass,_getClassName:getClass,_setClassName:setClass,_setSort:function(property,descending){this._sort=typeof property!="string"?property:[{attribute:property,descending:descending}];this.refresh();if(this._lastCollection){if(property.length){if(typeof property!=
"string"){descending=property[0].descending;property=property[0].attribute}this._lastCollection.sort(function(a,b){var aVal=a[property],bVal=b[property];if(aVal===undefined)aVal="";if(bVal===undefined)bVal="";return aVal==bVal?0:aVal>bVal==!descending?1:-1})}this.renderArray(this._lastCollection)}},sort:function(property,descending){kernel.deprecated("sort(...)",'use set("sort", ...) instead',"dgrid 0.4");this.set("sort",property,descending)},_getSort:function(){return this._sort},_setShowHeader:function(show){var headerNode=
this.headerNode;this.showHeader=show;put(headerNode,(show?"!":".")+"dgrid-header-hidden");this.renderHeader();this.resize();if(show)headerNode.scrollLeft=this.getScrollPosition().x},setShowHeader:function(show){kernel.deprecated("setShowHeader(...)",'use set("showHeader", ...) instead',"dgrid 0.4");this.set("showHeader",show)},_setShowFooter:function(show){this.showFooter=show;put(this.footerNode,(show?"!":".")+"dgrid-footer-hidden");this.resize()}})})},"xas/views/GroupedMetaSettingsView":function(){define(["dojo/_base/array",
"dojo/_base/declare","dojo/_base/html","dojo/on","xas/views/GroupedSettingsView"],function(array,declare,html,on,GroupedSettingsView){return dojo.declare("xas.views.GroupedMetaSettingsView",[GroupedSettingsView],{currentWidget:null,tabContainer:null,allWidgets:null,metaCIS:null,appStore:null,applicationAction:null,delegate:null,getTabForWidget:function(widget){var widgetGroup=xas.utils.getWidgetGroup(widget.userData);var widgetTab=this.tabContainer.widgetTabMap.get(widgetGroup);return widgetTab},
buildContainerWidgets:function(data){if(!this.tabContainer)this.tabContainer=xas.factory.createTabbedSettingsView(data,this)},getWidgetByType:function(type){for(var i=0;i<this.widgets.length;i++){var widget=this.widgets[i];if(widget.userData.type==type)return widget}return null},attachWidgets:function(data){var dstHandler=this;this.helpNodes=new Array;for(var i=0;i<data.length;i++){var widget=data[i];widget.delegate=this;widget["region"]="center";widget["pageData"]=this.data;var dstTab=this.getTabForWidget(widget);
if(!dstTab)continue;dstTab.domNode.appendChild(widget.domNode);widget.startup();var br=dojo.create("br");dstTab.domNode.appendChild(br);this.helpNodes.push(br)}this.resize()},attachWidgetsToAllTab:function(data){var dstHandler=this;for(var i=0;i<data.length;i++){var widget=data[i];widget.delegate=this;widget["region"]="center";var dstTab=this.tabContainer.widgetTabMap.get(xas.types.ECMWidgetGroup.All);dstTab.domNode.appendChild(widget.domNode);widget["pageData"]=this.data;widget.startup();var br=
dojo.create("br");dstTab.domNode.appendChild(br);this.helpNodes.push(br)}},empty:function(){if(this.tabContainer){xapp.utils.destroyWidget(this.tabContainer);this.tabContainer=null}if(this.helpNodes)for(var i=0;i<this.helpNodes.length;i++){var widget=this.helpNodes[i];xapp.utils.destroyWidget(widget)}if(this.widgets)for(var i=0;i<this.widgets.length;i++){var widget=this.widgets[i];xapp.utils.destroyWidget(widget)}if(this.allWidgets)for(var i=0;i<this.allWidgets.length;i++){var widget=this.allWidgets[i];
xapp.utils.destroyWidget(widget)}},initWithMetaDataStore:function(metaDataStore){this.empty();this.data=null;var thiz=this;this.metaCIS=null;metaDataStore.fetch({query:{id:"*"},queryOptions:{"deep":true},onComplete:function(items,req){thiz.metaCIS=items}});this.buildContainerWidgets(this.metaCIS);this.widgets=xas.factory.createWidgetsFromArray(this.metaCIS,thiz,this.data);if(this.widgets)this.attachWidgets(this.widgets);this.allWidgets=xas.factory.createWidgetsFromArray(this.metaCIS,thiz);if(this.allWidgets)this.attachWidgetsToAllTab(this.allWidgets)}})})},
"dojox/mobile/uacss":function(){define("dojox/mobile/uacss",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/window","./sniff"],function(dojo,lang,win,has){var html=win.doc.documentElement;html.className=lang.trim(html.className+" "+[has("bb")?"dj_bb":"",has("android")?"dj_android":"",has("ios")?"dj_ios":"",has("ios")>=6?"dj_ios6":"",has("ios")?"dj_iphone":"",has("ipod")?"dj_ipod":"",has("ipad")?"dj_ipad":"",has("ie")?"dj_ie":""].join(" ").replace(/ +/g," "));return dojo})},"dijit/tree/ObjectStoreModel":function(){define("dijit/tree/ObjectStoreModel",
["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/lang","dojo/when"],function(array,aspect,declare,lang,when){return declare("dijit.tree.ObjectStoreModel",null,{store:null,labelAttr:"name",labelType:"text",root:null,query:null,constructor:function(args){lang.mixin(this,args);this.childrenCache={}},destroy:function(){for(var id in this.childrenCache)this.childrenCache[id].close&&this.childrenCache[id].close()},getRoot:function(onItem,onError){if(this.root)onItem(this.root);else{var res;
when(res=this.store.query(this.query),lang.hitch(this,function(items){if(items.length!=1)throw new Error("dijit.tree.ObjectStoreModel: root query returned "+items.length+" items, but must return exactly one");this.root=items[0];onItem(this.root);if(res.observe)res.observe(lang.hitch(this,function(obj){this.onChange(obj)}),true)}),onError)}},mayHaveChildren:function(){return true},getChildren:function(parentItem,onComplete,onError){var id=this.store.getIdentity(parentItem);if(this.childrenCache[id]){when(this.childrenCache[id],
onComplete,onError);return}var res=this.childrenCache[id]=this.store.getChildren(parentItem);when(res,onComplete,onError);if(res.observe)res.observe(lang.hitch(this,function(obj,removedFrom,insertedInto){this.onChange(obj);if(removedFrom!=insertedInto)when(res,lang.hitch(this,"onChildrenChange",parentItem))}),true)},isItem:function(){return true},getIdentity:function(item){return this.store.getIdentity(item)},getLabel:function(item){return item[this.labelAttr]},newItem:function(args,parent,insertIndex,
before){return this.store.put(args,{parent:parent,before:before})},pasteItem:function(childItem,oldParentItem,newParentItem,bCopy,insertIndex,before){if(!bCopy){var oldParentChildren=[].concat(this.childrenCache[this.getIdentity(oldParentItem)]),index=array.indexOf(oldParentChildren,childItem);oldParentChildren.splice(index,1);this.onChildrenChange(oldParentItem,oldParentChildren)}return this.store.put(childItem,{overwrite:true,parent:newParentItem,before:before})},onChange:function(){},onChildrenChange:function(){},
onDelete:function(){}})})},"xfile/views/FileGridView":function(){define("xfile/views/FileGridView",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","dojox/rpc/Service","dojo/_base/lang","dijit/Menu","dijit/MenuItem","dijit/layout/ContentPane","dojox/grid/DataGrid","dojo/dom-construct","dgrid/OnDemandGrid","dgrid/Selection","dgrid/Keyboard","dgrid/extensions/ColumnResizer","put-selector/put","xfile/views/ContextMenuHandler","xide/types","xide/utils","xide/factory",
"./FileView","./_KeyNavMixin","./FileGridViewRendering","./FileGridViewUtils","./FileGridViewDND","dojo/store/Memory","dojo/store/Observable"],function(array,declare,html,domClass,on,Service,lang,Menu,MenuItem,ContentPane,DataGrid,domConstruct,Grid,Selection,Keyboard,ColumnResizer,put,ContextMenuHandler,types,utils,factory,FileView,_KeyNavMixin,FileGridViewRendering,FileGridViewUtils,FileGridViewDND,Memory,Observable){return declare("xfiles.views.FileGridView",[FileView,_KeyNavMixin,FileGridViewRendering,
FileGridViewUtils,FileGridViewDND],{fileStoreUrl:null,sortFields:null,queryOptions:null,layoutFiles:null,trail:null,theme:"/default/",themeRoot:null,listButton:null,galleryButton:null,lastSelectedRowItem:null,currentLayoutClass:"table",hasControls:true,hasTrail:true,config:null,allowFiles:true,parentItem:null,nextFocusItem:null,nextFocusItemForce:null,selectedItem:null,lastSelectedItem:null,selectedItems:null,focusedChildNode:null,focusedChildNodeNext:null,restoreItem:null,editContext:null,prevFocusNode:null,
isForcedFocus:false,staticStore:null,isStoreRefresh:false,autoHeight:true,restoreFocus:function(){this.onContainerFocus()},setStaticData:function(data){var storeData={items:data,identifier:"path",label:"name"};var store=Observable(Memory({data:storeData}));store.getParents=function(item){return[{path:".",directory:"."}]};this.staticStore=store;this.store=store;this.onGridRefreshed=function(){};this.setQuery=function(){};try{this._createGrid(store,data.length>20)}catch(e){}},onContainerFocus:function(){var thiz=
this;setTimeout(function(){thiz.onFocusRootNode()},1)},_getValidItem:function(nodes){for(var i=0;i<nodes.length;i++){var row=this.grid.row(nodes[i]);if(row&&row.data&&row.data.name!==".")return row.data}return null},getFirstItem:function(){var innerNodes=utils.find(".dgrid-row",this.grid.domNode,false);if(innerNodes)if(innerNodes.length>1){var item=this._getValidItem(innerNodes);if(item)return item}return null},focusFirstItem:function(){if(this._getFirst){var first=this._getFirst();if(first){this.focusItem(first,
false);this.grid._focusNode=first;this.grid.focus(first)}else console.error("focusFirstItem:failed")}},onFocusRootNode:function(){if(this.prevFocusNode){this.isForcedFocus=true;this.focusItem(this.prevFocusNode,false);this.grid._focusNode=this.prevFocusNode;this.grid.focus(this.prevFocusNode);this.isForcedFocus=false}else this.focusFirstItem()},onSorted:function(){var thiz=this;if(this.grid._sortClick==null||this.grid._sortClick==false)return;return;setTimeout(function(){thiz.onGridRefreshed()},100)},
onKeyboardSearch:function(item,evt,searchString,numMatches){if(item&&item.data)this.focusItem(item.data,false)},openItemBackup:function(item){if(item&&item.directory==null)return;var thiz=this;if(this.activeItem)if(this.activeItem.isBack===true){this._restoreItem(this.activeItem);this.activeItem.isBack=false;if(item==this.activeItem){var parent=this.getParentItem(item);if(parent){this.delegate.onHistoryBack(this.delegate.cookiePrefix,item);this.activeItem=parent;this.updateGrid(parent);setTimeout(function(){},
200);return}}}this.activeItem=item;if(item){this.delegate.onHistoryForward(this.delegate.cookiePrefix,item);this.nextFocusItem=null;this.updateGrid(item)}},openItem:function(item){if(this.editing)return;if(item==null)return;if(item&&item.directory==null)return;var thiz=this;var itemToCheck=this.activeItem;if(itemToCheck)if(itemToCheck[this.id]&&itemToCheck[this.id].isBack===true){this._restoreItem(itemToCheck);itemToCheck[this.id]["isBack"]=false;if(item==itemToCheck){var parent=this.getParentItem(item);
if(parent){this.delegate.onHistoryBack(this.delegate.cookiePrefix,item);this.activeItem=parent;this.updateGrid(parent);return}}}this.activeItem=item;if(item){if(this.grid.onStoreChange)this.grid.onStoreChange();this.delegate.onHistoryForward(this.delegate.cookiePrefix,item);this.nextFocusItem=null;this.updateGrid(item)}},setQueryEx:function(path){this.grid.setQuery({path:this.pathToRegex(path),directory:!this.allowFiles},this.getQueryOptions());var thiz=this;thiz.onGridRefreshed()},setQuery:function(path){var thiz=
this;thiz.setQueryEx(path)},onGridRefreshed:function(){var newRow=null;if(this.activeItem!=null){this._restoreItem(this.activeItem);newRow=this.addBackRow(this.activeItem)}var thiz=this;try{if(this.grid.focus&&this.nextFocusItemForceNode&&this.nextFocusItemForce)setTimeout(function(){thiz.focusItem(thiz.nextFocusItemForce,false);thiz.grid.focus(thiz.nextFocusItemForceNode);thiz.focusItem(thiz.nextFocusItemForce,false);thiz.nextFocusItemForceNode=null;thiz.nextFocusItemForce=null},400);else if(this.autoFocus)if(this.nextFocusItem)this.focusItem(this.nextFocusItem,
false);else if(this.grid.focus&&newRow)this.grid.focus(newRow)}catch(e){console.error("onGridFreshed::focus : went wrong!")}var thiz=this;setTimeout(function(){thiz.publish(types.EVENTS.IMAGE_LOADED,{})},100);this.grid.resize()},addBackRow:function(item){if(!item){console.error("addback : hae no item");return}if(item.path&&item.path==".")return;var element=this.grid.contentNode;var firstRow=this.grid.contentNode.children[1];this._restoreItem(item);item[this.id]["isBack"]=true;item[this.id]["prevName"]=
item.name;item.prevName=""+item.name;item.name="..";var newRow=this.grid.newRow(item,element,firstRow,0,{parentId:item.path});if(newRow){var innerNode=utils.find(".dgrid-cell",newRow,true);if(innerNode){this.backItem=item;return innerNode}}return newRow},updateGrid:function(item,setPrev){if(item&&lang.isString(item))item=this.store.getItemByPath(null,item);if(item&&setPrev!==false){var parent=this.store.getParents(item,true);if(parent&&parent.length==1)this.prevItem=parent[0]}var thiz=this;var _updateGrid=
function(item){thiz.updateGrid(item,false);thiz.grid.resize()};if(!this.store.isItemLoaded)return;if(!this.store.isItemLoaded(item))this.store.loadItem({item:item,onItem:_updateGrid});else{if(this.delegate&&this.delegate.onItemLoaded)this.delegate.onItemLoaded();this.setQuery(this.store.getValue(item,"path"))}},doInitialQuery:function(url){var query={path:url||"."};var queryOptions={deep:true,ignoreCase:false,sort:[{attribute:"directory",descending:true,ignoreCase:false},{attribute:"name",descending:false,
ignoreCase:false}],storeOnly:true};this.store.query(query,queryOptions)},onSelected:function(rowIndex){var item=this.grid.getItem(rowIndex);if(item.directory)this.delegate.updateGrid(item)},onItemChanged:function(item,operation){this.grid.refresh();this.grid.setStore(this.store)},getActiveItem:function(){return this.activeItem},doQuery:function(url,single){var query={path:url||"."};var queryOptions={single:single||false,deep:true,ignoreCase:false,sort:[{attribute:"directory",descending:true,ignoreCase:false},
{attribute:"name",descending:false,ignoreCase:false}],storeOnly:true};return this.store.query(query,queryOptions)},onKeyEvent:function(evt){if(this.keyboardDelegate)this.keyboardDelegate.onGridKey(evt)},onMouseEvent:function(evt){if(this.mouseDelegate)this.mouseDelegate.onGridMouse(evt)},onMouseDoubleClickEvent:function(evt){if(this.mouseDelegate)this.mouseDelegate.onGridMouseDouble(evt)},onClose:function(){this.delegate.gridView=null;this.inherited(arguments);var parent=dijit.byId("topTabs");if(parent)parent.removeChild(this)},
getCurrentSelection:function(viaCSS){if(viaCSS===true){var res=[];var rows=utils.find(".dgrid-selected",this.grid.domNode,false);for(var i=0;i<rows.length;i++){var row=this.grid.row(rows[i]);if(row!=null&&row.data!=null&&row.data.name!=null&&row.data.name!="."&&row.data.name!="..")res.push(row.data)}if(res.length>0)return res;else return null}return this.selectedItems},onGridFilesSelected:function(items,node){this.selectedItems=[];for(var i=0;i<items.length;i++){var item=items[i];if(i==0){this.lastSelectedItem=
item.data;this.lastSelectedItemNode=item.element}var itemData=item.data;if(item&&itemData){if(item.data=="..")continue;this.selectedItems.push(itemData)}}},onGridFileSelected:function(item,node){this.lastSelectedItem=item;this.lastSelectedItemNode=node;this.selectedItem=item;this.selectedItems=null;this.activeItem=item;var struct={store:this.store,item:item};this.publish(types.EVENTS.ITEM_SELECTED,struct,this);var innerNode=utils.find(".dgrid-cell",node,true);if(innerNode){this.focusedChildNode=innerNode;
this.focusedChildNode["data"]=item}if(item&&item.path);if(this.delegate.onItemSelected)this.delegate.onItemSelected(item);if(this.lastSelectedRowItem!=null&&item==this.lastSelectedRowItem&&this.delegate.onFileClicked)this.delegate.onFileClicked(item);if(node)node.focus();var struct={store:this.store,panel:this.delegate};this.publish(types.EVENTS.ON_SHOW_PANEL,struct,this.delegate)},beforeStoreChange:function(data){var restoreItem=this.getRestoreItem();if(restoreItem)this.restoreItem=restoreItem;if(data&&
data.operation)switch(data.operation){case types.OPERATION.COPY:if(this.lastSelectedItem&&this.lastSelectedItemNode){this.nextFocusItemForce=this.lastSelectedItem;this.nextFocusItemForceNode=this.lastSelectedItemNode}break;case types.OPERATION.DELETE:var nextFocusItem=this.findRestoreFocusItem();if(nextFocusItem&&nextFocusItem.data){this.nextFocusItemForce=nextFocusItem.data;this.nextFocusItemForceNode=nextFocusItem}break}},onResize:function(){this.grid.resize()},storeRefreshed:function(data){var thiz=
this;thiz._restoreItem(thiz.activeItem);thiz._restoreItem(thiz.backItem);thiz.backItem=null;thiz.activeItem=null;thiz.isStoreRefresh=true;thiz.openItem(thiz.restoreItem)},startup:function(){if(this.didLoad)return;this.inherited(arguments);this.didLoad=true;factory.subscribe(types.EVENTS.STORE_REFRESHED,this.storeRefreshed,this);factory.subscribe(types.EVENTS.BEFORE_STORE_CHANGE,this.beforeStoreChange,this);factory.subscribe(types.EVENTS.RESIZE,this.onResize,this)}})})},"dijit/form/_ListMouseMixin":function(){define("dijit/form/_ListMouseMixin",
["dojo/_base/declare","dojo/on","dojo/touch","./_ListBase"],function(declare,on,touch,_ListBase){return declare("dijit.form._ListMouseMixin",_ListBase,{postCreate:function(){this.inherited(arguments);this.domNode.dojoClick=true;this.own(on(this.domNode,"mousedown",function(evt){evt.preventDefault()}));this._listConnect("click","_onClick");this._listConnect(touch.press,"_onMouseDown");this._listConnect(touch.release,"_onMouseUp");this._listConnect(touch.over,"_onMouseOver");this._listConnect(touch.out,
"_onMouseOut")},_onClick:function(evt,target){this._setSelectedAttr(target);if(this._deferredClick)this._deferredClick.remove();this._deferredClick=this.defer(function(){this._deferredClick=null;this.onClick(target)})},_onMouseDown:function(evt,target){if(this._hoveredNode){this.onUnhover(this._hoveredNode);this._hoveredNode=null}this._isDragging=true;this._setSelectedAttr(target)},_onMouseUp:function(evt,target){this._isDragging=false;var selectedNode=this.selected;var hoveredNode=this._hoveredNode;
if(selectedNode&&target==selectedNode)this.defer(function(){this._onClick(evt,selectedNode)});else if(hoveredNode)this.defer(function(){this._onClick(evt,hoveredNode)})},_onMouseOut:function(evt,target){if(this._hoveredNode){this.onUnhover(this._hoveredNode);this._hoveredNode=null}if(this._isDragging)this._cancelDrag=(new Date).getTime()+1E3},_onMouseOver:function(evt,target){if(this._cancelDrag){var time=(new Date).getTime();if(time>this._cancelDrag)this._isDragging=false;this._cancelDrag=null}this._hoveredNode=
target;this.onHover(target);if(this._isDragging)this._setSelectedAttr(target)}})})},"dojo/errors/RequestTimeoutError":function(){define("dojo/errors/RequestTimeoutError",["./create","./RequestError"],function(create,RequestError){return create("RequestTimeoutError",null,RequestError,{dojoType:"timeout"})})},"dojox/mobile/_maskUtils":function(){define("dojox/mobile/_maskUtils",["dojo/_base/window","dojo/dom-style","./sniff"],function(win,domStyle,has){var cache={};return{createRoundMask:function(node,
x,y,r,b,w,h,rx,ry,e){var tw=x+w+r;var th=y+h+b;if(has("webkit")&&win&&win.doc&&win.doc.getCSSCanvasContext!=null){var id=("DojoMobileMask"+x+y+w+h+rx+ry).replace(/\./g,"_");if(!cache[id]){cache[id]=1;var ctx=win.doc.getCSSCanvasContext("2d",id,tw,th);ctx.beginPath();if(rx==ry)if(rx==2&&w==5){ctx.fillStyle="rgba(0,0,0,0.5)";ctx.fillRect(1,0,3,2);ctx.fillRect(0,1,5,1);ctx.fillRect(0,h-2,5,1);ctx.fillRect(1,h-1,3,2);ctx.fillStyle="rgb(0,0,0)";ctx.fillRect(0,2,5,h-4)}else if(rx==2&&h==5){ctx.fillStyle=
"rgba(0,0,0,0.5)";ctx.fillRect(0,1,2,3);ctx.fillRect(1,0,1,5);ctx.fillRect(w-2,0,1,5);ctx.fillRect(w-1,1,2,3);ctx.fillStyle="rgb(0,0,0)";ctx.fillRect(2,0,w-4,5)}else{ctx.fillStyle="#000000";ctx.moveTo(x+rx,y);ctx.arcTo(x,y,x,y+rx,rx);ctx.lineTo(x,y+h-rx);ctx.arcTo(x,y+h,x+rx,y+h,rx);ctx.lineTo(x+w-rx,y+h);ctx.arcTo(x+w,y+h,x+w,y+rx,rx);ctx.lineTo(x+w,y+rx);ctx.arcTo(x+w,y,x+w-rx,y,rx)}else{var pi=Math.PI;ctx.scale(1,ry/rx);ctx.moveTo(x+rx,y);ctx.arc(x+rx,y+rx,rx,1.5*pi,0.5*pi,true);ctx.lineTo(x+w-
rx,y+2*rx);ctx.arc(x+w-rx,y+rx,rx,0.5*pi,1.5*pi,true)}ctx.closePath();ctx.fill()}node.style.webkitMaskImage="-webkit-canvas("+id+")"}else if(has("svg")){if(node._svgMask)node.removeChild(node._svgMask);var bg=null;for(var p=node.parentNode;p;p=p.parentNode){bg=domStyle.getComputedStyle(p).backgroundColor;if(bg&&bg!="transparent"&&!bg.match(/rgba\(.*,\s*0\s*\)/))break}var svgNS="http://www.w3.org/2000/svg";var svg=win.doc.createElementNS(svgNS,"svg");svg.setAttribute("width",tw);svg.setAttribute("height",
th);svg.style.position="absolute";svg.style.pointerEvents="none";svg.style.opacity="1";svg.style.zIndex="2147483647";var path=win.doc.createElementNS(svgNS,"path");e=e||0;rx+=e;ry+=e;var d=" M"+(x+rx-e)+","+(y-e)+" a"+rx+","+ry+" 0 0,0 "+-rx+","+ry+" v"+-ry+" h"+rx+" Z"+" M"+(x-e)+","+(y+h-ry+e)+" a"+rx+","+ry+" 0 0,0 "+rx+","+ry+" h"+-rx+" v"+-ry+" z"+" M"+(x+w-rx+e)+","+(y+h+e)+" a"+rx+","+ry+" 0 0,0 "+rx+","+-ry+" v"+ry+" h"+-rx+" z"+" M"+(x+w+e)+","+(y+ry-e)+" a"+rx+","+ry+" 0 0,0 "+-rx+","+-ry+
" h"+rx+" v"+ry+" z";if(y>0)d+=" M0,0 h"+tw+" v"+y+" h"+-tw+" z";if(b>0)d+=" M0,"+(y+h)+" h"+tw+" v"+b+" h"+-tw+" z";path.setAttribute("d",d);path.setAttribute("fill",bg);path.setAttribute("stroke",bg);path.style.opacity="1";svg.appendChild(path);node._svgMask=svg;node.appendChild(svg)}}}})},"xide/widgets/ActionToolbarMixin":function(){define(["dojo/_base/declare","dojo/_base/lang","dojo/dom-class","xide/types","xide/factory","xide/widgets/ActionToolbarButton","xide/utils","dojo/i18n","dojo/i18n!./nls/TemplatedWidgetBase"],
function(declare,lang,domClass,types,factory,ActionToolbarButton,utils){return declare("xide.widgets.ActionToolbarMixin",null,{config:null,useElusive:true,editSelector:null,currentItem:null,owner:null,getCurrentItem:function(){return this.currentItem},translate:function(value){if(this._messages==null||this._messages.length==0)this._setupTranslations();if(value){var _titleKey=value.toLocaleLowerCase();_titleKey=_titleKey.replace(/\s+/g,"_");if(_titleKey&&this._messages!=null){var _titleValue=this._messages[_titleKey];
if(_titleValue&&_titleValue.length>0)return _titleValue}}return value||""},_setupTranslations:function(){var dstCtx=this.ctx;if(dstCtx&&dstCtx.getLocals)this._messages=dstCtx.getLocals("xide.widgets","TemplatedWidgetBase");else this._messages=[]},postMixInProperties:function(){this.inherited(arguments);this._setupTranslations()},toTitle:function(operation){switch(operation){case types.OPERATION.DELETE:return this.translate("Delete");case types.OPERATION.EDIT:return this.translate("Edit");case types.OPERATION.RENAME:return this.translate("Rename");
case types.OPERATION.COPY:return this.translate("Copy");case types.OPERATION.MOVE:return this.translate("Move");case types.OPERATION.DOWNLOAD:return this.translate("Download");case types.OPERATION.INFO:return this.translate("Info");case types.OPERATION.COMPRESS:return this.translate("Compress");case types.OPERATION.RELOAD:return this.translate("Reload");case types.OPERATION.PREVIEW:return this.translate("Preview");case types.OPERATION.INSERT_IMAGE:return this.translate("Insert");case types.OPERATION.OPTIONS:return this.translate("Options");
case types.OPERATION.PERMA_LINK:return this.translate("Perma Link")}return"No Title"},toIconClassElusive:function(operation){switch(operation){case types.OPERATION.DELETE:return"el-icon-remove-circle";case types.OPERATION.EDIT:return"el-icon-file-edit";case types.OPERATION.RENAME:return"el-icon-edit";case types.OPERATION.COPY:return"el-icon-random";case types.OPERATION.MOVE:return"el-icon-move";case types.OPERATION.DOWNLOAD:return"el-icon-download";case types.OPERATION.INFO:return"el-icon-info-sign";
case types.OPERATION.COMPRESS:return"el-icon-briefcase";case types.OPERATION.RELOAD:return"el-icon-refresh";case types.OPERATION.PREVIEW:return"icon-32-preview-content";case types.OPERATION.INSERT_IMAGE:return"icon-32-insert-image";case types.OPERATION.OPTIONS:return"el-icon-cogs";case types.OPERATION.PERMA_LINK:return"el-icon-link"}},toIconClass:function(operation){if(this.useElusive)return this.toIconClassElusive(operation);switch(operation){case types.OPERATION.DELETE:return"icon-32-remove";case types.OPERATION.EDIT:return"icon-32-edit";
case types.OPERATION.RENAME:return"icon-32-edit";case types.OPERATION.COPY:return"icon-32-copy";case types.OPERATION.MOVE:return"icon-32-move";case types.OPERATION.DOWNLOAD:return"icon-32-download";case types.OPERATION.INFO:return"icon-32-info";case types.OPERATION.COMPRESS:return"icon-32-compress";case types.OPERATION.RELOAD:return"icon-32-reload";case types.OPERATION.PREVIEW:return"icon-32-preview-content";case types.OPERATION.INSERT_IMAGE:return"icon-32-insert-image"}},onButtonClicked:function(button){if(this.delegate&&
this.delegate.onActionButton)this.delegate.onActionButton(button,button.item,button.operation,button.owner)},removeEditorsSelector:function(){if(!this.editSelector)return this.getButton(types.OPERATION.EDIT);var item,owner=null;var oldEditButton=this.getButton(types.OPERATION.EDIT);item=oldEditButton.item;owner=oldEditButton.owner;this.buttons.remove(oldEditButton);var newEditButton=this._createButton(types.OPERATION.EDIT,null,null,true);newEditButton.item=item;newEditButton.owner=owner;dojo.place(newEditButton.domNode,
this.editSelector.domNode,"after");utils.destroyWidget(this.editSelector);this.editSelector=null;return newEditButton},prepareEditorsSelector:function(editButton,editors){var editSelector=new EditorSelector({delegate:this,editors:editors},dojo.doc.createElement("div"));dojo.place(editSelector.domNode,editButton.domNode,"after");editSelector.startup();var newEditButton=editSelector.createMenuItem("el-icon-file-edit","Open",types.OPERATION.EDIT);this.buttons.remove(editButton);this.editSelector=editSelector;
return editSelector},onFileSelected:function(data){var editors=EditorPluginMixin.getEditors(data);var btnEdit=this.getButton(types.OPERATION.EDIT);if(btnEdit){if(editors){if(btnEdit instanceof dijit.MenuItem)btnEdit=this.removeEditorsSelector();if(btnEdit instanceof xfile.widgets.ActionToolbarButton){var newEditMenu=this.prepareEditorsSelector(btnEdit,editors);utils.destroyWidget(btnEdit)}}else btnEdit=this.removeEditorsSelector(btnEdit);if(this.editSelector)this.editSelector.wButton.set("disabled",
false);btnEdit.setDisabled(false)}else;var btnEdit=this.getButton(types.OPERATION.INSERT_IMAGE);if(btnEdit)btnEdit.setDisabled(false)},onCommonsSelected:function(data){var disable=false;if(data.read===false&&data.write===false)disable=true;var btnRename=this.getButton(types.OPERATION.RENAME);if(btnRename)btnRename.setDisabled(disable);var btnDownload=this.getButton(types.OPERATION.DOWNLOAD);if(btnDownload)btnDownload.setDisabled(disable);var btnCopy=this.getButton(types.OPERATION.COPY);if(btnCopy)btnCopy.setDisabled(disable);
var btnMove=this.getButton(types.OPERATION.MOVE);if(btnMove)btnMove.setDisabled(disable);var btnProp=this.getButton(types.OPERATION.INFO);if(btnProp)btnProp.setDisabled(disable);var btnDelete=this.getButton(types.OPERATION.DELETE);if(btnDelete)btnDelete.setDisabled(disable);var btncompress=this.getButton(types.OPERATION.COMPRESS);if(btncompress)btncompress.setDisabled(disable);var btnReload=this.getButton(types.OPERATION.RELOAD);if(btnReload)btnReload.setDisabled(disable);var btnNewFile=this.getButton(types.OPERATION.NEW_FILE);
if(btnNewFile)btnNewFile.setDisabled(disable);var btnNewDir=this.getButton(types.OPERATION.NEW_DIRECTORY);if(btnNewDir)btnNewDir.setDisabled(disable);var btnPerma=this.getButton(types.OPERATION.PERMA_LINK);if(btnPerma)btnPerma.setDisabled(false)},clearStates:function(item,owner){return;for(var i=0;i<this.buttons.length;i++)try{this.buttons[i].item=item;this.buttons[i].owner=owner;if(this.buttons[i].operation===types.OPERATION.CUSTOM);else this.buttons[i].setDisabled(true)}catch(e){}},onDirectorySelected:function(data){if(this.editSelector)this.editSelector.wButton.set("disabled",
true)},onItemSelected:function(data){try{if(data&&data.item){var item=data.item;this.clearStates(item,data.caller);if(item.name=="."||item.name==".."){var btnNewFile=this.getButton(types.OPERATION.NEW_FILE);if(btnNewFile)btnNewFile.setDisabled(false);var btnNewDir=this.getButton(types.OPERATION.NEW_DIRECTORY);if(btnNewDir)btnNewDir.setDisabled(false);return}this.onCommonsSelected(item);if(item.directory!=null&&item.directory===true)this.onDirectorySelected(item);else this.onFileSelected(item)}}catch(e){}},
getButton:function(operation){for(var i=0;i<this.buttons.length;i++)if(this.buttons[i].operation==operation)return this.buttons[i];return null},_createDefaultItems:function(){this.config={};if(!this.buttons)this.buttons=[];var allowedActions=this.config.ALLOWED_ACTIONS||{1:true,2:true,3:true,4:true,5:true,6:true,7:true,8:true,9:true,10:true,11:true,12:true,13:true,14:true,15:true,16:true,17:true};var defaultState=false;var opsInt=types.OPERATION_INT;if(allowedActions[opsInt.RELOAD])var reloadButton=
this._createButton(types.OPERATION.RELOAD,null,null,defaultState);if(allowedActions[opsInt.DELETE])var deleteButton=this._createButton(types.OPERATION.DELETE,null,null,defaultState);if(allowedActions[opsInt.COMPRESS])var compressButton=this._createButton(types.OPERATION.COMPRESS,null,null,defaultState);if(allowedActions[opsInt.DOWNLOAD])var downloadButton=this._createButton(types.OPERATION.DOWNLOAD,null,null,defaultState);if(allowedActions[opsInt.INFO])var infoButton=this._createButton(types.OPERATION.INFO,
null,null,defaultState);if(allowedActions[opsInt.RENAME])var renameButton=this._createButton(types.OPERATION.RENAME,null,null,defaultState);if(allowedActions[opsInt.MOVE])var moveButton=this._createButton(types.OPERATION.MOVE,null,null,true);if(allowedActions[opsInt.COPY])var copyButton=this._createButton(types.OPERATION.COPY,null,null,true);if(allowedActions[opsInt.EDIT])var editButton=this._createButton(types.OPERATION.EDIT,null,null,true);return allowedActions},_createButton:function(operation,
item,clickcb,disabled){var iconClass=this.toIconClass(operation);var title=this.toTitle(operation);if(iconClass&&title){var button=new ActionToolbarButton({title:title,iconClass:iconClass,operation:operation,item:item,disabled:disabled},dojo.doc.createElement("div"));this.parentContainer.appendChild(button.domNode);dojo.place(button.domNode,this.parentContainer,"first");button.startup();this.buttons.push(button);var thiz=this;button.domNode.onclick=function(){thiz.onButtonClicked(button)};if(this.useElusive){domClass.remove(button.iconNode,
"dijitReset");domClass.add(button.iconNode,"actionToolbarButtonElusive")}return button}},_createButtonEx:function(command,title,iconClass,item,clickcb,disabled,owner,place,emit,style,label,extraClass){if(iconClass&&title){var button=new ActionToolbarButton({title:title,iconClass:iconClass,operation:command,item:item,disabled:disabled,style:style!=null?style:"float:right;",label:label||""},dojo.doc.createElement("div"));this.containerNode.appendChild(button.domNode);if(place!==null)dojo.place(button.domNode,
this.containerNode,place);button.startup();this.buttons.push(button);var thiz=this;if(label!=null&&label.length>0){button.showLabel=true;button.set("label",label)}if(clickcb)button.domNode.onclick=function(evt){evt.preventDefault();if(owner!=null)clickcb(command,item,owner);else clickcb(command,item,owner)};if(extraClass)domClass.add(button.domNode,extraClass);if(this.useElusive){domClass.remove(button.iconNode,"dijitReset");domClass.add(button.iconNode,"actionToolbarButtonElusive")}return button}},
onViewChanged:function(){},clear:function(){for(var i in this.buttons){var button=this.buttons[i];utils.destroyWidget(button)}this.buttons=[]},addActions:function(actions,owner,items){this.owner=owner;for(var i=0;i<actions.length;i++){var action=actions[i];if(action.domNode){this.containerNode.appendChild(action.domNode);if(action.place!==null)dojo.place(action.domNode,this.containerNode,action.place);this.buttons.push(action)}else{var newEditButton=this._createButtonEx(action["command"],action["title"],
action["icon"],items,action["handler"],action["disabled"]||false,owner,action["place"],action["emit"],action["style"],action["label"],action["extraClass"]);if(action["elusive"]===true)domClass.remove(newEditButton.iconNode,"dijitReset")}}},startup:function(){var thiz=this;this.inherited(arguments);this.buttons=[];this.editors=[];this.currentItem={};factory.subscribe(types.EVENTS.ON_VIEW_SHOW,this.onViewChanged,this)}})})},"url:dijit/templates/InlineEditBox.html":'\x3cspan data-dojo-attach-point\x3d"editNode" role\x3d"presentation" class\x3d"dijitReset dijitInline dijitOffScreen"\n\t\x3e\x3cspan data-dojo-attach-point\x3d"editorPlaceholder"\x3e\x3c/span\n\t\x3e\x3cspan data-dojo-attach-point\x3d"buttonContainer"\n\t\t\x3e\x3cbutton data-dojo-type\x3d"./form/Button" data-dojo-props\x3d"label: \'${buttonSave}\', \'class\': \'saveButton\'"\n\t\t\tdata-dojo-attach-point\x3d"saveButton" data-dojo-attach-event\x3d"onClick:save"\x3e\x3c/button\n\t\t\x3e\x3cbutton data-dojo-type\x3d"./form/Button"  data-dojo-props\x3d"label: \'${buttonCancel}\', \'class\': \'cancelButton\'"\n\t\t\tdata-dojo-attach-point\x3d"cancelButton" data-dojo-attach-event\x3d"onClick:cancel"\x3e\x3c/button\n\t\x3e\x3c/span\n\x3e\x3c/span\x3e\n',
"xide/views/BeanView":function(){define(["dojo/_base/declare","xide/layout/ContentPane","xide/mixins/ItemActionMixin"],function(declare,ContentPane,ItemActionMixin){return declare([ContentPane,ItemActionMixin],{delegate:null,cssClass:"layoutContainer",singleton:false,owner:null,getItemActions:function(){if(this.delegate)return this.delegate.getItemActions?this.delegate.getItemActions():null;return null},onResize:function(){},startup:function(){this.inherited(arguments);var thiz=this;this.on("click",
function(){if(thiz.onItemClear)thiz.onItemClear();if(thiz.onItemClick)thiz.onItemClick(null)})}})})},"dojox/mobile/_base":function(){define("dojox/mobile/_base",["./common","./View","./Heading","./RoundRect","./RoundRectCategory","./EdgeToEdgeCategory","./RoundRectList","./EdgeToEdgeList","./ListItem","./Container","./Pane","./Switch","./ToolBarButton","./ProgressIndicator"],function(common,View,Heading,RoundRect,RoundRectCategory,EdgeToEdgeCategory,RoundRectList,EdgeToEdgeList,ListItem,Switch,ToolBarButton,
ProgressIndicator){return common})},"url:dijit/layout/templates/_ScrollingTabControllerButton.html":'\x3cdiv data-dojo-attach-event\x3d"ondijitclick:_onClick" class\x3d"dijitTabInnerDiv dijitTabContent dijitButtonContents"  data-dojo-attach-point\x3d"focusNode" role\x3d"button"\x3e\n\t\x3cspan role\x3d"presentation" class\x3d"dijitInline dijitTabStripIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\x3e\n\t\x3cspan data-dojo-attach-point\x3d"containerNode,titleNode" class\x3d"dijitButtonText"\x3e\x3c/span\x3e\n\x3c/div\x3e',
"dojo/request/xhr":function(){define("dojo/request/xhr",["../errors/RequestError","./watch","./handlers","./util","../has"],function(RequestError,watch,handlers,util,has){has.add("native-xhr",function(){return typeof XMLHttpRequest!=="undefined"});has.add("dojo-force-activex-xhr",function(){return has("activex")&&!document.addEventListener&&window.location.protocol==="file:"});has.add("native-xhr2",function(){if(!has("native-xhr"))return;var x=new XMLHttpRequest;return typeof x["addEventListener"]!==
"undefined"&&(typeof opera==="undefined"||typeof x["upload"]!=="undefined")});has.add("native-formdata",function(){return typeof FormData==="function"});function handleResponse(response,error){var _xhr=response.xhr;response.status=response.xhr.status;response.text=_xhr.responseText;if(response.options.handleAs==="xml")response.data=_xhr.responseXML;if(!error)try{handlers(response)}catch(e){error=e}if(error)this.reject(error);else if(util.checkStatus(_xhr.status))this.resolve(response);else{error=
new RequestError("Unable to load "+response.url+" status: "+_xhr.status,response);this.reject(error)}}var isValid,isReady,addListeners,cancel;if(has("native-xhr2")){isValid=function(response){return!this.isFulfilled()};cancel=function(dfd,response){response.xhr.abort()};addListeners=function(_xhr,dfd,response){function onLoad(evt){dfd.handleResponse(response)}function onError(evt){var _xhr=evt.target;var error=new RequestError("Unable to load "+response.url+" status: "+_xhr.status,response);dfd.handleResponse(response,
error)}function onProgress(evt){if(evt.lengthComputable){response.loaded=evt.loaded;response.total=evt.total;dfd.progress(response)}}_xhr.addEventListener("load",onLoad,false);_xhr.addEventListener("error",onError,false);_xhr.addEventListener("progress",onProgress,false);return function(){_xhr.removeEventListener("load",onLoad,false);_xhr.removeEventListener("error",onError,false);_xhr.removeEventListener("progress",onProgress,false);_xhr=null}}}else{isValid=function(response){return response.xhr.readyState};
isReady=function(response){return 4===response.xhr.readyState};cancel=function(dfd,response){var xhr=response.xhr;var _at=typeof xhr.abort;if(_at==="function"||_at==="object"||_at==="unknown")xhr.abort()}}function getHeader(headerName){return this.xhr.getResponseHeader(headerName)}var undefined,defaultOptions={data:null,query:null,sync:false,method:"GET"};function xhr(url,options,returnDeferred){var response=util.parseArgs(url,util.deepCreate(defaultOptions,options),has("native-formdata")&&options&&
options.data&&options.data instanceof FormData);url=response.url;options=response.options;var remover,last=function(){remover&&remover()};var dfd=util.deferred(response,cancel,isValid,isReady,handleResponse,last);var _xhr=response.xhr=xhr._create();if(!_xhr){dfd.cancel(new RequestError("XHR was not created"));return returnDeferred?dfd:dfd.promise}response.getHeader=getHeader;if(addListeners)remover=addListeners(_xhr,dfd,response);var data=options.data,async=!options.sync,method=options.method;try{_xhr.open(method,
url,async,options.user||undefined,options.password||undefined);if(options.withCredentials)_xhr.withCredentials=options.withCredentials;var headers=options.headers,contentType="application/x-www-form-urlencoded";if(headers)for(var hdr in headers)if(hdr.toLowerCase()==="content-type")contentType=headers[hdr];else if(headers[hdr])_xhr.setRequestHeader(hdr,headers[hdr]);if(contentType&&contentType!==false)_xhr.setRequestHeader("Content-Type",contentType);if(!headers||!("X-Requested-With"in headers))_xhr.setRequestHeader("X-Requested-With",
"XMLHttpRequest");if(util.notify)util.notify.emit("send",response,dfd.promise.cancel);_xhr.send(data)}catch(e){dfd.reject(e)}watch(dfd);_xhr=null;return returnDeferred?dfd:dfd.promise}xhr._create=function(){throw new Error("XMLHTTP not available");};if(has("native-xhr")&&!has("dojo-force-activex-xhr"))xhr._create=function(){return new XMLHttpRequest};else if(has("activex"))try{new ActiveXObject("Msxml2.XMLHTTP");xhr._create=function(){return new ActiveXObject("Msxml2.XMLHTTP")}}catch(e){try{new ActiveXObject("Microsoft.XMLHTTP");
xhr._create=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}catch(e){}}util.addCommonMethods(xhr);return xhr})},"xfile/widgets/ProgressItem":function(){define("xfile/widgets/ProgressItem",["dojo/_base/declare","dojo/dom-construct","xide/widgets/TemplatedWidgetBase","xide/widgets/_CSSMixin","xide/utils","xide/types","dojo/dom-class","dojo/dom-geometry","xide/factory"],function(declare,domConstruct,TemplatedWidgetBase,CSSMixin,utils,types,domClass,domGeometry,factory){return declare("xfile.widgets.ProgressItem",
[TemplatedWidgetBase,CSSMixin],{baseClass:"fileActionProgress actionMessage",backgroundClass:"imageBackground",tag:"div",root:null,templateString:"\x3cdiv\x3e\x3cdiv data-dojo-attach-point\x3d'spinner' class\x3d'fileActionSpinner'\x3e\x3c/div\x3e\x3cspan class\x3d'fileActionProgressLabel'\x3e${!message}\x3c/span\x3e\x3cspan class\x3d'fileActionProgressLabel' data-dojo-attach-point\x3d'endMessage'\x3e\x3c/span\x3e\x3cdiv data-dojo-attach-point\x3d'root' class\x3d'fileActionItem'\x3e\x3c/div\x3e\x3c/div\x3e",
item:null,spinner:null,endMessage:null,message:"",terminatorItem:null,topics:null,autoDestroy:false,terminatorMessage:null,destroy:function(){dojo.forEach(this.topics,dojo.unsubscribe)},onFinish:function(data){utils.destroyWidget(this.spinner);this.endMessage.innerHTML=": "+this.translate("done");var thiz=this;if(this.autoDestroy)setTimeout(function(){utils.destroyWidget(thiz)},5E3)},onEnd:function(data){if(data&&data&&data.terminatorItem)if(data.terminatorItem==this.terminatorItem)this.onFinish()},
startup:function(){this.inherited(arguments);var thiz=this;if(this.terminatorMessage)this.topics=[factory.subscribe(this.terminatorMessage,this.onEnd,this)]}})})},"xfile/views/ToggleSplitter":function(){define("xfile/views/ToggleSplitter",["dojo","dijit","dijit/layout/BorderContainer","xapp/factory/Events","xide/types","xide/mixins/EventedMixin"],function(dojo,dijit,BorderContainer,eventFactory,types,EventedMixin){var ToggleSplitter=dojo.declare("xfile.views.ToggleSplitter",[dijit.layout._Splitter,
EventedMixin],{container:null,child:null,region:null,state:"full",_closedSize:"0",delegate:null,baseClass:"dojoxToggleSplitter",templateString:'\x3cdiv class\x3d"dijitSplitter dojoxToggleSplitter" dojoAttachEvent\x3d"onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse"\x3e'+'\x3cdiv dojoAttachPoint\x3d"toggleNode" class\x3d"dijitSplitterThumb dojoxToggleSplitterIcon" tabIndex\x3d"0" role\x3d"separator" '+'dojoAttachEvent\x3d"onmousedown:_onToggleNodeMouseDown,onclick:_toggle,onmouseenter:_onToggleNodeMouseMove,onmouseleave:_onToggleNodeMouseMove,onfocus:_onToggleNodeMouseMove,onblur:_onToggleNodeMouseMove"\x3e'+
'\x3cspan class\x3d"dojoxToggleSplitterA11y" dojoAttachPoint\x3d"a11yText"\x3e\x3c/span\x3e\x3c/div\x3e'+"\x3c/div\x3e",postMixInProperties:function(){this.inherited(arguments);if(this.container&&this.container.cookieName)this._cookieName=this.container.cookieName+"_"+this.region},postCreate:function(){this.inherited(arguments);var region=this.region;dojo.addClass(this.domNode,this.baseClass+region.charAt(0).toUpperCase()+region.substring(1))},startup:function(){this.inherited(arguments);var parentPane=
this.child,paneNode=this.child.domNode,intPaneSize=dojo.style(paneNode,this.horizontal?"height":"width");this.domNode.setAttribute("aria-controls",paneNode.id);dojo.forEach(["toggleSplitterState","toggleSplitterFullSize","toggleSplitterCollapsedSize"],function(name){var pname=name.substring("toggleSplitter".length);pname=pname.charAt(0).toLowerCase()+pname.substring(1);if(name in this.child)this[pname]=this.child[name]},this);if(!this.fullSize)this.fullSize=this.state=="full"?intPaneSize+"px":"75px";
this._openStyleProps=this._getStyleProps(paneNode,"full");this._started=true;this.set("state",this.state);return this},_onKeyPress:function(evt){if(this.state=="full")this.inherited(arguments);if(evt.charCode==dojo.keys.SPACE||evt.keyCode==dojo.keys.ENTER)this._toggle(evt)},_onToggleNodeMouseDown:function(evt){dojo.stopEvent(evt);this.toggleNode.focus()},_startDrag:function(e){if(this.state=="full")this.inherited(arguments)},_stopDrag:function(e){this.inherited(arguments);this.toggleNode.blur();this.publish(types.EVENTS.RESIZE,
{},this)},_toggleEx:function(evt,state){var state;switch(this.state){case "full":state=this.collapsedSize?"collapsed":"closed";break;case "collapsed":state="closed";break;default:state="full"}this.set("state",state);var thiz=this;setTimeout(function(){if(thiz.delegate&&thiz.delegate.onChangeToggleSplitterState)thiz.delegate.onChangeToggleSplitterState(thiz,state)},100)},_toggle:function(evt){try{this._toggleEx(evt)}catch(e){}this.publish(types.EVENTS.RESIZE,{},this)},_onToggleNodeMouseMove:function(evt){var baseClass=
this.baseClass,toggleNode=this.toggleNode,on=this.state=="full"||this.state=="collapsed",leave=evt.type=="mouseout"||evt.type=="blur";dojo.toggleClass(toggleNode,baseClass+"IconOpen",leave&&on);dojo.toggleClass(toggleNode,baseClass+"IconOpenHover",!leave&&on);dojo.toggleClass(toggleNode,baseClass+"IconClosed",leave&&!on);dojo.toggleClass(toggleNode,baseClass+"IconClosedHover",!leave&&!on)},_handleOnChange:function(preState){var paneNode=this.child.domNode,openProps,paneStyle,dim=this.horizontal?"height":
"width";if(this.state=="full"){var styleProps=dojo.mixin({display:"block",overflow:"auto",visibility:"visible"},this._openStyleProps);styleProps[dim]=this._openStyleProps&&this._openStyleProps[dim]?this._openStyleProps[dim]:this.fullSize;dojo.style(this.domNode,"cursor","");dojo.style(paneNode,styleProps)}else if(this.state=="collapsed"){paneStyle=dojo.getComputedStyle(paneNode);openProps=this._getStyleProps(paneNode,"full",paneStyle);this._openStyleProps=openProps;dojo.style(this.domNode,"cursor",
"auto");dojo.style(paneNode,dim,this.collapsedSize)}else{if(!this.collapsedSize){paneStyle=dojo.getComputedStyle(paneNode);openProps=this._getStyleProps(paneNode,"full",paneStyle);this._openStyleProps=openProps}var closedProps=this._getStyleProps(paneNode,"closed",paneStyle);dojo.style(this.domNode,"cursor","auto");dojo.style(paneNode,closedProps)}this._setStateClass();if(this.container._started)this.container._layoutChildren(this.region)},_getStyleProps:function(paneNode,state,paneStyle){if(!paneStyle)paneStyle=
dojo.getComputedStyle(paneNode);var styleProps={},dim=this.horizontal?"height":"width";styleProps["overflow"]=state!="closed"?paneStyle["overflow"]:"hidden";styleProps["visibility"]=state!="closed"?paneStyle["visibility"]:"hidden";styleProps[dim]=state!="closed"?paneNode.style[dim]||paneStyle[dim]:this._closedSize;var edgeNames=["Top","Right","Bottom","Left"];dojo.forEach(["padding","margin","border"],function(pname){for(var i=0;i<edgeNames.length;i++){var fullName=pname+edgeNames[i];if(pname=="border")fullName+=
"Width";if(undefined!==paneStyle[fullName])styleProps[fullName]=state!="closed"?paneStyle[fullName]:0}});return styleProps},_setStateClass:function(){var arrow="\x26#9652",region=this.region.toLowerCase(),baseClass=this.baseClass,toggleNode=this.toggleNode,on=this.state=="full"||this.state=="collapsed",focused=this.focused;dojo.toggleClass(toggleNode,baseClass+"IconOpen",on&&!focused);dojo.toggleClass(toggleNode,baseClass+"IconClosed",!on&&!focused);dojo.toggleClass(toggleNode,baseClass+"IconOpenHover",
on&&focused);dojo.toggleClass(toggleNode,baseClass+"IconClosedHover",!on&&focused);if(region=="top"&&on||region=="bottom"&&!on)arrow="\x26#9650";else if(region=="top"&&!on||region=="bottom"&&on)arrow="\x26#9660";else if(region=="right"&&on||region=="left"&&!on)arrow="\x26#9654";else if(region=="right"&&!on||region=="left"&&on)arrow="\x26#9664";this.a11yText.innerHTML=arrow},_setStateAttr:function(state){if(!this._started)return;var preState=this.state;this.state=state;this._handleOnChange(preState);
var evtName;switch(state){case "full":this.domNode.setAttribute("aria-expanded",true);evtName="onOpen";break;case "collapsed":this.domNode.setAttribute("aria-expanded",true);evtName="onCollapsed";break;default:this.domNode.setAttribute("aria-expanded",false);evtName="onClosed"}this[evtName](this.child)},onOpen:function(pane){},onCollapsed:function(pane){},onClosed:function(pane){}});dojo.extend(dijit._Widget,{toggleSplitterState:"full",toggleSplitterFullSize:"",toggleSplitterCollapsedSize:""});return ToggleSplitter})},
"dijit/_MenuBase":function(){define("dijit/_MenuBase",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/lang","dojo/mouse","dojo/on","dojo/window","./a11yclick","./registry","./_Widget","./_CssStateMixin","./_KeyNavContainer","./_TemplatedMixin"],function(array,declare,dom,domAttr,domClass,lang,mouse,on,winUtils,a11yclick,registry,_Widget,_CssStateMixin,_KeyNavContainer,_TemplatedMixin){return declare("dijit._MenuBase",[_Widget,_TemplatedMixin,_KeyNavContainer,
_CssStateMixin],{selected:null,_setSelectedAttr:function(item){if(this.selected!=item){if(this.selected){this.selected._setSelected(false);this._onChildDeselect(this.selected)}if(item)item._setSelected(true);this._set("selected",item)}},activated:false,_setActivatedAttr:function(val){domClass.toggle(this.domNode,"dijitMenuActive",val);domClass.toggle(this.domNode,"dijitMenuPassive",!val);this._set("activated",val)},parentMenu:null,popupDelay:500,passivePopupDelay:Infinity,autoFocus:false,childSelector:function(node){var widget=
registry.byNode(node);return node.parentNode==this.containerNode&&widget&&widget.focus},postCreate:function(){var self=this,matches=typeof this.childSelector=="string"?this.childSelector:lang.hitch(this,"childSelector");this.own(on(this.containerNode,on.selector(matches,mouse.enter),function(){self.onItemHover(registry.byNode(this))}),on(this.containerNode,on.selector(matches,mouse.leave),function(){self.onItemUnhover(registry.byNode(this))}),on(this.containerNode,on.selector(matches,a11yclick),function(evt){self.onItemClick(registry.byNode(this),
evt);evt.stopPropagation();evt.preventDefault()}));this.inherited(arguments)},onKeyboardSearch:function(item,evt,searchString,numMatches){this.inherited(arguments);if(!!item&&(numMatches==-1||!!item.popup&&numMatches==1))this.onItemClick(item,evt)},_keyboardSearchCompare:function(item,searchString){if(!!item.shortcutKey)return searchString==item.shortcutKey.toLowerCase()?-1:0;return this.inherited(arguments)?1:0},onExecute:function(){},onCancel:function(){},_moveToPopup:function(evt){if(this.focusedChild&&
this.focusedChild.popup&&!this.focusedChild.disabled)this.onItemClick(this.focusedChild,evt);else{var topMenu=this._getTopMenu();if(topMenu&&topMenu._isMenuBar)topMenu.focusNext()}},_onPopupHover:function(){this.set("selected",this.currentPopupItem);this._stopPendingCloseTimer()},onItemHover:function(item){if(this.activated){this.set("selected",item);if(item.popup&&!item.disabled&&!this.hover_timer)this.hover_timer=this.defer(function(){this._openItemPopup(item)},this.popupDelay)}else if(this.passivePopupDelay<
Infinity){if(this.passive_hover_timer)this.passive_hover_timer.remove();this.passive_hover_timer=this.defer(function(){this.onItemClick(item,{type:"click"})},this.passivePopupDelay)}this._hoveredChild=item;item._set("hovering",true)},_onChildDeselect:function(item){this._stopPopupTimer();if(this.currentPopupItem==item){this._stopPendingCloseTimer();this._pendingClose_timer=this.defer(function(){this._pendingClose_timer=null;this.currentPopupItem=null;item._closePopup()},this.popupDelay)}},onItemUnhover:function(item){if(this._hoveredChild==
item)this._hoveredChild=null;if(this.passive_hover_timer){this.passive_hover_timer.remove();this.passive_hover_timer=null}item._set("hovering",false)},_stopPopupTimer:function(){if(this.hover_timer)this.hover_timer=this.hover_timer.remove()},_stopPendingCloseTimer:function(){if(this._pendingClose_timer)this._pendingClose_timer=this._pendingClose_timer.remove()},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu);return top},onItemClick:function(item,evt){if(this.passive_hover_timer)this.passive_hover_timer.remove();
this.focusChild(item);if(item.disabled)return false;if(item.popup){this.set("selected",item);this.set("activated",true);this._openItemPopup(item,/^key/.test(evt._origType||evt.type))}else{this.onExecute();item._onClick?item._onClick(evt):item.onClick(evt)}},_openItemPopup:function(from_item,focus){if(from_item==this.currentPopupItem)return;if(this.currentPopupItem){this._stopPendingCloseTimer();this.currentPopupItem._closePopup()}this._stopPopupTimer();var popup=from_item.popup;popup.parentMenu=this;
this.own(this._mouseoverHandle=on.once(popup.domNode,"mouseover",lang.hitch(this,"_onPopupHover")));var self=this;from_item._openPopup({parent:this,orient:this._orient||["after","before"],onCancel:function(){if(focus)self.focusChild(from_item);self._cleanUp()},onExecute:lang.hitch(this,"_cleanUp",true),onClose:function(){if(self._mouseoverHandle){self._mouseoverHandle.remove();delete self._mouseoverHandle}}},focus);this.currentPopupItem=from_item},onOpen:function(){this.isShowingNow=true;this.set("activated",
true)},onClose:function(){this.set("activated",false);this.set("selected",null);this.isShowingNow=false;this.parentMenu=null},_closeChild:function(){this._stopPopupTimer();if(this.currentPopupItem){if(this.focused){domAttr.set(this.selected.focusNode,"tabIndex",this.tabIndex);this.selected.focusNode.focus()}this.currentPopupItem._closePopup();this.currentPopupItem=null}},_onItemFocus:function(item){if(this._hoveredChild&&this._hoveredChild!=item)this.onItemUnhover(this._hoveredChild);this.set("selected",
item)},_onBlur:function(){this._cleanUp(true);this.inherited(arguments)},_cleanUp:function(clearSelectedItem){this._closeChild();if(typeof this.isShowingNow=="undefined")this.set("activated",false);if(clearSelectedItem)this.set("selected",null)}})})},"dojox/encoding/digests/SHA1":function(){define("dojox/encoding/digests/SHA1",["./_base"],function(base){var chrsz=8,mask=(1<<chrsz)-1;function R(n,c){return n<<c|n>>>32-c}function FT(t,b,c,d){if(t<20)return b&c|~b&d;if(t<40)return b^c^d;if(t<60)return b&
c|b&d|c&d;return b^c^d}function KT(t){return t<20?1518500249:t<40?1859775393:t<60?-1894007588:-899497514}function core(x,len){x[len>>5]|=128<<24-len%32;x[(len+64>>9<<4)+15]=len;var w=new Array(80),a=1732584193,b=-271733879,c=-1732584194,d=271733878,e=-1009589776;for(var i=0;i<x.length;i+=16){var olda=a,oldb=b,oldc=c,oldd=d,olde=e;for(var j=0;j<80;j++){if(j<16)w[j]=x[i+j];else w[j]=R(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);var t=base.addWords(base.addWords(R(a,5),FT(j,b,c,d)),base.addWords(base.addWords(e,
w[j]),KT(j)));e=d;d=c;c=R(b,30);b=a;a=t}a=base.addWords(a,olda);b=base.addWords(b,oldb);c=base.addWords(c,oldc);d=base.addWords(d,oldd);e=base.addWords(e,olde)}return[a,b,c,d,e]}function hmac(data,key){var wa=toWord(key);if(wa.length>16)wa=core(wa,key.length*chrsz);var ipad=new Array(16),opad=new Array(16);for(var i=0;i<16;i++){ipad[i]=wa[i]^909522486;opad[i]=wa[i]^1549556828}var hash=core(ipad.concat(toWord(data)),512+data.length*chrsz);return core(opad.concat(hash),512+160)}function toWord(s){var wa=
[];for(var i=0,l=s.length*chrsz;i<l;i+=chrsz)wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<32-chrsz-i%32;return wa}function toHex(wa){var h="0123456789abcdef",s=[];for(var i=0,l=wa.length*4;i<l;i++)s.push(h.charAt(wa[i>>2]>>(3-i%4)*8+4&15),h.charAt(wa[i>>2]>>(3-i%4)*8&15));return s.join("")}function _toString(wa){var s=[];for(var i=0,l=wa.length*32;i<l;i+=chrsz)s.push(String.fromCharCode(wa[i>>5]>>>32-chrsz-i%32&mask));return s.join("")}function toBase64(wa){var p="\x3d",tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
s=[];for(var i=0,l=wa.length*4;i<l;i+=3){var t=(wa[i>>2]>>8*(3-i%4)&255)<<16|(wa[i+1>>2]>>8*(3-(i+1)%4)&255)<<8|wa[i+2>>2]>>8*(3-(i+2)%4)&255;for(var j=0;j<4;j++)if(i*8+j*6>wa.length*32)s.push(p);else s.push(tab.charAt(t>>6*(3-j)&63))}return s.join("")}var SHA1=function(data,outputType){var out=outputType||base.outputTypes.Base64;var wa=core(toWord(data),data.length*chrsz);switch(out){case base.outputTypes.Raw:return wa;case base.outputTypes.Hex:return toHex(wa);case base.outputTypes.String:return _toString(wa);
default:return toBase64(wa)}};SHA1._hmac=function(data,key,outputType){var out=outputType||base.outputTypes.Base64;var wa=hmac(data,key);switch(out){case base.outputTypes.Raw:return wa;case base.outputTypes.Hex:return toHex(wa);case base.outputTypes.String:return _toString(wa);default:return toBase64(wa)}};return SHA1})},"dijit/layout/_ContentPaneResizeMixin":function(){define("dijit/layout/_ContentPaneResizeMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style",
"dojo/_base/lang","dojo/query","dojo/sniff","../registry","../Viewport","./utils"],function(array,declare,domClass,domGeometry,domStyle,lang,query,has,registry,Viewport,layoutUtils){return declare("dijit.layout._ContentPaneResizeMixin",null,{doLayout:true,isLayoutContainer:true,startup:function(){if(this._started)return;var parent=this.getParent();this._childOfLayoutWidget=parent&&parent.isLayoutContainer;this._needLayout=!this._childOfLayoutWidget;this.inherited(arguments);if(this._isShown())this._onShow();
if(!this._childOfLayoutWidget)this.own(Viewport.on("resize",lang.hitch(this,"resize")))},_checkIfSingleChild:function(){var candidateWidgets=[],otherVisibleNodes=false;query("\x3e *",this.containerNode).some(function(node){var widget=registry.byNode(node);if(widget&&widget.resize)candidateWidgets.push(widget);else if(!/script|link|style/i.test(node.nodeName)&&node.offsetHeight)otherVisibleNodes=true});this._singleChild=candidateWidgets.length==1&&!otherVisibleNodes?candidateWidgets[0]:null;domClass.toggle(this.containerNode,
this.baseClass+"SingleChild",!!this._singleChild)},resize:function(changeSize,resultSize){this._resizeCalled=true;this._scheduleLayout(changeSize,resultSize)},_scheduleLayout:function(changeSize,resultSize){if(this._isShown())this._layout(changeSize,resultSize);else{this._needLayout=true;this._changeSize=changeSize;this._resultSize=resultSize}},_layout:function(changeSize,resultSize){delete this._needLayout;if(!this._wasShown&&this.open!==false)this._onShow();if(changeSize)domGeometry.setMarginBox(this.domNode,
changeSize);var cn=this.containerNode;if(cn===this.domNode){var mb=resultSize||{};lang.mixin(mb,changeSize||{});if(!("h"in mb)||!("w"in mb))mb=lang.mixin(domGeometry.getMarginBox(cn),mb);this._contentBox=layoutUtils.marginBox2contentBox(cn,mb)}else this._contentBox=domGeometry.getContentBox(cn);this._layoutChildren()},_layoutChildren:function(){if(this.doLayout)this._checkIfSingleChild();if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||domGeometry.getContentBox(this.containerNode);
this._singleChild.resize({w:cb.w,h:cb.h})}else{var children=this.getChildren(),widget,i=0;while(widget=children[i++])if(widget.resize)widget.resize()}},_isShown:function(){if(this._childOfLayoutWidget){if(this._resizeCalled&&"open"in this)return this.open;return this._resizeCalled}else if("open"in this)return this.open;else{var node=this.domNode,parent=this.domNode.parentNode;return node.style.display!="none"&&node.style.visibility!="hidden"&&!domClass.contains(node,"dijitHidden")&&parent&&parent.style&&
parent.style.display!="none"}},_onShow:function(){this._wasShown=true;if(this._needLayout)this._layout(this._changeSize,this._resultSize);this.inherited(arguments)}})})},"dojox/grid/DataGrid":function(){define("dojox/grid/DataGrid",["../main","dojo/_base/array","dojo/_base/lang","dojo/_base/json","dojo/_base/sniff","dojo/_base/declare","./_Grid","./DataSelection","dojo/_base/html","dojo/has","require"],function(dojox,array,lang,json,has,declare,_Grid,DataSelection,html){var DataGrid=declare("dojox.grid.DataGrid",
_Grid,{store:null,query:null,queryOptions:null,fetchText:"...",sortFields:null,updateDelay:1,items:null,_store_connects:null,_by_idty:null,_by_idx:null,_cache:null,_pages:null,_pending_requests:null,_bop:-1,_eop:-1,_requests:0,rowCount:0,_isLoaded:false,_isLoading:false,keepSelection:false,postCreate:function(){this._pages=[];this._store_connects=[];this._by_idty={};this._by_idx=[];this._cache=[];this._pending_requests={};this._setStore(this.store);this.inherited(arguments)},destroy:function(){this.selection.destroy();
this.inherited(arguments)},createSelection:function(){this.selection=new DataSelection(this)},get:function(inRowIndex,inItem){if(inItem&&this.field=="_item"&&!this.fields)return inItem;else if(inItem&&this.fields){var ret=[];var s=this.grid.store;array.forEach(this.fields,function(f){ret=ret.concat(s.getValues(inItem,f))});return ret}else if(!inItem&&typeof inRowIndex==="string")return this.inherited(arguments);return!inItem?this.defaultValue:!this.field?this.value:this.field=="_item"?inItem:this.grid.store.getValue(inItem,
this.field)},_checkUpdateStatus:function(){if(this.updateDelay>0){var iStarted=false;if(this._endUpdateDelay){clearTimeout(this._endUpdateDelay);delete this._endUpdateDelay;iStarted=true}if(!this.updating){this.beginUpdate();iStarted=true}if(iStarted){var _this=this;this._endUpdateDelay=setTimeout(function(){delete _this._endUpdateDelay;_this.endUpdate()},this.updateDelay)}}},_onSet:function(item,attribute,oldValue,newValue){this._checkUpdateStatus();var idx=this.getItemIndex(item);if(idx>-1)this.updateRow(idx)},
_createItem:function(item,index){var idty=this._hasIdentity?this.store.getIdentity(item):json.toJson(this.query)+":idx:"+index+":sort:"+json.toJson(this.getSortProps());var o=this._by_idty[idty]={idty:idty,item:item};return o},_addItem:function(item,index,noUpdate){this._by_idx[index]=this._createItem(item,index);if(!noUpdate)this.updateRow(index)},_onNew:function(item,parentInfo){this._checkUpdateStatus();var rowCount=this.get("rowCount");this._addingItem=true;this.updateRowCount(rowCount+1);this._addingItem=
false;this._addItem(item,rowCount);this.showMessage()},_onDelete:function(item){this._checkUpdateStatus();var idx=this._getItemIndex(item,true);if(idx>=0){this._pages=[];this._bop=-1;this._eop=-1;var o=this._by_idx[idx];this._by_idx.splice(idx,1);delete this._by_idty[o.idty];this.updateRowCount(this.get("rowCount")-1);if(this.get("rowCount")===0)this.showMessage(this.noDataMessage)}if(this.selection.isSelected(idx)){this.selection.deselect(idx);this.selection.selected.splice(idx,1)}},_onRevert:function(){this._refresh()},
setStore:function(store,query,queryOptions){if(this._requestsPending(0))return;this._setQuery(query,queryOptions);this._setStore(store);this._refresh(true)},setQuery:function(query,queryOptions){if(this._requestsPending(0))return;this._setQuery(query,queryOptions);this._refresh(true)},setItems:function(items){this.items=items;this._setStore(this.store);this._refresh(true)},_setQuery:function(query,queryOptions){this.query=query;this.queryOptions=queryOptions||this.queryOptions},_setStore:function(store){if(this.store&&
this._store_connects)array.forEach(this._store_connects,this.disconnect,this);this.store=store;if(this.store){var f=this.store.getFeatures();var h=[];this._canEdit=!!f["dojo.data.api.Write"]&&!!f["dojo.data.api.Identity"];this._hasIdentity=!!f["dojo.data.api.Identity"];if(!!f["dojo.data.api.Notification"]&&!this.items){h.push(this.connect(this.store,"onSet","_onSet"));h.push(this.connect(this.store,"onNew","_onNew"));h.push(this.connect(this.store,"onDelete","_onDelete"))}if(this._canEdit)h.push(this.connect(this.store,
"revert","_onRevert"));this._store_connects=h}},_onFetchBegin:function(size,req){if(!this.scroller)return;if(this.rowCount!=size)if(req.isRender){this.scroller.init(size,this.keepRows,this.rowsPerPage);this.rowCount=size;this._setAutoHeightAttr(this.autoHeight,true);this._skipRowRenormalize=true;this.prerender();this._skipRowRenormalize=false}else this.updateRowCount(size);if(!size){this.views.render();this._resize();this.showMessage(this.noDataMessage);this.focus.initFocusView()}else this.showMessage()},
_onFetchComplete:function(items,req){if(!this.scroller)return;if(items&&items.length>0){array.forEach(items,function(item,idx){this._addItem(item,req.start+idx,true)},this);this.updateRows(req.start,items.length);if(req.isRender){this.setScrollTop(0);this.postrender()}else if(this._lastScrollTop)this.setScrollTop(this._lastScrollTop);if(has("ie"))html.setSelectable(this.domNode,this.selectable)}delete this._lastScrollTop;if(!this._isLoaded){this._isLoading=false;this._isLoaded=true}this._pending_requests[req.start]=
false},_onFetchError:function(err,req){0&&console.log(err);delete this._lastScrollTop;if(!this._isLoaded){this._isLoading=false;this._isLoaded=true;this.showMessage(this.errorMessage)}this._pending_requests[req.start]=false;this.onFetchError(err,req)},onFetchError:function(err,req){},_fetch:function(start,isRender){start=start||0;if(this.store&&!this._pending_requests[start]){if(!this._isLoaded&&!this._isLoading){this._isLoading=true;this.showMessage(this.loadingMessage)}this._pending_requests[start]=
true;try{if(this.items){var items=this.items;var store=this.store;this.rowsPerPage=items.length;var req={start:start,count:this.rowsPerPage,isRender:isRender};this._onFetchBegin(items.length,req);var waitCount=0;array.forEach(items,function(i){if(!store.isItemLoaded(i))waitCount++});if(waitCount===0)this._onFetchComplete(items,req);else{var onItem=function(item){waitCount--;if(waitCount===0)this._onFetchComplete(items,req)};array.forEach(items,function(i){if(!store.isItemLoaded(i))store.loadItem({item:i,
onItem:onItem,scope:this})},this)}}else this.store.fetch({start:start,count:this.rowsPerPage,query:this.query,sort:this.getSortProps(),queryOptions:this.queryOptions,isRender:isRender,onBegin:lang.hitch(this,"_onFetchBegin"),onComplete:lang.hitch(this,"_onFetchComplete"),onError:lang.hitch(this,"_onFetchError")})}catch(e){this._onFetchError(e,{start:start,count:this.rowsPerPage})}}},_clearData:function(){this.updateRowCount(0);this._by_idty={};this._by_idx=[];this._pages=[];this._bop=this._eop=-1;
this._isLoaded=false;this._isLoading=false},getItem:function(idx){var data=this._by_idx[idx];if(!data||data&&!data.item){this._preparePage(idx);return null}return data.item},getItemIndex:function(item){return this._getItemIndex(item,false)},_getItemIndex:function(item,isDeleted){if(!isDeleted&&!this.store.isItem(item))return-1;var idty=this._hasIdentity?this.store.getIdentity(item):null;for(var i=0,l=this._by_idx.length;i<l;i++){var d=this._by_idx[i];if(d&&(idty&&d.idty==idty||d.item===item))return i}return-1},
filter:function(query,reRender){this.query=query;if(reRender)this._clearData();this._fetch()},_getItemAttr:function(idx,attr){var item=this.getItem(idx);return!item?this.fetchText:this.store.getValue(item,attr)},_render:function(){if(this.domNode.parentNode){this.scroller.init(this.get("rowCount"),this.keepRows,this.rowsPerPage);this.prerender();this._fetch(0,true)}},_requestsPending:function(inRowIndex){return this._pending_requests[inRowIndex]},_rowToPage:function(inRowIndex){return this.rowsPerPage?
Math.floor(inRowIndex/this.rowsPerPage):inRowIndex},_pageToRow:function(inPageIndex){return this.rowsPerPage?this.rowsPerPage*inPageIndex:inPageIndex},_preparePage:function(inRowIndex){if((inRowIndex<this._bop||inRowIndex>=this._eop)&&!this._addingItem){var pageIndex=this._rowToPage(inRowIndex);this._needPage(pageIndex);this._bop=pageIndex*this.rowsPerPage;this._eop=this._bop+(this.rowsPerPage||this.get("rowCount"))}},_needPage:function(inPageIndex){if(!this._pages[inPageIndex]){this._pages[inPageIndex]=
true;this._requestPage(inPageIndex)}},_requestPage:function(inPageIndex){var row=this._pageToRow(inPageIndex);var count=Math.min(this.rowsPerPage,this.get("rowCount")-row);if(count>0){this._requests++;if(!this._requestsPending(row))setTimeout(lang.hitch(this,"_fetch",row,false),1)}},getCellName:function(inCell){return inCell.field},_refresh:function(isRender){this._clearData();this._fetch(0,isRender)},sort:function(){this.edit.apply();this._lastScrollTop=this.scrollTop;this._refresh()},canSort:function(){return!this._isLoading},
getSortProps:function(){var c=this.getCell(this.getSortIndex());if(!c){if(this.sortFields)return this.sortFields;return null}else{var desc=c["sortDesc"];var si=!(this.sortInfo>0);if(typeof desc=="undefined")desc=si;else desc=si?!desc:desc;return[{attribute:c.field,descending:desc}]}},styleRowState:function(inRow){if(this.store&&this.store.getState){var states=this.store.getState(inRow.index),c="";for(var i=0,ss=["inflight","error","inserting"],s;s=ss[i];i++)if(states[s]){c=" dojoxGridRow-"+s;break}inRow.customClasses+=
c}},onStyleRow:function(inRow){this.styleRowState(inRow);this.inherited(arguments)},canEdit:function(inCell,inRowIndex){return this._canEdit},_copyAttr:function(idx,attr){var row={};var backstop={};var src=this.getItem(idx);return this.store.getValue(src,attr)},doStartEdit:function(inCell,inRowIndex){if(!this._cache[inRowIndex])this._cache[inRowIndex]=this._copyAttr(inRowIndex,inCell.field);this.onStartEdit(inCell,inRowIndex)},doApplyCellEdit:function(inValue,inRowIndex,inAttrName){this.store.fetchItemByIdentity({identity:this._by_idx[inRowIndex].idty,
onItem:lang.hitch(this,function(item){var oldValue=this.store.getValue(item,inAttrName);if(typeof oldValue=="number")inValue=isNaN(inValue)?inValue:parseFloat(inValue);else if(typeof oldValue=="boolean")inValue=inValue=="true"?true:inValue=="false"?false:inValue;else if(oldValue instanceof Date){var asDate=new Date(inValue);inValue=isNaN(asDate.getTime())?inValue:asDate}this.store.setValue(item,inAttrName,inValue);this.onApplyCellEdit(inValue,inRowIndex,inAttrName)})})},doCancelEdit:function(inRowIndex){var cache=
this._cache[inRowIndex];if(cache){this.updateRow(inRowIndex);delete this._cache[inRowIndex]}this.onCancelEdit.apply(this,arguments)},doApplyEdit:function(inRowIndex,inDataAttr){var cache=this._cache[inRowIndex];this.onApplyEdit(inRowIndex)},removeSelectedRows:function(){if(this._canEdit){this.edit.apply();var fx=lang.hitch(this,function(items){if(items.length){array.forEach(items,this.store.deleteItem,this.store);this.selection.clear()}});if(this.allItemsSelected)this.store.fetch({query:this.query,
queryOptions:this.queryOptions,onComplete:fx});else fx(this.selection.getSelected())}}});DataGrid.cell_markupFactory=function(cellFunc,node,cellDef){var field=lang.trim(html.attr(node,"field")||"");if(field)cellDef.field=field;cellDef.field=cellDef.field||cellDef.name;var fields=lang.trim(html.attr(node,"fields")||"");if(fields)cellDef.fields=fields.split(",");if(cellFunc)cellFunc(node,cellDef)};DataGrid.markupFactory=function(props,node,ctor,cellFunc){return _Grid.markupFactory(props,node,ctor,lang.partial(DataGrid.cell_markupFactory,
cellFunc))};return DataGrid})},"xapp/utils/RenderUtils":function(){define("xapp/utils/RenderUtils",["dojo/_base/declare","dojox/encoding/digests/MD5","xapp/utils","xapp/types","dojo/_base/lang","dojo/has","dojo/dom-class","dojo/dom-attr","dojo/dom-geometry","dojo/dom-style"],function(declare,MD5,utils,coretypes,lang,has,domClass,domAttr,domGeometry,domStyle){utils.getBase64Image=function(img){var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");
ctx.drawImage(img,0,0);var dataURL=canvas.toDataURL("image/png");return dataURL.replace(/^data:image\/(png|jpg);base64,/,"")};utils.strip_tags=function(input,allowed){allowed=(((allowed||"")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join("");var tags=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,commentsAndPhpTags=/\x3c!--[\s\S]*?--\x3e|<\?(?:php)?[\s\S]*?\?>/gi;return input.replace(commentsAndPhpTags,"").replace(tags,function($0,$1){return allowed.indexOf("\x3c"+$1.toLowerCase()+"\x3e")>-1?$0:""})};utils.templatify=
function(baseClass,templateString,parentNode,templateArguments,baseClasses){var widgetClassIn=baseClass||"xapp.widgets.TemplatedWidgetBase";var widgetProto=null;if(baseClasses)widgetProto=declare([baseClass].concat(baseClasses));else widgetProto=dojo.getObject(widgetClassIn);if(!widgetProto)return null;var ctrArgs={templateString:templateString};lang.mixin(ctrArgs,templateArguments);var widget=new widgetProto(ctrArgs,dojo.doc.createElement("div"));if(parentNode)parentNode.appendChild(widget.domNode);
return widget};utils.getWidget=function(mixed){if(lang.isObject(mixed))return mixed;else if(lang.isString(mixed)){var _w=dijit.registry.byId(mixed);if(_w)return _w}return null};utils.mimicNode=function(srcNode,dstNode,width,height,sizeFunc,attribute){if(srcNode&&dstNode){var _sizeFun=sizeFunc||domGeometry.getMarginBox;var adjustWidth=width===true;var adjustHeight=height===true;var _box=_sizeFun(srcNode);if(adjustHeight)domStyle.set(dstNode,{"height":_box.h+"px"})}};utils.replace_urls=function(dataItem,
node,elem,attr){var elems=node.getElementsByTagName("a");for(var i=0;i<elems.length;i++){elems[i]["url"]=""+domAttr.get(elems[i],"href");elems[i]["href"]="javascript:;";elems[i].addEventListener("click",function(e){var _newUrl=""+this["url"];if(dataItem&&dataItem.baseRef&&_newUrl&&_newUrl.indexOf("http")==-1)_newUrl=utils.concatAndResolveUrl(dataItem.baseRef,_newUrl);ctx.getUrlHandler().openExternalLocation(_newUrl,null)})}};utils.fixImages=function(dataItem,node){var elems=node.getElementsByTagName("img");
for(var i=0;i<elems.length;i++){domAttr.remove(elems[i],"height");var oriWidth=domAttr.get(elems[i],"oriWidth")||domAttr.get(elems[i],"oriwidth");if(oriWidth!=null)if(!isNaN(oriWidth)&&oriWidth<ctx.getViewManager().getScreenSize().width){var diff=100-ctx.getViewManager().getScreenSize().width/oriWidth*100;if(diff<xapp.K_PICTURE_RESIZE_THRESOLD){domAttr.set(elems[i],"width",oriWidth);domClass.remove(elems[i],"PictureItems")}}}};utils.find=function(queryString,startNode,single){var nodes=dojo.query(queryString,
startNode);if(nodes&&nodes.length>0)return single===false?nodes:nodes[0];return null};utils.updateReflow=function(el){if(el){domClass.add(el,"forceReflow");setTimeout(function(){domClass.remove(el,"forceReflow")},1E3)}};utils.truncate=function(text){text=text||"";var titleWasCut=false;var _mL=18;if(has("tablet"))_mL=45;var _t=text;if(_t.length>_mL){_t=_t.substring(0,_mL);titleWasCut=true}if(titleWasCut)_t+="..";return" "+_t};utils.truncateWords=function(text,length){text=text||"";var titleWasCut=
false;var _mL=length;var _t=text;if(_t.length>_mL){var trimmedString=_t.substr(0,_mL);_t=trimmedString.substr(0,Math.min(trimmedString.length,trimmedString.lastIndexOf(" ")));titleWasCut=true}if(titleWasCut)_t+="..";return" "+_t};utils.getHTMLTemplate=function(templateId){var templates=null;if(typeof xappHTMLTemplates!="undefined"&&xappHTMLTemplates!=null)templates=xappHTMLTemplates;if(templates!=null&&templates.length>0)for(var i=0;i<templates.length;i++)if(utils.isValidString(templates[i].title)&&
utils.isValidString(templates[i].id))if(templates[i].id===templateId)return templates[i];return null};utils.getTemplate=function(data,renderClass){if(!renderClass)renderClass="LayoutListItems";if(data["class"]==xapp.K_CONTENT)renderClass="LayoutContent";var dstTemplateStr="default";var _tpl=null;var dstTemplateOverride=null;var override=null;if(data["dsParams"]){var dsParams=data["dsParams"];var store=ctx.getApplication().ciOverrideStore;if(store){var _dsType=""+dsParams.dsType;_dsType=_dsType.replace("Detail",
"");override=utils.getStyleOverride(store,""+_dsType,dsParams.dsUid,dsParams.dsRef,renderClass,data);if(override){dstTemplateOverride=utils.toString(override.value);if(dstTemplateOverride&&dstTemplateOverride.length){dstTemplateOverride=dstTemplateOverride.toLowerCase();if(xapp.widgets.templates[dstTemplateOverride]!=null){dstTemplateStr=dstTemplateOverride;return xapp.widgets.templates[dstTemplateStr]}else{_tpl=utils.getHTMLTemplate(utils.toString(override.value));if(_tpl)return _tpl}}}}}return xapp.widgets.templates["default"]};
return utils})},"dojo/data/util/sorter":function(){define("dojo/data/util/sorter",["../../_base/lang"],function(lang){var sorter={};lang.setObject("dojo.data.util.sorter",sorter);sorter.basicComparator=function(a,b){var r=-1;if(a===null)a=undefined;if(b===null)b=undefined;if(a==b)r=0;else if(a>b||a==null)r=1;return r};sorter.createSortFunction=function(sortSpec,store){var sortFunctions=[];function createSortFunction(attr,dir,comp,s){return function(itemA,itemB){var a=s.getValue(itemA,attr);var b=
s.getValue(itemB,attr);return dir*comp(a,b)}}var sortAttribute;var map=store.comparatorMap;var bc=sorter.basicComparator;for(var i=0;i<sortSpec.length;i++){sortAttribute=sortSpec[i];var attr=sortAttribute.attribute;if(attr){var dir=sortAttribute.descending?-1:1;var comp=bc;if(map){if(typeof attr!=="string"&&"toString"in attr)attr=attr.toString();comp=map[attr]||bc}sortFunctions.push(createSortFunction(attr,dir,comp,store))}}return function(rowA,rowB){var i=0;while(i<sortFunctions.length){var ret=
sortFunctions[i++](rowA,rowB);if(ret!==0)return ret}return 0}};return sorter})},"url:dijit/layout/templates/ScrollingTabController.html":'\x3cdiv class\x3d"dijitTabListContainer-${tabPosition}" style\x3d"visibility:hidden"\x3e\n\t\x3cdiv data-dojo-type\x3d"dijit.layout._ScrollingTabControllerMenuButton"\n\t\t class\x3d"tabStripButton-${tabPosition}"\n\t\t id\x3d"${id}_menuBtn"\n\t\t data-dojo-props\x3d"containerId: \'${containerId}\', iconClass: \'dijitTabStripMenuIcon\',\n\t\t\t\t\tdropDownPosition: [\'below-alt\', \'above-alt\']"\n\t\t data-dojo-attach-point\x3d"_menuBtn" showLabel\x3d"false" title\x3d""\x3e\x26#9660;\x3c/div\x3e\n\t\x3cdiv data-dojo-type\x3d"dijit.layout._ScrollingTabControllerButton"\n\t\t class\x3d"tabStripButton-${tabPosition}"\n\t\t id\x3d"${id}_leftBtn"\n\t\t data-dojo-props\x3d"iconClass:\'dijitTabStripSlideLeftIcon\', showLabel:false, title:\'\'"\n\t\t data-dojo-attach-point\x3d"_leftBtn" data-dojo-attach-event\x3d"onClick: doSlideLeft"\x3e\x26#9664;\x3c/div\x3e\n\t\x3cdiv data-dojo-type\x3d"dijit.layout._ScrollingTabControllerButton"\n\t\t class\x3d"tabStripButton-${tabPosition}"\n\t\t id\x3d"${id}_rightBtn"\n\t\t data-dojo-props\x3d"iconClass:\'dijitTabStripSlideRightIcon\', showLabel:false, title:\'\'"\n\t\t data-dojo-attach-point\x3d"_rightBtn" data-dojo-attach-event\x3d"onClick: doSlideRight"\x3e\x26#9654;\x3c/div\x3e\n\t\x3cdiv class\x3d\'dijitTabListWrapper\' data-dojo-attach-point\x3d\'tablistWrapper\'\x3e\n\t\t\x3cdiv role\x3d\'tablist\' data-dojo-attach-event\x3d\'onkeydown:onkeydown\'\n\t\t\t data-dojo-attach-point\x3d\'containerNode\' class\x3d\'nowrapTabStrip\'\x3e\x3c/div\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e',
"xfile/views/History":function(){define("xfile/views/History",["dojo/_base/declare","dojo/_base/lang","xide/utils/StringUtils","xide/types","dojo/back"],function(declare,lang,utils,types,back){return declare("xfile.views.History",null,{_back:null,_history:null,initHistory:function(){this._history=[]},onHistoryForward:function(prefix,item){this._history.push(item)},onHistoryBack:function(prefix,item){this._history.remove(item);var nextItem=this.getCurrentHistoryState();if(nextItem);if(this.onDidGoBack)this.onDidGoBack(item)},
getCurrentHistoryState:function(){var idx=this._history.length-1;if(idx<0)idx=0;if(idx<=this._history.length)return this._history[idx]}})})},"dijit/form/_FormWidgetMixin":function(){define("dijit/form/_FormWidgetMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-style","dojo/_base/lang","dojo/mouse","dojo/on","dojo/sniff","dojo/window","../a11y"],function(array,declare,domAttr,domStyle,lang,mouse,on,has,winUtils,a11y){return declare("dijit.form._FormWidgetMixin",null,{name:"",
alt:"",value:"",type:"text","aria-label":"focusNode",tabIndex:"0",_setTabIndexAttr:"focusNode",disabled:false,intermediateChanges:false,scrollOnFocus:true,_setIdAttr:"focusNode",_setDisabledAttr:function(value){this._set("disabled",value);domAttr.set(this.focusNode,"disabled",value);if(this.valueNode)domAttr.set(this.valueNode,"disabled",value);this.focusNode.setAttribute("aria-disabled",value?"true":"false");if(value){this._set("hovering",false);this._set("active",false);var attachPointNames="tabIndex"in
this.attributeMap?this.attributeMap.tabIndex:"_setTabIndexAttr"in this?this._setTabIndexAttr:"focusNode";array.forEach(lang.isArray(attachPointNames)?attachPointNames:[attachPointNames],function(attachPointName){var node=this[attachPointName];if(has("webkit")||a11y.hasDefaultTabStop(node))node.setAttribute("tabIndex","-1");else node.removeAttribute("tabIndex")},this)}else if(this.tabIndex!="")this.set("tabIndex",this.tabIndex)},_onFocus:function(by){if(by=="mouse"&&this.isFocusable()){var focusHandle=
this.own(on(this.focusNode,"focus",function(){mouseUpHandle.remove();focusHandle.remove()}))[0];var mouseUpHandle=this.own(on(this.ownerDocumentBody,"mouseup, touchend",lang.hitch(this,function(evt){mouseUpHandle.remove();focusHandle.remove();if(this.focused)if(evt.type=="touchend")this.defer("focus");else this.focus()})))[0]}if(this.scrollOnFocus)this.defer(function(){winUtils.scrollIntoView(this.domNode)});this.inherited(arguments)},isFocusable:function(){return!this.disabled&&this.focusNode&&domStyle.get(this.domNode,
"display")!="none"},focus:function(){if(!this.disabled&&this.focusNode.focus)try{this.focusNode.focus()}catch(e){}},compare:function(val1,val2){if(typeof val1=="number"&&typeof val2=="number")return isNaN(val1)&&isNaN(val2)?0:val1-val2;else if(val1>val2)return 1;else if(val1<val2)return-1;else return 0},onChange:function(){},_onChangeActive:false,_handleOnChange:function(newValue,priorityChange){if(this._lastValueReported==undefined&&(priorityChange===null||!this._onChangeActive))this._resetValue=
this._lastValueReported=newValue;this._pendingOnChange=this._pendingOnChange||typeof newValue!=typeof this._lastValueReported||this.compare(newValue,this._lastValueReported)!=0;if((this.intermediateChanges||priorityChange||priorityChange===undefined)&&this._pendingOnChange){this._lastValueReported=newValue;this._pendingOnChange=false;if(this._onChangeActive){if(this._onChangeHandle)this._onChangeHandle.remove();this._onChangeHandle=this.defer(function(){this._onChangeHandle=null;this.onChange(newValue)})}}},
create:function(){this.inherited(arguments);this._onChangeActive=true},destroy:function(){if(this._onChangeHandle){this._onChangeHandle.remove();this.onChange(this._lastValueReported)}this.inherited(arguments)}})})},"xwordpress/views/FileTreeView":function(){define("xwordpress/views/FileTreeView",["dojo/_base/declare","xfile/views/FileTreeView"],function(declare,FileTreeView){return declare("xwordpress.views.FileTreeView",[FileTreeView],{startup:function(){if(this.didLoad)return;this.inherited(arguments);
this.didLoad=true}})})},"dgrid/editor":function(){define(["dojo/_base/kernel","dojo/_base/lang","dojo/_base/array","dojo/_base/Deferred","dojo/on","dojo/aspect","dojo/has","dojo/query","./Grid","put-selector/put","dojo/_base/sniff"],function(kernel,lang,arrayUtil,Deferred,on,aspect,has,query,Grid,put){var activeCell,activeValue,activeOptions,focusedCell;function updateInputValue(input,value){input.value=value;if(input.type=="radio"||input.type=="checkbox")input.checked=input.defaultChecked=!!value}
function dataFromValue(value,oldValue){if(typeof oldValue=="number")value=isNaN(value)?value:parseFloat(value);else if(typeof oldValue=="boolean")value=value=="true"?true:value=="false"?false:value;else if(oldValue instanceof Date){var asDate=new Date(value);value=isNaN(asDate.getTime())?value:asDate}return value}function dataFromEditor(column,cmp){if(typeof cmp.get=="function")return dataFromValue(cmp.get("value"));else return dataFromValue(cmp[cmp.type=="checkbox"||cmp.type=="radio"?"checked":"value"])}
function setProperty(grid,cell,oldValue,value,triggerEvent){var cellElement,row,column,eventObject;if((oldValue&&oldValue.valueOf())!=(value&&value.valueOf())){cellElement=cell.element;row=cell.row;column=cell.column;if(column.field&&row){eventObject={grid:grid,cell:cell,rowId:row.id,oldValue:oldValue,value:value,bubbles:true,cancelable:true};if(triggerEvent&&triggerEvent.type)eventObject.parentType=triggerEvent.type;if(on.emit(cellElement,"dgrid-datachange",eventObject))if(grid.updateDirty){grid.updateDirty(row.id,
column.field,value);column.autoSave&&setTimeout(function(){grid._trackError("save")},0)}else row.data[column.field]=value;else{var cmp;if(cmp=cellElement.widget){cmp._dgridIgnoreChange=true;cmp.set("value",oldValue);setTimeout(function(){cmp._dgridIgnoreChange=false},0)}else if(cmp=cellElement.input)updateInputValue(cmp,oldValue);return oldValue}}}return value}function setPropertyFromEditor(grid,cmp,triggerEvent){var cell=grid.cell(cmp.domNode||cmp),column=cell.column,value,id,editedRow;if(!cmp.isValid||
cmp.isValid()){value=setProperty(grid,cell,activeCell?activeValue:cmp._dgridLastValue,dataFromEditor(column,cmp),triggerEvent);if(activeCell)activeValue=value;else cmp._dgridLastValue=value;if(cmp.type==="radio"&&cmp.name&&!column.editOn&&column.field){editedRow=grid.row(cmp);query("input[type\x3dradio][name\x3d"+cmp.name+"]",grid.contentNode).forEach(function(radioBtn){var row=grid.row(radioBtn);if(radioBtn!==cmp&&radioBtn._dgridLastValue){radioBtn._dgridLastValue=false;if(grid.updateDirty)grid.updateDirty(row.id,
column.field,false);else row.data[column.field]=false}});for(id in grid.dirty)if(editedRow.id!==id&&grid.dirty[id][column.field])grid.updateDirty(id,column.field,false)}}}function createEditor(column){var editor=column.editor,editOn=column.editOn,grid=column.grid,isWidget=typeof editor!="string",args,cmp,node,putstr,handleChange;args=column.editorArgs||{};if(typeof args=="function")args=args.call(grid,column);if(isWidget){cmp=new editor(args);node=cmp.focusNode||cmp.domNode;node.className+=" dgrid-input";
cmp.connect(cmp,editOn?"onBlur":"onChange",function(){if(!cmp._dgridIgnoreChange)setPropertyFromEditor(grid,this,{type:"widget"})})}else{handleChange=function(evt){var target=evt.target;if("_dgridLastValue"in target&&target.className.indexOf("dgrid-input")>-1)setPropertyFromEditor(grid,target,evt)};if(!column.grid._hasInputListener){grid._hasInputListener=true;grid.on("change",function(evt){handleChange(evt)})}putstr=editor=="textarea"?"textarea":"input[type\x3d"+editor+"]";cmp=node=put(putstr+".dgrid-input",
lang.mixin({name:column.field,tabIndex:isNaN(column.tabIndex)?-1:column.tabIndex},args));if(has("ie")<9||has("ie")&&has("quirks"))if(editor=="radio"||editor=="checkbox")on(cmp,"click",function(evt){handleChange(evt)});else on(cmp,"change",function(evt){handleChange(evt)})}return cmp}function createSharedEditor(column,originalRenderCell){var cmp=createEditor(column),grid=column.grid,isWidget=cmp.domNode,node=cmp.domNode||cmp,focusNode=cmp.focusNode||node,reset=isWidget?function(){cmp.set("value",cmp._dgridLastValue)}:
function(){updateInputValue(cmp,cmp._dgridLastValue);setPropertyFromEditor(column.grid,cmp)},keyHandle;function blur(){var element=activeCell;focusNode.blur();if(typeof grid.focus==="function")setTimeout(function(){grid.focus(element)},isWidget&&has("ie")<9?15:0)}function onblur(){var parentNode=node.parentNode,i=parentNode.children.length-1,options={alreadyHooked:true},cell=grid.cell(node);on.emit(cell.element,"dgrid-editor-hide",{grid:grid,cell:cell,column:column,editor:cmp,bubbles:true,cancelable:false});
column._editorBlurHandle.pause();parentNode.removeChild(node);put(cell.element,"!dgrid-cell-editing");while(i--)put(parentNode.firstChild,"!");Grid.appendIfNode(parentNode,column.renderCell(column.grid.row(parentNode).data,activeValue,parentNode,activeOptions?lang.delegate(options,activeOptions):options));activeCell=activeValue=activeOptions=focusedCell=null}function dismissOnKey(evt){var key=evt.keyCode||evt.which;if(key==27){reset();activeValue=cmp._dgridLastValue;blur()}else if(key==13&&column.dismissOnEnter!==
false)blur()}keyHandle=on(focusNode,"keydown",dismissOnKey);(column._editorBlurHandle=on.pausable(cmp,"blur",onblur)).pause();return cmp}function showEditor(cmp,column,cellElement,value){var isWidget=cmp.domNode,grid=column.grid;if(!isWidget)updateInputValue(cmp,value);cellElement.innerHTML="";put(cellElement,".dgrid-cell-editing");put(cellElement,cmp.domNode||cmp);if(isWidget){if(!cmp._started)cmp.startup();cmp._dgridIgnoreChange=true;cmp.set("value",value);setTimeout(function(){cmp._dgridIgnoreChange=
false},0)}cmp._dgridLastValue=value;if(activeCell){activeValue=value;on.emit(cellElement,"dgrid-editor-show",{grid:grid,cell:grid.cell(cellElement),column:column,editor:cmp,bubbles:true,cancelable:false})}}function edit(cell){var row,column,cellElement,dirty,field,value,cmp,dfd;if(!cell.column)cell=this.cell(cell);if(!cell||!cell.element)return null;column=cell.column;field=column.field;cellElement=cell.element.contents||cell.element;if(cmp=column.editorInstance){if(activeCell!=cellElement){row=cell.row;
dirty=this.dirty&&this.dirty[row.id];value=dirty&&field in dirty?dirty[field]:column.get?column.get(row.data):row.data[field];if(!column.canEdit||column.canEdit(cell.row.data,value)){activeCell=cellElement;showEditor(column.editorInstance,column,cellElement,value);dfd=new Deferred;setTimeout(function(){if(cmp.focus)cmp.focus();if(column._editorBlurHandle)column._editorBlurHandle.resume();dfd.resolve(cmp)},0);return dfd.promise}}}else if(column.editor){cmp=cellElement.widget||cellElement.input;if(cmp){dfd=
new Deferred;if(cmp.focus)cmp.focus();dfd.resolve(cmp);return dfd.promise}}return null}return function(column,editor,editOn){var originalRenderCell=column.renderCell||Grid.defaultRenderCell,listeners=[],isWidget;function commonInit(column){var grid=column.grid,focusoutHandle;if(!grid.edit){grid.edit=edit;listeners.push(on(grid.domNode,".dgrid-input:focusin",function(){focusedCell=grid.cell(this)}));focusoutHandle=grid._editorFocusoutHandle=on.pausable(grid.domNode,".dgrid-input:focusout",function(){focusedCell=
null});listeners.push(focusoutHandle);listeners.push(aspect.before(grid,"removeRow",function(row){row=grid.row(row);if(focusedCell&&focusedCell.row.id===row.id){focusoutHandle.pause();setTimeout(function(){focusoutHandle.resume()},0)}}));listeners.push(aspect.after(grid,"insertRow",function(rowElement){var row=grid.row(rowElement);if(focusedCell&&focusedCell.row.id===row.id)grid.edit(grid.cell(row,focusedCell.column.id));return rowElement}))}}if(!column)column={};column.editor=editor=editor||column.editor||
"text";column.editOn=editOn=editOn||column.editOn;isWidget=typeof editor!="string";if(column.widgetArgs){kernel.deprecated("column.widgetArgs","use column.editorArgs instead","dgrid 0.4");column.editorArgs=column.widgetArgs}aspect.after(column,"init",editOn?function(){commonInit(column);column.editorInstance=createSharedEditor(column,originalRenderCell)}:function(){var grid=column.grid;commonInit(column);if(isWidget)listeners.push(aspect.before(grid,"removeRow",function(rowElement){var cellElement=
grid.cell(rowElement,column.id).element,widget=cellElement&&(cellElement.contents||cellElement).widget;if(widget){grid._editorFocusoutHandle.pause();widget.destroyRecursive()}}))});aspect.after(column,"destroy",function(){arrayUtil.forEach(listeners,function(l){l.remove()});if(column._editorBlurHandle)column._editorBlurHandle.remove();if(editOn&&isWidget)column.editorInstance.destroyRecursive();column.grid.edit=null});column.renderCell=editOn?function(object,value,cell,options){if(!options||!options.alreadyHooked)on(cell.tagName==
"TD"?cell:cell.parentNode,editOn,function(){activeOptions=options;column.grid.edit(this)});return originalRenderCell.call(column,object,value,cell,options)}:function(object,value,cell,options){if(!column.canEdit||column.canEdit(object,value)){var cmp=createEditor(column);cmp.object=object;showEditor(cmp,column,cell,value);cell[isWidget?"widget":"input"]=cmp}else return originalRenderCell.call(column,object,value,cell,options)};return column}})},"dojo/rpc/JsonService":function(){define("dojo/rpc/JsonService",
["../_base/declare","../_base/Deferred","../_base/json","../_base/lang","../_base/xhr","./RpcService"],function(declare,Deferred,json,lang,xhr,RpcService){return declare("dojo.rpc.JsonService",RpcService,{bustCache:false,contentType:"application/json-rpc",lastSubmissionId:0,callRemote:function(method,params){var deferred=new Deferred;this.bind(method,params,deferred);return deferred},bind:function(method,parameters,deferredRequestHandler,url){var def=xhr.post({url:url||this.serviceUrl,postData:this.createRequest(method,
parameters),contentType:this.contentType,timeout:this.timeout,handleAs:"json-comment-optional"});def.addCallbacks(this.resultCallback(deferredRequestHandler),this.errorCallback(deferredRequestHandler))},createRequest:function(method,params){var req={"params":params,"method":method,"id":++this.lastSubmissionId};return json.toJson(req)},parseResults:function(obj){if(lang.isObject(obj)){if("result"in obj)return obj.result;if("Result"in obj)return obj.Result;if("ResultSet"in obj)return obj.ResultSet}return obj}})})},
"xapp/utils/StoreUtils":function(){define("xapp/utils/StoreUtils",["dojo/_base/declare","xapp/utils","xapp/types"],function(declare,utils,types){utils.deleteStoreItemById=function(store,itemIdAsString){var found=false;store.fetch({query:{id:itemIdAsString},queryOptions:{"deep":true},onComplete:function(items){for(var i=0;i<items.length;i++){var item=items[i];store.deleteItem(item);store.save();found=true;break}}});return found};utils.addCIOverride=function(store,item){var result=null;if(item){result=
store.newItem(item);store.save()}return result};utils.getPageCIOverrideByCIId=function(store,pageid,ciId){var res=null;store.fetch({query:{pageId:pageid,dstId:ciId},queryOptions:{"deep":true},onComplete:function(items){if(items!=null)res=items.length>0?items[0]:null}});return res};utils.getCIPlatformOverride=function(store,pageid,ciId,dstIdStr){return utils.getPageCIOverrideByCIIdAndRefGroup(store,pageid,ciId,types.CIOverrideRefGroup.PLATFORM,dstIdStr)};utils.getPageCIOverrideByCIIdAndRefGroup=function(store,
pageid,ciId,refGroup,dstIdStr){var res=null;store.fetch({query:{pageId:pageid,dstId:ciId,refGroupStr:refGroup,dstIdStr:dstIdStr},queryOptions:{"deep":true},onComplete:function(items){if(items!=null)res=items.length>0?items[0]:null}});return res};utils.getStyleOverride=function(store,sourceType,dsUid,contentRef,value,dataItem){var override=null;if(value!=="LayoutContent")override=utils.queryStore(store,{sourceType:sourceType,dataSource:dsUid||"notset",contentRefStr:contentRef,dstIdStr:value},true);
else override=utils.queryStore(store,{sourceType:sourceType,dataSource:dsUid||"notset",dstIdStr:value},true);if(override==null&&dataItem!=null){var groupId=dataItem["groupId"];if(groupId==null){var _firstItem=utils.getFirstItem(dataItem);if(_firstItem&&_firstItem["groupId"]!=null)groupId=_firstItem["groupId"]}if(groupId==null)return override;var _parentType=sourceType;if(isNaN(_parentType)){_parentType=""+_parentType;_parentType=ctx.getConnectManager().getParentType(_parentType);if(_parentType!=null){override=
utils.getStyleOverride(store,_parentType,dsUid,groupId,value,null);if(override)return override}}else{var groupType=utils.getGroupType(_parentType);if(groupType!=types.sourceType.Unkown)override=utils.getStyleOverride(store,groupType,dsUid,""+groupId,value,null);if(override)return override}}return override};utils.getMetaDataByKey=function(store,key){var res=null;store.fetch({query:{id:key},queryOptions:{"deep":true},onComplete:function(items){res=items.length>0?items[0]:null}});return res};utils.getPageCIOverrides=
function(store,pageid){return utils.queryStoreEx(store,{pageId:pageid})};utils.getAppDataElementById=function(store,name){return utils.queryStore(store,{id:name})};utils.getPageDataByParent=function(store,parent){return utils.queryStoreEx(store,{parent:parent})};utils.getAppDataElementsByTypeAndParent=function(store,type,parent){return utils.queryStoreEx(store,{parent:parent,type:type})};utils.getElementByUIDStrAndContentType=function(store,uidStr,contentType){var res=null;store.fetch({query:{uidStr:uidStr},
queryOptions:{"deep":true},onComplete:function(items){for(var i=0;i<items.length;i++){var item=items[i];if(item.contentType&&utils.toString(item.contentType)==contentType)res=item}}});return res};utils.getElementByUIDAndContentType=function(store,uid,contentType){var res=null;store.fetch({query:{uid:uid},queryOptions:{"deep":true},onComplete:function(items){for(var i=0;i<items.length;i++){var item=items[i];if(item.contentType&&utils.toString(item.contentType)==contentType)res=item}}});return res};
utils.getElementByUID=function(store,uid){return utils.queryStore(store,{uid:uid})};utils.getStoreItemByName=function(store,id){var res=null;store.fetch({query:{name:id},queryOptions:{"deep":true},onComplete:function(items){res=items.length>0?items[0]:null}});return res};utils.getStoreItemById=function(store,id){return utils.queryStoreEx(store,{id:id})};utils.getAppDataElementByIdAndType=function(store,id,type){return utils.queryStore(store,{uid:id,type:type})};utils.getElementsByType=function(store,
type){return utils.queryStoreEx(store,{type:type})};utils.queryStoreEx=function(store,query,nullEmpty){if(store instanceof dojo.store.Memory)return utils.queryMemoryStoreEx(store,query);var res=null;store.fetch({query:query,queryOptions:{"deep":true},onComplete:function(items){res=items}});if(nullEmpty!=null&&nullEmpty===true)if(res&&res.length==0)return null;return res};utils.queryStore=function(store,query,nullEmpty){if(store instanceof dojo.store.Memory)return utils.queryMemoryStoreSingle(store,
query);var res=utils.queryStoreEx(store,query);if(res&&res.length==1)return res[0];if(nullEmpty!=null&&nullEmpty===true)if(res&&res.length==0)return null;return res};utils.queryMemoryStoreEx=function(store,query){var result=[];store.query(query).forEach(function(entry){result.push(entry)});return result};utils.queryMemoryStoreSingle=function(store,query){var result=utils.queryMemoryStoreEx(store,query);if(result.length==1)return result[0];return result};return utils})},"xapp/manager/ManagerBase":function(){define("xapp/manager/ManagerBase",
["dojo/_base/declare","dojo/Stateful"],function(declare,Stateful){return declare("xapp.types.ManagerBase",[Stateful],{ctx:null})})},"xas/factory/WidgetFactory":function(){define(["dojo/_base/declare","dojo/dom-class","xas/factory","xapp/utils","xas/utils","xapp/types"],function(declare,domClass,factory,utils,xutils,types){factory.createColorPicker=function(dstNode,delegate,initialColor,name,declaration,rule,sheet){var thiz=delegate;dstNode["onclick"]=function(e){e=e||window.event;colorPicker(e);colorPicker.cP["delegate"]=
thiz;colorPicker.cP["name"]=name;colorPicker.cP["declaration"]=declaration;colorPicker.cP["rule"]=rule;colorPicker.cP["sheet"]=sheet;colorPicker.cP.style.zIndex=100;colorPicker.importRGB(initialColor);return colorPicker}};factory.createCheckBox=function(dstNode,style,labelText,value,onClickCB,delegate,checked,toolTipText,className){var anchor=dojo.doc.createElement("DIV",{});var wButton=new dijit.form.CheckBox({value:value?value:"",style:""+style||"",checked:checked!=null?checked:false},dojo.doc.createElement("DIV"));
anchor.appendChild(wButton.domNode);var label=dojo.create("LABEL",{innerHTML:labelText+"",style:""+style+"margin-right:3px;"||"",id:""+wButton.id+"Label"});anchor.appendChild(label);dstNode.appendChild(anchor);if(onClickCB&&delegate)dojo.connect(wButton,"onClick",function(item){onClickCB(delegate,wButton)});if(toolTipText)var tt=new dijit.Tooltip({innerHTML:toolTipText,showDelay:500,connectId:[""+wButton.id+"Label"]});if(className)domClass.add(anchor,className);return wButton};factory.createEditBox=
function(dstNode,style,labelText,value,onClickCB,delegate){var anchor=dojo.doc.createElement("DIV",{"className":"labelRoot"});var label=null;if(labelText!=null)label=dojo.create("LABEL",{innerHTML:labelText+"",style:""+style||""},anchor);var wButton=new dijit.form.TextBox({value:value?value:"",style:""+style||""},dojo.doc.createElement("DIV"));anchor.appendChild(wButton.domNode);dstNode.appendChild(anchor);domClass.add(anchor,"labelRoot");if(label)wButton["labelNode"]=label;if(onClickCB&&delegate)dojo.connect(wButton,
"onClick",function(item){onClickCB(delegate,wButton)});return wButton};factory.createValidationTextBox=function(dstNode,style,labelText,value,validator,delegate,invalidMessage,missingMessage,toolTipPosition){var anchor=dojo.doc.createElement("DIV",{"className":"labelRoot"});var label=dojo.create("LABEL",{innerHTML:labelText+"",style:""+style||""},anchor);var wButton=new dijit.form.ValidationTextBox({value:value?value:"",style:""+style||"",promptMessage:"Enter new file name",validator:validator,required:true,
delegate:delegate,toolTipPosition:toolTipPosition||["after-centered","before-centered"]},dojo.doc.createElement("DIV"));anchor.appendChild(wButton.domNode);dstNode.appendChild(anchor);domClass.add(anchor,"labelRoot");return wButton};factory.createButton=function(dstNode,iconClass,buttonClass,style,label,onClickCB,delegate){var anchor=dojo.doc.createElement("DIV",{});var wButton=new dijit.form.ToggleButton({role:"button",showLabel:label?true:false,label:label?label:"",checked:true,iconClass:""+iconClass||
"",style:""+style||""},anchor);dstNode.appendChild(wButton.domNode);if(onClickCB&&delegate)dojo.connect(wButton,"onClick",function(item){onClickCB(delegate,wButton)});wButton.startup();if(buttonClass&&buttonClass.length>0)domClass.add(wButton.domNode,buttonClass);return wButton};factory.createToolbarButton=function(dstNode,iconClass,buttonClass,style,label,onClickCB,delegate){var anchor=dojo.doc.createElement("DIV",{});var wButton=new dijit.form.Button({role:"button",showLabel:label?true:false,label:label?
label:"",checked:true,iconClass:""+iconClass||"",style:""+style||""},anchor);dstNode.appendChild(wButton.domNode);if(onClickCB&&delegate)dojo.connect(wButton,"onClick",function(item){onClickCB(delegate,wButton)});wButton.startup();if(buttonClass&&buttonClass.length>0)domClass.add(wButton.domNode,buttonClass);return wButton};factory.createWidgetData=function(data,value){var res={type:"",nativeType:null,props:{options:[]},title:"NoTitle",node:null,autocomplete:true};res.type=xutils.getWidgetType(data.type);
var name=utils.toString(data.name);var _title=utils.toString(data.title);if(utils.isValidString(_title)&&_title.length>0&&_title[0].length>0)name=_title;if(data.type==types.ECIType.ENUMERATION){xutils.populateSelectWidgetOptionsForEnumType(data.enumType,res.props.options,value);if(data.enumType==types.ECMTypes.ContentSource){res.type="DataWidget";res.props.value=utils.toString(data.title)}if(data.enumType==types.ECMTypes.BannerSource){res.type="BannerWidget";res.props.value=utils.toString(data.title)}if(data.enumType==
types.ECMTypes.Layout)res.type="LayoutWidget"}if(data.type==types.ECIType.STRING){res.props.value=data.value;res.props.prevValue=data.value;res.type="TextWidget";res.nativeType="TextBox";res.autocomplete=true}if(data.type==types.ECIType.BOOL){res.props["checked"]=utils.getBooleanValue(data.value);res.props.value=data.value;res.props.prevValue=data.value;res.type="SelectWidget";res.nativeType="CheckBox"}if(data.type==types.ECIType.IMAGE){res.props.value=data.value;res.type="ImageWidget";if(name=="BACKGROUND")name=
"Background"}if(data.type==types.ECIType.FLAGS){res.props.value=data.value;res.type="FlagsWidget"}if(data.type==types.ECIType.ICON){res.props.value=data.value;res.type="IconWidget"}if(data.type==types.ECIType.BANNER){if(!sctx.getApplication().hasXASFeature(xas.types.XASFeature.Banner))return null;res.props.value=data.value;res.type="BannerWidget";name="Banner 1"}if(data.type==types.ECIType.BANNER2){if(!sctx.getApplication().hasXASFeature(xas.types.XASFeature.Banner2))return null;res.props.value=data.value;
res.type="BannerWidget2";name="Banner 2"}if(data.type==types.ECIType.LOGO){if(!sctx.getApplication().hasXASFeature(xas.types.XASFeature.Logo))return null;res.props.value=data.value;res.type="LogoWidget"}if(data.type==types.ECIType.REFERENCE){res.props.disabled=!data.enabled;res.props.innerHTML="Select"}res.title=name;if(res.title==undefined);return res};factory.createWidgetsFromArray=function(data,changeHandler,pageData,showInvisible){if(data==null)return null;var res=new Array;for(var i=0;i<data.length;i++){var inDef=
data[i];if(!inDef)continue;if(showInvisible||inDef.visible[0]==true){var wData=factory.createWidgetData(inDef,inDef.value);if(!wData)continue;var widget=factory.createDijit(wData,changeHandler,pageData);if(!widget)continue;widget["userData"]=inDef;widget["pageData"]=pageData;widget["order"]=i;if(widget.nativeWidget){widget.nativeWidget["userData"]=inDef;widget.nativeWidget["pageData"]=pageData}res.push(widget)}}res.sort(function(a,b){var orderA=utils.toInt(a.userData.order);var orderB=utils.toInt(b.userData.order);
return orderA-orderB});return res};factory.createDijit=function(json,onChangeHander,pageData){if(!json.type){0&&console.warn("type is missing!");return null}if(json.type=="DataWidget")return new xas.widgets.DataWidget({preload:true,title:"Content Source",value:json.props.value,oriValue:json.props.oriValue,pageData:pageData,href:"templates/DataWidget.html"});if(json.type=="ImageWidget")return new xas.widgets.ImageWidget({preload:true,title:json.title,pageData:pageData,href:"templates/ImageWidget.html"});
if(json.type=="IconWidget")return new xas.widgets.IconWidget({preload:true,title:json.title,pageData:pageData,href:"templates/IconWidget.html"});if(json.type=="BannerWidget")return new xas.widgets.BannerWidget({preload:true,title:json.title,pageData:pageData,value:json.props.value});if(json.type=="FlagsWidget")return new xas.widgets.FlagsWidget({preload:true,title:json.title,pageData:pageData,ciData:pageData,value:json.props.value});if(json.type=="BannerWidget2")return new xas.widgets.BannerWidget2({preload:true,
title:json.title,pageData:pageData,value:json.props.value});if(json.type=="LogoWidget")return new xas.widgets.LogoWidget({preload:true,title:json.title,pageData:pageData,href:"templates/LogoWidget.html"});var type=json.type;if(json.nativeType)type=json.nativeType;var cls=dojo.getObject(type,false,dijit.form);if(!cls){cls=dojo.getObject(type,false,dijit);if(!cls)cls=dojo.getObject(type,false)}if(!cls)cls=dojo.getObject(type,false,xas.widgets);if(!cls)throw new Error("cannot find your widget type!");
var myDijit=new cls(json.props,json.node);var resultWidget=myDijit;if(json.type=="SelectWidget")resultWidget=xas.widgets.SelectWidget({title:json.title,nativeWidget:myDijit});if(json.type=="TextWidget")resultWidget=xas.widgets.SelectWidget({title:json.title,nativeWidget:myDijit});var changeWidget=myDijit;if(resultWidget.nativeWidget)changeWidget=null;if(changeWidget)if(!myDijit instanceof dijit.form.CheckBox)dojo.connect(changeWidget,"onChange",function(item){if(onChangeHander&&onChangeHander.widgetChanged)onChangeHander.widgetChanged(this)});
if(!myDijit instanceof dijit.form.CheckBox&&myDijit instanceof dijit.form.Button)dojo.connect(resultWidget,"onClick",function(item){if(onChangeHander&&onChangeHander.widgetChanged)onChangeHander.widgetChanged(this)});return resultWidget};return factory})},"dijit/layout/ContentPane":function(){define("dijit/layout/ContentPane",["dojo/_base/kernel","dojo/_base/lang","../_Widget","../_Container","./_ContentPaneResizeMixin","dojo/string","dojo/html","dojo/i18n!../nls/loading","dojo/_base/array","dojo/_base/declare",
"dojo/_base/Deferred","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/_base/xhr","dojo/i18n","dojo/when"],function(kernel,lang,_Widget,_Container,_ContentPaneResizeMixin,string,html,nlsLoading,array,declare,Deferred,dom,domAttr,domConstruct,xhr,i18n,when){return declare("dijit.layout.ContentPane",[_Widget,_Container,_ContentPaneResizeMixin],{href:"",content:"",extractContent:false,parseOnLoad:true,parserScope:kernel._scopeName,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"\x3cspan class\x3d'dijitContentPaneLoading'\x3e\x3cspan class\x3d'dijitInline dijitIconLoading'\x3e\x3c/span\x3e${loadingState}\x3c/span\x3e",
errorMessage:"\x3cspan class\x3d'dijitContentPaneError'\x3e\x3cspan class\x3d'dijitInline dijitIconError'\x3e\x3c/span\x3e${errorState}\x3c/span\x3e",isLoaded:false,baseClass:"dijitContentPane",ioArgs:{},onLoadDeferred:null,_setTitleAttr:null,stopParser:true,template:false,markupFactory:function(params,node,ctor){var self=new ctor(params,node);return!self.href&&self._contentSetter&&self._contentSetter.parseDeferred&&!self._contentSetter.parseDeferred.isFulfilled()?self._contentSetter.parseDeferred.then(function(){return self}):
self},create:function(params,srcNodeRef){if((!params||!params.template)&&srcNodeRef&&!("href"in params)&&!("content"in params)){srcNodeRef=dom.byId(srcNodeRef);var df=srcNodeRef.ownerDocument.createDocumentFragment();while(srcNodeRef.firstChild)df.appendChild(srcNodeRef.firstChild);params=lang.delegate(params,{content:df})}this.inherited(arguments,[params,srcNodeRef])},postMixInProperties:function(){this.inherited(arguments);var messages=i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=
string.substitute(this.loadingMessage,messages);this.errorMessage=string.substitute(this.errorMessage,messages)},buildRendering:function(){this.inherited(arguments);if(!this.containerNode)this.containerNode=this.domNode;this.domNode.removeAttribute("title")},startup:function(){this.inherited(arguments);if(this._contentSetter)array.forEach(this._contentSetter.parseResults,function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true}},this)},_startChildren:function(){array.forEach(this.getChildren(),
function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true}});if(this._contentSetter)array.forEach(this._contentSetter.parseResults,function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true}},this)},setHref:function(href){kernel.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.","","2.0");return this.set("href",href)},_setHrefAttr:function(href){this.cancel();
this.onLoadDeferred=new Deferred(lang.hitch(this,"cancel"));this.onLoadDeferred.then(lang.hitch(this,"onLoad"));this._set("href",href);if(this.preload||this._created&&this._isShown())this._load();else this._hrefChanged=true;return this.onLoadDeferred},setContent:function(data){kernel.deprecated("dijit.layout.ContentPane.setContent() is deprecated.  Use set('content', ...) instead.","","2.0");this.set("content",data)},_setContentAttr:function(data){this._set("href","");this.cancel();this.onLoadDeferred=
new Deferred(lang.hitch(this,"cancel"));if(this._created)this.onLoadDeferred.then(lang.hitch(this,"onLoad"));this._setContent(data||"");this._isDownloaded=false;return this.onLoadDeferred},_getContentAttr:function(){return this.containerNode.innerHTML},cancel:function(){if(this._xhrDfd&&this._xhrDfd.fired==-1)this._xhrDfd.cancel();delete this._xhrDfd;this.onLoadDeferred=null},destroy:function(){this.cancel();this.inherited(arguments)},destroyRecursive:function(preserveDom){if(this._beingDestroyed)return;
this.inherited(arguments)},_onShow:function(){this.inherited(arguments);if(this.href)if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow))return this.refresh()},refresh:function(){this.cancel();this.onLoadDeferred=new Deferred(lang.hitch(this,"cancel"));this.onLoadDeferred.then(lang.hitch(this,"onLoad"));this._load();return this.onLoadDeferred},_load:function(){this._setContent(this.onDownloadStart(),true);var self=this;var getArgs={preventCache:this.preventCache||this.refreshOnShow,
url:this.href,handleAs:"text"};if(lang.isObject(this.ioArgs))lang.mixin(getArgs,this.ioArgs);var hand=this._xhrDfd=(this.ioMethod||xhr.get)(getArgs),returnedHtml;hand.then(function(html){returnedHtml=html;try{self._isDownloaded=true;return self._setContent(html,false)}catch(err){self._onError("Content",err)}},function(err){if(!hand.canceled)self._onError("Download",err);delete self._xhrDfd;return err}).then(function(){self.onDownloadEnd();delete self._xhrDfd;return returnedHtml});delete this._hrefChanged},
_onLoadHandler:function(data){this._set("isLoaded",true);try{this.onLoadDeferred.resolve(data)}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message)}},_onUnloadHandler:function(){this._set("isLoaded",false);try{this.onUnload()}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message)}},destroyDescendants:function(preserveDom){if(this.isLoaded)this._onUnloadHandler();var setter=this._contentSetter;array.forEach(this.getChildren(),
function(widget){if(widget.destroyRecursive)widget.destroyRecursive(preserveDom);else if(widget.destroy)widget.destroy(preserveDom);widget._destroyed=true});if(setter){array.forEach(setter.parseResults,function(widget){if(!widget._destroyed){if(widget.destroyRecursive)widget.destroyRecursive(preserveDom);else if(widget.destroy)widget.destroy(preserveDom);widget._destroyed=true}});delete setter.parseResults}if(!preserveDom)domConstruct.empty(this.containerNode);delete this._singleChild},_setContent:function(cont,
isFakeContent){this.destroyDescendants();var setter=this._contentSetter;if(!(setter&&setter instanceof html._ContentSetter))setter=this._contentSetter=new html._ContentSetter({node:this.containerNode,_onError:lang.hitch(this,this._onError),onContentError:lang.hitch(this,function(e){var errMess=this.onContentError(e);try{this.containerNode.innerHTML=errMess}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e)}})});var setterParams=lang.mixin({cleanContent:this.cleanContent,
extractContent:this.extractContent,parseContent:!cont.domNode&&this.parseOnLoad,parserScope:this.parserScope,startup:false,dir:this.dir,lang:this.lang,textDir:this.textDir},this._contentSetterParams||{});var p=setter.set(lang.isObject(cont)&&cont.domNode?cont.domNode:cont,setterParams);var self=this;return when(p&&p.then?p:setter.parseDeferred,function(){delete self._contentSetterParams;if(!isFakeContent){if(self._started){self._startChildren();self._scheduleLayout()}self._onLoadHandler(cont)}})},
_onError:function(type,err,consoleText){this.onLoadDeferred.reject(err);var errText=this["on"+type+"Error"].call(this,err);if(consoleText)console.error(consoleText,err);else if(errText)this._setContent(errText,true)},onLoad:function(){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage},onContentError:function(){},onDownloadError:function(){return this.errorMessage},onDownloadEnd:function(){}})})},"url:dijit/layout/templates/TabContainer.html":'\x3cdiv class\x3d"dijitTabContainer"\x3e\n\t\x3cdiv class\x3d"dijitTabListWrapper" data-dojo-attach-point\x3d"tablistNode"\x3e\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"tablistSpacer" class\x3d"dijitTabSpacer ${baseClass}-spacer"\x3e\x3c/div\x3e\n\t\x3cdiv class\x3d"dijitTabPaneWrapper ${baseClass}-container" data-dojo-attach-point\x3d"containerNode"\x3e\x3c/div\x3e\n\x3c/div\x3e\n',
"dojo/mouse":function(){define("dojo/mouse",["./_base/kernel","./on","./has","./dom","./_base/window"],function(dojo,on,has,dom,win){has.add("dom-quirks",win.doc&&win.doc.compatMode=="BackCompat");has.add("events-mouseenter",win.doc&&"onmouseenter"in win.doc.createElement("div"));has.add("events-mousewheel",win.doc&&"onmousewheel"in win.doc);var mouseButtons;if(has("dom-quirks")&&has("ie")||!has("dom-addeventlistener"))mouseButtons={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,button){return e.button&
button},isLeft:function(e){return e.button&1},isMiddle:function(e){return e.button&4},isRight:function(e){return e.button&2}};else mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,button){return e.button==button},isLeft:function(e){return e.button==0},isMiddle:function(e){return e.button==1},isRight:function(e){return e.button==2}};dojo.mouseButtons=mouseButtons;function eventHandler(type,selectHandler){var handler=function(node,listener){return on(node,type,function(evt){if(selectHandler)return selectHandler(evt,
listener);if(!dom.isDescendant(evt.relatedTarget,node))return listener.call(this,evt)})};handler.bubble=function(select){return eventHandler(type,function(evt,listener){var target=select(evt.target);var relatedTarget=evt.relatedTarget;if(target&&target!=(relatedTarget&&relatedTarget.nodeType==1&&select(relatedTarget)))return listener.call(target,evt)})};return handler}var wheel;if(has("events-mousewheel"))wheel="mousewheel";else wheel=function(node,listener){return on(node,"DOMMouseScroll",function(evt){evt.wheelDelta=
-evt.detail;listener.call(this,evt)})};return{_eventHandler:eventHandler,enter:eventHandler("mouseover"),leave:eventHandler("mouseout"),wheel:wheel,isLeft:mouseButtons.isLeft,isMiddle:mouseButtons.isMiddle,isRight:mouseButtons.isRight}})},"url:cbtree/templates/cbtreeNode.html":'\x3cdiv class\x3d"dijitTreeNode" role\x3d"presentation"\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"rowNode" class\x3d"dijitTreeRow" role\x3d"presentation"\x3e\n\t\t\x3cdiv data-dojo-attach-point\x3d"indentNode" class\x3d"dijitInline"\x3e\x3c/div\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"expandoNode" class\x3d"dijitTreeExpando" role\x3d"presentation" /\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"expandoNodeText" class\x3d"dijitExpandoText" role\x3d"presentation"\x3e\x3c/span\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"checkBoxNode" class\x3d"cbtreeCheckBox" role\x3d"presentation"\x3e\x3c/span\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"contentNode" class\x3d"dijitTreeContent" role\x3d"presentation"\x3e\n\t\t\t\x3cimg src\x3d"${_blankGif}" alt\x3d"" data-dojo-attach-point\x3d"iconNode" class\x3d"dijitIcon dijitTreeIcon" role\x3d"presentation"/\x3e\n\t\t\t\x3cspan data-dojo-attach-point\x3d"labelNode,focusNode" class\x3d"dijitTreeLabel" role\x3d"treeitem" tabindex\x3d"-1" aria-selected\x3d"false"\x3e\x3c/span\x3e\n\t\t\x3c/span\x3e\n\t\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"containerNode" class\x3d"dijitTreeNodeContainer" role\x3d"presentation" style\x3d"display: none;"\x3e\x3c/div\x3e\n\x3c/div\x3e\n',
"dijit/_editor/plugins/FontChoice":function(){define("dijit/_editor/plugins/FontChoice",["require","dojo/_base/array","dojo/_base/declare","dojo/dom-construct","dojo/i18n","dojo/_base/lang","dojo/store/Memory","../../registry","../../_Widget","../../_TemplatedMixin","../../_WidgetsInTemplateMixin","../../form/FilteringSelect","../_Plugin","../range","dojo/i18n!../nls/FontChoice"],function(require,array,declare,domConstruct,i18n,lang,MemoryStore,registry,_Widget,_TemplatedMixin,_WidgetsInTemplateMixin,
FilteringSelect,_Plugin,rangeapi){var _FontDropDown=declare("dijit._editor.plugins._FontDropDown",[_Widget,_TemplatedMixin,_WidgetsInTemplateMixin],{label:"",plainText:false,templateString:"\x3cspan style\x3d'white-space: nowrap' class\x3d'dijit dijitReset dijitInline'\x3e"+"\x3clabel class\x3d'dijitLeft dijitInline' for\x3d'${selectId}'\x3e${label}\x3c/label\x3e"+"\x3cinput data-dojo-type\x3d'../../form/FilteringSelect' required\x3d'false' "+'data-dojo-props\x3d\'labelType:"html", labelAttr:"label", searchAttr:"name"\' '+
"tabIndex\x3d'-1' id\x3d'${selectId}' data-dojo-attach-point\x3d'select' value\x3d''/\x3e"+"\x3c/span\x3e",contextRequire:require,postMixInProperties:function(){this.inherited(arguments);this.strings=i18n.getLocalization("dijit._editor","FontChoice");this.label=this.strings[this.command];this.id=registry.getUniqueId(this.declaredClass.replace(/\./g,"_"));this.selectId=this.id+"_select";this.inherited(arguments)},postCreate:function(){this.select.set("store",new MemoryStore({idProperty:"value",data:array.map(this.values,
function(value){var name=this.strings[value]||value;return{label:this.getLabel(value,name),name:name,value:value}},this)}));this.select.set("value","",false);this.disabled=this.select.get("disabled")},_setValueAttr:function(value,priorityChange){priorityChange=priorityChange!==false;this.select.set("value",array.indexOf(this.values,value)<0?"":value,priorityChange);if(!priorityChange)this.select._lastValueReported=null},_getValueAttr:function(){return this.select.get("value")},focus:function(){this.select.focus()},
_setDisabledAttr:function(value){this._set("disabled",value);this.select.set("disabled",value)}});var _FontNameDropDown=declare("dijit._editor.plugins._FontNameDropDown",_FontDropDown,{generic:false,command:"fontName",postMixInProperties:function(){if(!this.values)this.values=this.generic?["serif","sans-serif","monospace","cursive","fantasy"]:["Arial","Times New Roman","Comic Sans MS","Courier New"];this.inherited(arguments)},getLabel:function(value,name){if(this.plainText)return name;else return"\x3cdiv style\x3d'font-family: "+
value+"'\x3e"+name+"\x3c/div\x3e"},_setValueAttr:function(value,priorityChange){priorityChange=priorityChange!==false;if(this.generic){var map={"Arial":"sans-serif","Helvetica":"sans-serif","Myriad":"sans-serif","Times":"serif","Times New Roman":"serif","Comic Sans MS":"cursive","Apple Chancery":"cursive","Courier":"monospace","Courier New":"monospace","Papyrus":"fantasy","Estrangelo Edessa":"cursive","Gabriola":"fantasy"};value=map[value]||value}this.inherited(arguments,[value,priorityChange])}});
var _FontSizeDropDown=declare("dijit._editor.plugins._FontSizeDropDown",_FontDropDown,{command:"fontSize",values:[1,2,3,4,5,6,7],getLabel:function(value,name){if(this.plainText)return name;else return"\x3cfont size\x3d"+value+"'\x3e"+name+"\x3c/font\x3e"},_setValueAttr:function(value,priorityChange){priorityChange=priorityChange!==false;if(value.indexOf&&value.indexOf("px")!=-1){var pixels=parseInt(value,10);value={10:1,13:2,16:3,18:4,24:5,32:6,48:7}[pixels]||value}this.inherited(arguments,[value,
priorityChange])}});var _FormatBlockDropDown=declare("dijit._editor.plugins._FormatBlockDropDown",_FontDropDown,{command:"formatBlock",values:["noFormat","p","h1","h2","h3","pre"],postCreate:function(){this.inherited(arguments);this.set("value","noFormat",false)},getLabel:function(value,name){if(this.plainText||value=="noFormat")return name;else return"\x3c"+value+"\x3e"+name+"\x3c/"+value+"\x3e"},_execCommand:function(editor,command,choice){if(choice==="noFormat"){var start;var end;var sel=rangeapi.getSelection(editor.window);
if(sel&&sel.rangeCount>0){var range=sel.getRangeAt(0);var node,tag;if(range){start=range.startContainer;end=range.endContainer;while(start&&start!==editor.editNode&&start!==editor.document.body&&start.nodeType!==1)start=start.parentNode;while(end&&end!==editor.editNode&&end!==editor.document.body&&end.nodeType!==1)end=end.parentNode;var processChildren=lang.hitch(this,function(node,ary){if(node.childNodes&&node.childNodes.length){var i;for(i=0;i<node.childNodes.length;i++){var c=node.childNodes[i];
if(c.nodeType==1)if(editor.selection.inSelection(c)){var tag=c.tagName?c.tagName.toLowerCase():"";if(array.indexOf(this.values,tag)!==-1)ary.push(c);processChildren(c,ary)}}}});var unformatNodes=lang.hitch(this,function(nodes){if(nodes&&nodes.length){editor.beginEditing();while(nodes.length)this._removeFormat(editor,nodes.pop());editor.endEditing()}});var clearNodes=[];if(start==end){var block;node=start;while(node&&node!==editor.editNode&&node!==editor.document.body){if(node.nodeType==1){tag=node.tagName?
node.tagName.toLowerCase():"";if(array.indexOf(this.values,tag)!==-1){block=node;break}}node=node.parentNode}processChildren(start,clearNodes);if(block)clearNodes=[block].concat(clearNodes);unformatNodes(clearNodes)}else{node=start;while(editor.selection.inSelection(node)){if(node.nodeType==1){tag=node.tagName?node.tagName.toLowerCase():"";if(array.indexOf(this.values,tag)!==-1)clearNodes.push(node);processChildren(node,clearNodes)}node=node.nextSibling}unformatNodes(clearNodes)}editor.onDisplayChanged()}}}else editor.execCommand(command,
choice)},_removeFormat:function(editor,node){if(editor.customUndo){while(node.firstChild)domConstruct.place(node.firstChild,node,"before");node.parentNode.removeChild(node)}else{editor.selection.selectElementChildren(node);var html=editor.selection.getSelectedHtml();editor.selection.selectElement(node);editor.execCommand("inserthtml",html||"")}}});var FontChoice=declare("dijit._editor.plugins.FontChoice",_Plugin,{useDefaultCommand:false,_initButton:function(){var clazz={fontName:_FontNameDropDown,
fontSize:_FontSizeDropDown,formatBlock:_FormatBlockDropDown}[this.command],params=this.params;if(this.params.custom)params.values=this.params.custom;var editor=this.editor;this.button=new clazz(lang.delegate({dir:editor.dir,lang:editor.lang},params));this.own(this.button.select.on("change",lang.hitch(this,function(choice){if(this.editor.focused)this.editor.focus();if(this.command=="fontName"&&choice.indexOf(" ")!=-1)choice="'"+choice+"'";if(this.button._execCommand)this.button._execCommand(this.editor,
this.command,choice);else this.editor.execCommand(this.command,choice)})))},updateState:function(){var _e=this.editor;var _c=this.command;if(!_e||!_e.isLoaded||!_c.length)return;if(this.button){var disabled=this.get("disabled");this.button.set("disabled",disabled);if(disabled)return;var value;try{value=_e.queryCommandValue(_c)||""}catch(e){value=""}var quoted=lang.isString(value)&&value.match(/'([^']*)'/);if(quoted)value=quoted[1];if(_c==="formatBlock")if(!value||value=="p"){value=null;var elem;var sel=
rangeapi.getSelection(this.editor.window);if(sel&&sel.rangeCount>0){var range=sel.getRangeAt(0);if(range)elem=range.endContainer}while(elem&&elem!==_e.editNode&&elem!==_e.document){var tg=elem.tagName?elem.tagName.toLowerCase():"";if(tg&&array.indexOf(this.button.values,tg)>-1){value=tg;break}elem=elem.parentNode}if(!value)value="noFormat"}else if(array.indexOf(this.button.values,value)<0)value="noFormat";if(value!==this.button.get("value"))this.button.set("value",value,false)}}});array.forEach(["fontName",
"fontSize","formatBlock"],function(name){_Plugin.registry[name]=function(args){return new FontChoice({command:name,plainText:args.plainText})}});FontChoice._FontDropDown=_FontDropDown;FontChoice._FontNameDropDown=_FontNameDropDown;FontChoice._FontSizeDropDown=_FontSizeDropDown;FontChoice._FormatBlockDropDown=_FormatBlockDropDown;return FontChoice})},"xfile/views/FileFindDialog":function(){define("xfile/views/FileFindDialog",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-style",
"dojo/on","xapp/utils","dojo/dom-attr","xide/widgets/_InsertionMixin","xfile/views/ActionDialog","dojo/dom-geometry","xfile/views/FileFindView"],function(array,declare,html,domStyle,on,utils,domAttr,InsertionMixin,ActionDialog,domGeometry,FileFindView){return declare("xfile.views.FileFindDialog",[ActionDialog],{value:null,view:null,_createFileFindView:function(src){this.view=new FileFindView({className:"fileOperationView",delegate:this,src:src,owner:this.owner,ctx:this.ctx},dojo.doc.createElement("div"));
this.containerNode.appendChild(this.view.domNode);this.view.startup()},getValue:function(){return this.view.getValue()},initWithFilePath:function(src){this.value=src;this._createFileFindView(src);this.addActionButtons();this.fixHeight();this.resize()},startup:function(){this.inherited(arguments);if(this.didLoad)return;this.didLoad=true}})})},"dojo/dnd/Avatar":function(){define("dojo/dnd/Avatar",["../_base/declare","../_base/window","../dom","../dom-attr","../dom-class","../dom-construct","../hccss",
"../query"],function(declare,win,dom,domAttr,domClass,domConstruct,has,query){return declare("dojo.dnd.Avatar",null,{constructor:function(manager){this.manager=manager;this.construct()},construct:function(){var a=domConstruct.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),source=this.manager.source,node,b=domConstruct.create("tbody",null,a),tr=domConstruct.create("tr",null,b),td=domConstruct.create("td",null,tr),k=Math.min(5,this.manager.nodes.length),
i=0;if(has("highcontrast"))domConstruct.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"\x3c"},td);domConstruct.create("span",{innerHTML:source.generateText?this._generateText():""},td);domAttr.set(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}});for(;i<k;++i){if(source.creator)node=source._normalizedCreator(source.getItem(this.manager.nodes[i].id).data,"avatar").node;else{node=this.manager.nodes[i].cloneNode(true);if(node.tagName.toLowerCase()=="tr"){var table=domConstruct.create("table"),
tbody=domConstruct.create("tbody",null,table);tbody.appendChild(node);node=table}}node.id="";tr=domConstruct.create("tr",null,b);td=domConstruct.create("td",null,tr);td.appendChild(node);domAttr.set(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}})}this.node=a},destroy:function(){domConstruct.destroy(this.node);this.node=false},update:function(){domClass.toggle(this.node,"dojoDndAvatarCanDrop",this.manager.canDropFlag);if(has("highcontrast")){var icon=dom.byId("a11yIcon");var text="+";if(this.manager.canDropFlag&&
!this.manager.copy)text="\x3c ";else if(!this.manager.canDropFlag&&!this.manager.copy)text="o";else if(!this.manager.canDropFlag)text="x";icon.innerHTML=text}query("tr.dojoDndAvatarHeader td span"+(has("highcontrast")?" span":""),this.node).forEach(function(node){node.innerHTML=this.manager.source.generateText?this._generateText():""},this)},_generateText:function(){return this.manager.nodes.length.toString()}})})},"xfile/manager/PanelManagerActions":function(){define("xfile/manager/PanelManagerActions",
["dojo/_base/declare","dojo/_base/lang","./PanelManagerBase","xfile/factory","xfile/views/FilePanel","xfile/views/FileTreeView","xide/types","dojox/image/Lightbox","xfile/views/FilePropertyView","xfile/views/FileRenameDialog","xide/widgets/TemplatedWidgetBase","dojox/encoding/digests/SHA1","xide/utils","xide/factory"],function(declare,lang,PanelManagerBase,factory,FilePanel,FileTreeView,types,Lightbox,FilePropertyView,FileRenameDialog,TemplatedWidgetBase,SHA1,utils){return declare("xfile.manager.PanelManagerActions",
null,{onSearchResult:function(sourceView,item,store,panel,data,searchConf){var prevReload=this.config.ALLOWED_ACTIONS.RELOAD;var prevLayout=this.config.PANEL_OPTIONS.ALLOW_LAYOUT_SELECTOR;var prevSource=this.config.PANEL_OPTIONS.ALLOW_SOURCE_SELECTOR;this.config.ALLOWED_ACTIONS.RELOAD=false;this.config.PANEL_OPTIONS.ALLOW_LAYOUT_SELECTOR=false;this.config.PANEL_OPTIONS.ALLOW_SOURCE_SELECTOR=false;var searchPanel=this.openItemAlternate(item,panel);searchPanel.setStaticData(data);try{setTimeout(function(){if(searchPanel.restoreFocus)searchPanel.restoreFocus()},
1E3)}catch(e){console.error("focus crash")}},onFind:function(sourceView,item,store,panel){var path=".";if(item)path=item.path;var thiz=this;var _delegate={delegate:sourceView,onOk:function(dlg){var searchConf=dlg.getValue();var struct={store:store,dst:dlg.getValue(),operation:types.OPERATION.FIND};var cb=_readyCB=function(data){thiz.onSearchResult(sourceView,item,store,panel,data,searchConf)};thiz.ctx.getFileManager().find(dojo.toJson(searchConf),cb)}};var dlg=factory.createFileFindDialog("Find",
path,sourceView,_delegate,this.ctx,this.config);dlg.show();dlg.initWithFilePath(path);dlg.resize();setTimeout(function(){dlg.resize()},1E3)},onPreview:function(item){if(this.config.MEDIA_PICKER)if(this.config.MEDIA_PICKER.editorNode&&this.config.MEDIA_PICKER.editorNodeAfter){var editor=dojo.byId(this.config.MEDIA_PICKER.editorNode);if(editor){var container=new dijit.layout.ContentPane({title:"Preview",region:this.config.MEDIA_PICKER.editorPreviewLayoutZone||"right",splitter:true,closeable:true,className:"contentPreviewPane"});
var main=dijit.registry.byId(this.config.MEDIA_PICKER.editorPreviewTarget)||dijit.registry.byId("main");if(main)main.addChild(container);if(main.selectChild)main.selectChild(container);var content=tinyMCE.activeEditor.getContent({format:"raw"});var ckEditor=xfile.factory.createEditorWithTypeAndContent(this,0,content);container.containerNode.appendChild(ckEditor.domNode);ckEditor.startup()}}},openProperties:function(item,container){if(!this.propertyView)this.propertyView=this._createPropertyView(item,
container);this.propertyView.initWithItem(item)},newItem:function(view,items,dst,store,silent,operation){var thiz=this;var dstPath="/";if(dst&&dst.path&&dst.path!=".")dstPath=dst.path;var _delegate={delegate:view,onOk:function(dlg){var path2=dstPath+dlg.getValue();path2+="";var struct={store:store,dst:dstPath,operation:operation};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);var cb=_readyCB=function(){setTimeout(function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,thiz)},1E3)};var path=
utils.normalizePath(dstPath+"/"+dlg.getValue());if(operation==types.OPERATION.NEW_DIRECTORY)setTimeout(function(){thiz.ctx.getFileManager().mkdir(dst.mount,path,cb)},10);if(operation==types.OPERATION.NEW_FILE)setTimeout(function(){thiz.ctx.getFileManager().mkfile(dst.mount,path,cb)},10)}};var dlg=factory.createNewItemDialog("Create",dst,view,_delegate,this.ctx,this.config,operation);dlg.show();dlg.initWithFileOoperation(items,dst,operation);dlg.resize();setTimeout(function(){dlg.resize()},1E3)},onActionButton:function(button,
item,operation,owner){if(!button||!operation)return;switch(operation){case types.OPERATION.DELETE:var dst=owner.delegate.getCopyDestination();var items=null;if(owner.getCurrentSelection&&owner.getCurrentSelection())items=owner.getCurrentSelection(true);if(items)this.deleteItems(owner,items,dst,owner.store);else this.deleteItems(owner,[item],dst,owner.store);break;case types.OPERATION.EDIT:if(owner&&owner.delegate&&owner.delegate.openItem)owner.delegate.openItem(item);break;case types.OPERATION.PREVIEW:if(this.onPreview)this.onPreview();
break;case types.OPERATION.RENAME:if(owner&&owner.contextMenuHandler&&owner.contextMenuHandler.onRename)owner.contextMenuHandler.onRename(item);break;case types.OPERATION.COPY:var dst=owner.delegate.getCopyDestination();var items=null;if(owner.getCurrentSelection&&owner.getCurrentSelection())items=owner.getCurrentSelection(true);if(items)this.copyItems(owner,items,dst,owner.store);else this.copyItems(owner,[item],dst,owner.store);break;case types.OPERATION.MOVE:var dst=owner.delegate.getCopyDestination();
var items=null;if(owner.getCurrentSelection&&owner.getCurrentSelection())items=owner.getCurrentSelection(true);if(items)this.moveItems(owner,items,dst,owner.store);else this.moveItems(owner,[item],dst,owner.store);break;case types.OPERATION.DOWNLOAD:this.downloadItem(item);break;case types.OPERATION.COMPRESS:var dst=owner.delegate.getCurrentParent();var items=item;if(owner.getCurrentSelection&&owner.getCurrentSelection(true))items=owner.getCurrentSelection(true);this.compressItem(items);break;case types.OPERATION.INFO:this.openProperties(item);
break;case types.OPERATION.NEW_FILE:case types.OPERATION.NEW_DIRECTORY:if(!owner)return;var dst=owner.delegate.getCurrentParent();this.newItem(owner,item,dst,owner.store,false,operation);break;case types.OPERATION.PERMA_LINK:this.onPermaLink();return}},onPermaLink:function(){var link=this.getRootView().getPermaLink();var result=""+window.location.href;if(result.indexOf("mainView")==-1)result+=result.indexOf("?")==-1?"?":"\x26";if(link!=null){var params=utils.urlDecode(result);if(params&&params.mainView){params.mainView=
encodeURIComponent(params.mainView);if(result.indexOf(params.mainView)==-1)console.error("maeh, not found");else result=result.replace(""+params.mainView,link)}else result+=link}result=result.replace("mainView\x3dmainView\x3d","mainView\x3d");alert(result);console.error("get perma link : "+result)},downloadItem:function(src,store){var selection=[];selection.push(src.path);var thiz=this;var downloadUrl=this.config.FILE_SERVICE;downloadUrl="./index.php?option\x3dcom_xappcommander\x26service\x3dXCOM_Directory_Service.get\x26path\x3d"+
src.path+"\x26callback\x3dasdf";if(this.config.DOWNLOAD_URL!=null){downloadUrl=""+this.config.DOWNLOAD_URL;downloadUrl+="\x26selection\x3d"+src.path+"\x26callback\x3dasdf"}downloadUrl+="\x26mount\x3d"+src.mount;downloadUrl+="\x26raw\x3dhtml";downloadUrl+="\x26attachment\x3dtrue";var hashUrl=downloadUrl.replace("./index.php?","");hashUrl+="\x26"+this.config.RPC_PARAMS.rpcUserField+"\x3d"+this.config.RPC_PARAMS.rpcUserValue;var params=utils.urlDecode(hashUrl);var signature=SHA1._hmac(dojo.toJson(params),
this.config.RPC_PARAMS.rpcSignatureToken,1);downloadUrl+="\x26"+this.config.RPC_PARAMS.rpcUserField+"\x3d"+this.config.RPC_PARAMS.rpcUserValue;downloadUrl+="\x26"+this.config.RPC_PARAMS.rpcSignatureField+"\x3d"+signature;window.open(downloadUrl)},compressItem:function(src,store){var selection=[];if(lang.isArray(src)){var l=src.length;for(var i=0;i<l;i++)selection.push(src[i].path)}else selection.push(src.path);var thiz=this;var dstPath="";var firstItem=src;if(lang.isArray(src)&&src.length>0)firstItem=
src[0];store=store||this.getItemStore(firstItem);var parent=store.getParents(firstItem,true)[0];if(!parent);var struct={store:store,dst:{path:parent?parent.path:"./"},operation:types.OPERATION.COMPRESS};this.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);var cb=_readyCB=function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,thiz)};setTimeout(function(){thiz.ctx.getFileManager().compressItem(firstItem.mount,selection,"zip",cb)},10)},copyItemsEx:function(view,items,dst,store){var thiz=this;
if(!lang.isArray(items))items=[items];var dstPath=utils.normalizePath(dst.mount+"/"+dst.path);var selection=[];var nbItems=0;for(var i=0;i<items.length;i++){var itemPath=utils.normalizePath(items[i].mount+"/"+items[i].path);selection.push(itemPath);nbItems++}var firstItem=items[0];if(!store&&firstItem)store=firstItem._S;var struct={store:store,dst:dst||"/",operation:types.OPERATION.COPY};this.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);var cb=_readyCB=function(){thiz.publish(types.EVENTS.STORE_CHANGED,
struct,thiz)};setTimeout(function(){thiz.ctx.getFileManager().copyItem(selection,dstPath,null,null,1504,cb)},10)},copyItems:function(view,items,dst,store,silent){if(silent===true)return this.copyItemsEx(view,items,dst,store);var selection=[];var nbItems=0;var dstPath=utils.normalizePath(dst.mount+"/"+dst.path);for(var i=0;i<items.length;i++){var itemPath=utils.normalizePath(items[i].mount+"/"+items[i].path);selection.push(itemPath);nbItems++}var thiz=this;var _delegate={delegate:view,onOk:function(dlg){var options=
dlg.getOptions();var struct={store:store,dst:dlg.getValue(),operation:types.OPERATION.COPY};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);var cb=_readyCB=function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,thiz)};setTimeout(function(){thiz.ctx.getFileManager().copyItem(selection,dstPath,options.includes,options.excludes,options.mode,cb)},10)}};var a=this.translate("copying");var dlg=factory.createFileOperationDialog(this.translate("copying")+" "+nbItems+" "+this.translate("items"),
selection,dst,view,_delegate,this.ctx,this.config);dlg.show();dlg.initWithFileOoperation(items,dst,"copy");dlg.resize();setTimeout(function(){dlg.resize()},1E3)},getItemStore:function(item){if(item&&item.length>0&&item[0]._S)return item[0]._S;else if(item&&item._S)return item._S;return null},onRename:function(item){var thiz=this;var delegate={delegate:this.delegate,onOk:function(dlg){var newName=null;if(dlg&&dlg.getValue)newName=dlg.getValue();if(newName&&newName.length>0){if(lang.isArray(item))item=
item[0];var store=thiz.store||thiz.getItemStore(item);var parent=store.getParents(item,true)[0];var struct={store:store,dst:parent.path,operation:types.OPERATION.RENAME};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);var cb=_readyCB=function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,thiz)};setTimeout(function(){thiz.ctx.getFileManager().rename(item.mount,item.path,newName,cb)},10)}}};var result=new FileRenameDialog({title:"Attention!",delegate:delegate,className:"fileOperationView"});
result.show();result.initWithFileOoperation(item[0])},moveItem:function(view,src,dst,store,silent){var selection=[];selection.push(src.path);var thiz=this;var parent=this.store.getParents(src,true)[0];var _delegate={delegate:view,onOk:function(dlg){var options=dlg.getOptions();var struct={store:store,dst:dlg.getValue(),operation:types.OPERATION.MOVE};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);var cb=_readyCB=function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,thiz)};setTimeout(function(){thiz.ctx.getFileManager().moveItem(selection,
dlg.getValue(),options.includes,options.excludes,options.mode,cb)},10);if(parent){var struct2={store:store,dst:parent.path,operation:types.OPERATION.MOVE};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct2,thiz);setTimeout(function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct2,thiz)},100)}}};var dlg=factory.createFileOperationDialog(this.translate("moving")+" "+src.path,selection,dst,view,_delegate,this.ctx,this.config);dlg.show();dlg.initWithFileOoperation(src,dst,"move");dlg.resize();setTimeout(function(){dlg.resize()},
1E3)},moveItemsEx:function(view,items,dst,store){if(!lang.isArray(items))items=[items];var selection=[];var nbItems=0;var dstPath=utils.normalizePath(dst.mount+"/"+dst.path);for(var i=0;i<items.length;i++){var itemPath=utils.normalizePath(items[i].mount+"/"+items[i].path);selection.push(itemPath);nbItems++}var firstItem=items[0];if(!store&&firstItem)store=firstItem._S;var parent=this.store.getParents(firstItem,true)[0];var thiz=this;var struct={store:store,dst:dst.path,operation:types.OPERATION.MOVE};
this.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);var cb=_readyCB=function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,thiz);if(parent){var struct2={store:store,dst:parent.path,operation:types.OPERATION.MOVE};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct2,thiz);setTimeout(function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct2,thiz)},100)}};var options={includes:[],excludes:[],mode:1501};setTimeout(function(){thiz.ctx.getFileManager().moveItem(selection,dstPath,options.includes,
options.excludes,options.mode,cb)},10)},moveItems:function(view,items,dst,store,silent){if(silent===true)return this.moveItemsEx(view,items,dst,store);var selection=[];var nbItems=0;var dstPath=utils.normalizePath(dst.mount+"/"+dst.path);for(var i=0;i<items.length;i++){var itemPath=utils.normalizePath(items[i].mount+"/"+items[i].path);selection.push(itemPath);nbItems++}var firstItem=items[0];var parent=this.store.getParents(firstItem,true)[0];var thiz=this;var _delegate={delegate:view,onOk:function(dlg){var options=
dlg.getOptions();var struct={store:store,dst:dlg.getValue(),operation:types.OPERATION.MOVE};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);var cb=_readyCB=function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,thiz);if(parent){var struct2={store:store,dst:parent.path,operation:types.OPERATION.MOVE};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct2,thiz);setTimeout(function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct2,thiz)},100)}};setTimeout(function(){thiz.ctx.getFileManager().moveItem(selection,
dstPath,options.includes,options.excludes,options.mode,cb)},10)}};var dlg=factory.createFileOperationDialog(this.translate("moving")+" "+nbItems+" "+this.translate("items"),selection,dst,view,_delegate,this.ctx,this.config);dlg.show();dlg.initWithFileOoperation(items,dst,"copy");dlg.resize();setTimeout(function(){dlg.resize()},1E3)},deleteItems:function(view,items,dir,store){var selection=[];var nbItems=0;for(var i=0;i<items.length;i++){var dstPath=utils.normalizePath(items[i].mount+"/"+items[i].path);
selection.push(dstPath);nbItems++}var thiz=this;var _delegate={delegate:view,onOk:function(dlg){var struct={store:store,operation:types.OPERATION.DELETE,dst:dir};var cb=_readyCB=function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,thiz)};try{thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz)}catch(e){}setTimeout(function(){thiz.ctx.getFileManager().deleteItems(selection,cb)},10)}};var dlg=factory.createFileDeleteDialog(this.translate("removing")+" "+nbItems+" "+this.translate("items")+
"?",selection,view,_delegate,this.ctx,this.config);dlg.show();dlg.initWithSelection(items,"copy");dlg.resize();setTimeout(function(){dlg.resize()},1E3)},copyItem:function(view,src,dst,store){var selection=[];selection.push(src.path);var thiz=this;var _delegate={delegate:view,onOk:function(dlg){var struct={store:store,dst:dlg.getValue(),operation:types.OPERATION.COPY};thiz.publish(types.EVENTS.BEFORE_STORE_CHANGE,struct,thiz);var cb=_readyCB=function(){thiz.publish(types.EVENTS.STORE_CHANGED,struct,
thiz)};setTimeout(function(){thiz.ctx.getFileManager().copyItem(selection,dlg.getValue(),cb)},10)}};var dlg=factory.createFileOperationDialog(this.translate("copying")+" "+src.path+"",selection,dst,view,_delegate,this.ctx,this.config);dlg.show();dlg.initWithFileOoperation(src,dst,"copy");dlg.resize();setTimeout(function(){dlg.resize()},1E3)}})})},"url:dijit/form/templates/Spinner.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tid\x3d"widget_${id}" role\x3d"presentation"\n\t\x3e\x3cdiv class\x3d"dijitReset dijitButtonNode dijitSpinnerButtonContainer"\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitSpinnerButtonInner" type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t/\x3e\x3cdiv class\x3d"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton"\n\t\t\tdata-dojo-attach-point\x3d"upArrowNode"\n\t\t\t\x3e\x3cdiv class\x3d"dijitArrowButtonInner"\n\t\t\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField" value\x3d"\x26#9650; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/\x3e\x3c/div\n\t\t\x3e\x3c/div\n\t\t\x3e\x3cdiv class\x3d"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton"\n\t\t\tdata-dojo-attach-point\x3d"downArrowNode"\n\t\t\t\x3e\x3cdiv class\x3d"dijitArrowButtonInner"\n\t\t\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField" value\x3d"\x26#9660; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/\x3e\x3c/div\n\t\t\x3e\x3c/div\n\t\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d\'dijitReset dijitValidationContainer\'\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value\x3d"\x26#935; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t/\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitInputContainer"\n\t\t\x3e\x3cinput class\x3d\'dijitReset dijitInputInner\' data-dojo-attach-point\x3d"textbox,focusNode" type\x3d"${type}" data-dojo-attach-event\x3d"onkeydown:_onKeyDown"\n\t\t\trole\x3d"spinbutton" autocomplete\x3d"off" ${!nameAttrSetting}\n\t/\x3e\x3c/div\n\x3e\x3c/div\x3e\n',
"xfile/views/UploadMixin":function(){define("xfile/views/UploadMixin",["dojo/_base/declare","dojo/keys","dojo/has","xapp/widgets/_CSSMixin","dojo/dom-class"],function(declare,keys,has,_CSSMixin,domClass){return dojo.declare("xfiles.views.UploadMixin",[_CSSMixin],{cssClass:"uploadFilesList droparea dropareaHover",buildRendering:function(){this.inherited(arguments)},dragEnter:function(e){e.preventDefault()},dragLeave:function(e){},dragOver:function(e){e.preventDefault()},drop:function(e){var dt=e.dataTransfer;
if(dt){var files=dt.files;if(files){e.preventDefault();if(this.delegate&&this.delegate.onBrowserFilesDropped)this.delegate.onBrowserFilesDropped(this,files)}}},initDND:function(){preview=document.getElementById("preview");dropbox=document.getElementById("dropbox");var thiz=this;window.addEventListener("dragenter",function(e){thiz.dragEnter(e)},true);window.addEventListener("dragleave",function(e){thiz.dragLeave(e)},true);var dstNode=this.containerNode||this.domNode;if(dstNode){dstNode.addEventListener("dragover",
function(e){thiz.dragOver(e)},false);dstNode.addEventListener("drop",function(e){thiz.drop(e)},false)}else console.error("have not drop destination")},startup:function(){this.inherited(arguments);this.initDND()}})})},"dojo/topic":function(){define("dojo/topic",["./Evented"],function(Evented){var hub=new Evented;return{publish:function(topic,event){return hub.emit.apply(hub,arguments)},subscribe:function(topic,listener){return hub.on.apply(hub,arguments)}}})},"xfile/widgets/Evented":function(){define("xfile/widgets/Evented",
["dojo/aspect","dojo/on"],function(aspect,on){function Evented(){this.on=function(type,listener){function onMethod(target,type){var ctor=target.constructor;var onMap=ctor._onMap;if(!onMap){onMap=ctor._onMap={};for(var attr in ctor.prototype)if(/^on/.test(attr))onMap[attr.replace(/^on/,"").toLowerCase()]=attr}var method=onMap[type.toLowerCase()]||"on"+type;return method}return on.parse(this,type,listener,function(target,type){return aspect.after(target,onMethod(target,type),listener,true)})};this.emit=
function(type,event){var args=[this];if(!event.type)event.type=type;args.push.apply(args,arguments);return on.emit.apply(on,args)}}return Evented})},"xide/manager/CIStoreDelegate":function(){define(["dojo/_base/declare","xide/utils"],function(declare,utils){return declare("xide.manager.CIStoreDelegate",null,{uuid:null,appIdentifier:null,appStore:null,ciOverrideStore:null,appService:null,deleteDataItem:function(normalizedItem){var dstStore=this.appStore;var test=""+normalizedItem["id"];var thiz=this;
var theItem=null;dstStore.fetch({query:{id:test},queryOptions:{"deep":true},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(thiz.appService){if(item.qxappTabIdentifier!=null)delete item["qxappTabIdentifier"];thiz.appService.itemDeleted(thiz.ctx.getSession().getAppId(),thiz.ctx.getSession().getUUID(),xas.utils.CIPageToJSON(item));dstStore.deleteItem(item);dstStore.save()}break}}});return theItem},initWithStoreAndAppService:function(store,service,ciOverrideStore){this.appStore=
store;this.appService=service;this.ciOverrideStore=ciOverrideStore},onCIOverrideChanged:function(item){if(this.appService)this.appService.updateCIOverride(this.ctx.getSession().getAppId(),this.ctx.getSession().getUUID(),xas.utils.ciPlatformOverrideToJSON(item));else console.error("have no app service")},deleteCIPlatformOverride:function(item){if(this.appService)this.appService.deleteCIOverride(this.ctx.getSession().getAppId(),this.ctx.getSession().getUUID(),xas.utils.ciPlatformOverrideToJSON(item));
else console.error("have no app service");try{xapp.utils.deleteStoreItemById(this.ciOverrideStore,xapp.utils.toString(item.id))}catch(e){}},onCIPlatformOverrideChanged:function(item){if(this.appService)this.appService.updateCIOverride(this.ctx.getSession().getAppId(),this.ctx.getSession().getUUID(),xas.utils.ciPlatformOverrideToJSON(item));else console.error("have no app service")},onStyleOverrideChanged:function(item){if(this.appService)this.appService.updateCIOverride(this.ctx.getSession().getAppId(),
this.ctx.getSession().getUUID(),xas.utils.ciOverrideToJSON(item));else console.error("have no app service")},onItemChanged:function(id,item){if(this.appService)this.appService.replace(".","$.items[?(@['id']\x3d\x3d"+id+")]","replace",item);else console.error("have no app service")},saveStoreItem:function(item,userData,widget){if(!widget.ciField)item.value=widget.value;else item[""+widget.ciField]=widget.value;this.appStore.save(item);this.onItemChanged(xas.utils.CIDataToJSON(item))},widgetChanged:function(widget){var userData=
widget.userData;var dstStore=this.appStore;var test=""+userData["id"];var testUID=userData["uid"];var parendId=""+userData["parentId"][0];var thiz=this;var theItem=null;var foundItem=false;var storeDestination=null;if(userData.storeDestination){storeDestination=xapp.utils.toString(userData.storeDestination);if(xapp.utils.isValidString(storeDestination)&&storeDestination=="metaDataStore")dstStore=this.ctx.getMetaDataStore()}dstStore.fetch({query:{id:parendId},queryOptions:{"deep":true,testObject:userData},
onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(req.queryOptions.testObject!=null)if(item.inputs!=null&&item.inputs.length>0)theItem=xapp.utils.getCIByUid(item.inputs,req.queryOptions.testObject.uid)}}});if(theItem){this.saveStoreItem(theItem,userData,widget);return theItem}dstStore.fetch({query:{uid:testUID[0]},queryOptions:{"deep":true,testObject:userData},onComplete:function(items,req){for(i=0;i<items.length;i++)var item=items[i]}});dstStore.fetch({query:{uid:"*"},
queryOptions:{"deep":true,testObject:userData},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(item==req.queryOptions.testObject);}}});dstStore.fetch({query:{id:test},queryOptions:{"deep":true},onComplete:function(items,req){for(var i=0;i<items.length;i++){var item=items[i];if(!widget.ciField)item.value=widget.value;else item[""+widget.ciField]=widget.value;theItem=item;dstStore.save(item);thiz.onItemChanged(item.id,xas.utils.CIDataToJSON(item))}}});if(theItem)return;
dstStore.fetch({query:{id:"*"},queryOptions:{"deep":true},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(item.id[0]==test){if(!widget.ciField);theItem=item;dstStore.save(item);thiz.onItemChanged(item.id,xas.utils.CIDataToJSON(item))}}}});if(theItem==null)console.error("null widhet item");return theItem},updateDataItem:function(normalizedItem){if(normalizedItem==null){console.error("no item");return}if(normalizedItem["isUpdating"]!=null)normalizedItem["isUpdating"]=
false;var dstStore=this.appStore;var test=""+normalizedItem["id"];var thiz=this;var theItem=null;var storeDestination=null;if(normalizedItem.storeDestination){storeDestination=utils.toString(normalizedItem.storeDestination);if(utils.isValidString(storeDestination)&&storeDestination=="metaDataStore")dstStore=this.ctx.getMetaDataStore()}dstStore.fetch({query:{id:test},queryOptions:{"deep":true},onComplete:function(items,req){for(var i=0;i<items.length;i++){var item=items[i];item.value=normalizedItem.value;
item.dataSource=normalizedItem.dataSource;theItem=item;dstStore.save(item);thiz.onItemChanged(item.id,xas.utils.CIDataToJSON(item));break}}});if(theItem)return theItem;var testUID=""+normalizedItem.uid;var parendId=""+normalizedItem.parentId;dstStore.fetch({query:{id:parendId},queryOptions:{"deep":true},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(item.inputs!=null&&item.inputs.length>0)theItem=xapp.utils.getCIByUid(item.inputs,testUID)}}});if(theItem){theItem.value=
normalizedItem.value;dstStore.save(theItem);thiz.onItemChanged(xas.utils.CIDataToJSON(theItem));return theItem}}})})},"dijit/_KeyNavMixin":function(){define("dijit/_KeyNavMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/_base/lang","dojo/on","dijit/registry","dijit/_FocusMixin"],function(array,declare,domAttr,keys,lang,on,registry,_FocusMixin){return declare("dijit._KeyNavMixin",_FocusMixin,{tabIndex:"0",childSelector:null,postCreate:function(){this.inherited(arguments);
domAttr.set(this.domNode,"tabIndex",this.tabIndex);if(!this._keyNavCodes){var keyCodes=this._keyNavCodes={};keyCodes[keys.HOME]=lang.hitch(this,"focusFirstChild");keyCodes[keys.END]=lang.hitch(this,"focusLastChild");keyCodes[this.isLeftToRight()?keys.LEFT_ARROW:keys.RIGHT_ARROW]=lang.hitch(this,"_onLeftArrow");keyCodes[this.isLeftToRight()?keys.RIGHT_ARROW:keys.LEFT_ARROW]=lang.hitch(this,"_onRightArrow");keyCodes[keys.UP_ARROW]=lang.hitch(this,"_onUpArrow");keyCodes[keys.DOWN_ARROW]=lang.hitch(this,
"_onDownArrow")}var self=this,childSelector=typeof this.childSelector=="string"?this.childSelector:lang.hitch(this,"childSelector");this.own(on(this.domNode,"keypress",lang.hitch(this,"_onContainerKeypress")),on(this.domNode,"keydown",lang.hitch(this,"_onContainerKeydown")),on(this.domNode,"focus",lang.hitch(this,"_onContainerFocus")),on(this.containerNode,on.selector(childSelector,"focusin"),function(evt){self._onChildFocus(registry.getEnclosingWidget(this),evt)}))},_onLeftArrow:function(){},_onRightArrow:function(){},
_onUpArrow:function(){},_onDownArrow:function(){},focus:function(){this.focusFirstChild()},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1)},_getLastFocusableChild:function(){return this._getNextFocusableChild(null,-1)},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild())},focusLastChild:function(){this.focusChild(this._getLastFocusableChild())},focusChild:function(widget,last){if(!widget)return;if(this.focusedChild&&widget!==this.focusedChild)this._onChildBlur(this.focusedChild);
widget.set("tabIndex",this.tabIndex);widget.focus(last?"end":"start")},_onContainerFocus:function(evt){if(evt.target!==this.domNode||this.focusedChild)return;this.focus()},_onFocus:function(){domAttr.set(this.domNode,"tabIndex","-1");this.inherited(arguments)},_onBlur:function(evt){domAttr.set(this.domNode,"tabIndex",this.tabIndex);if(this.focusedChild){this.focusedChild.set("tabIndex","-1");this.lastFocusedChild=this.focusedChild;this._set("focusedChild",null)}this.inherited(arguments)},_onChildFocus:function(child){if(child&&
child!=this.focusedChild){if(this.focusedChild&&!this.focusedChild._destroyed)this.focusedChild.set("tabIndex","-1");child.set("tabIndex",this.tabIndex);this.lastFocused=child;this._set("focusedChild",child)}},_searchString:"",multiCharSearchDuration:1E3,onKeyboardSearch:function(item,evt,searchString,numMatches){if(item)this.focusChild(item)},_keyboardSearchCompare:function(item,searchString){var element=item.domNode,text=item.label||(element.focusNode?element.focusNode.label:"")||element.innerText||
element.textContent||"",currentString=text.replace(/^\s+/,"").substr(0,searchString.length).toLowerCase();return!!searchString.length&&currentString==searchString?-1:0},_onContainerKeydown:function(evt){var func=this._keyNavCodes[evt.keyCode];if(func){func(evt,this.focusedChild);evt.stopPropagation();evt.preventDefault();this._searchString=""}else if(evt.keyCode==keys.SPACE&&this._searchTimer&&!(evt.ctrlKey||evt.altKey||evt.metaKey)){evt.stopImmediatePropagation();evt.preventDefault();on.emit(this.domNode,
"keypress",{charCode:keys.SPACE,cancelable:true,bubbles:true})}},_onContainerKeypress:function(evt){if(evt.charCode<32)return;if(evt.ctrlKey||evt.altKey)return;var matchedItem=null,searchString,numMatches=0,search=lang.hitch(this,function(){if(this._searchTimer)this._searchTimer.remove();this._searchString+=keyChar;var allSameLetter=/^(.)\1*$/.test(this._searchString);var searchLen=allSameLetter?1:this._searchString.length;searchString=this._searchString.substr(0,searchLen);this._searchTimer=this.defer(function(){this._searchTimer=
null;this._searchString=""},this.multiCharSearchDuration);var currentItem=this.focusedChild||null;if(searchLen==1||!currentItem){currentItem=this._getNextFocusableChild(currentItem,1);if(!currentItem)return}var stop=currentItem;do{var rc=this._keyboardSearchCompare(currentItem,searchString);if(!!rc&&numMatches++==0)matchedItem=currentItem;if(rc==-1){numMatches=-1;break}currentItem=this._getNextFocusableChild(currentItem,1)}while(currentItem!=stop)}),keyChar=String.fromCharCode(evt.charCode).toLowerCase();
evt.preventDefault();evt.stopPropagation();search();this.onKeyboardSearch(matchedItem,evt,searchString,numMatches)},_onChildBlur:function(){},_getNextFocusableChild:function(child,dir){var wrappedValue=child;do{if(!child){child=this[dir>0?"_getFirst":"_getLast"]();if(!child)break}else child=this._getNext(child,dir);if(child!=null&&child!=wrappedValue&&child.isFocusable())return child}while(child!=wrappedValue);return null},_getFirst:function(){return null},_getLast:function(){return null},_getNext:function(child,
dir){if(child){child=child.domNode;while(child){child=child[dir<0?"previousSibling":"nextSibling"];if(child&&"getAttribute"in child){var w=registry.byNode(child);if(w)return w}}}return null}})})},"xwordpress/manager/SettingsManager":function(){define("xwordpress/manager/SettingsManager",["dojo/_base/declare","xide/manager/SettingsManager"],function(declare,SettingsManager){return declare("xwordpress.manager.SettingsManager",[SettingsManager],{serviceUrl:"index_joomla.php",store:"settings.json"})})},
"dojo/uacss":function(){define("dojo/uacss",["./dom-geometry","./_base/lang","./domReady","./sniff","./_base/window"],function(geometry,lang,domReady,has,baseWindow){var html=baseWindow.doc.documentElement,ie=has("ie"),opera=has("opera"),maj=Math.floor,ff=has("ff"),boxModel=geometry.boxModel.replace(/-/,""),classes={"dj_quirks":has("quirks"),"dj_opera":opera,"dj_khtml":has("khtml"),"dj_webkit":has("webkit"),"dj_safari":has("safari"),"dj_chrome":has("chrome"),"dj_gecko":has("mozilla"),"dj_ios":has("ios"),
"dj_android":has("android")};if(ie){classes["dj_ie"]=true;classes["dj_ie"+maj(ie)]=true;classes["dj_iequirks"]=has("quirks")}if(ff)classes["dj_ff"+maj(ff)]=true;classes["dj_"+boxModel]=true;var classStr="";for(var clz in classes)if(classes[clz])classStr+=clz+" ";html.className=lang.trim(html.className+" "+classStr);domReady(function(){if(!geometry.isBodyLtr()){var rtlClassStr="dj_rtl dijitRtl "+classStr.replace(/ /g,"-rtl ");html.className=lang.trim(html.className+" "+rtlClassStr+"dj_rtl dijitRtl "+
classStr.replace(/ /g,"-rtl "))}});return has})},"dijit/Viewport":function(){define("dijit/Viewport",["dojo/Evented","dojo/on","dojo/domReady","dojo/sniff","dojo/window"],function(Evented,on,domReady,has,winUtils){var Viewport=new Evented;var focusedNode;domReady(function(){var oldBox=winUtils.getBox();Viewport._rlh=on(window,"resize",function(){var newBox=winUtils.getBox();if(oldBox.h==newBox.h&&oldBox.w==newBox.w)return;oldBox=newBox;Viewport.emit("resize")});if(has("ie")==8){var deviceXDPI=screen.deviceXDPI;
setInterval(function(){if(screen.deviceXDPI!=deviceXDPI){deviceXDPI=screen.deviceXDPI;Viewport.emit("resize")}},500)}if(true||has("ios")){on(document,"focusin",function(evt){focusedNode=evt.target});on(document,"focusout",function(evt){focusedNode=null})}});Viewport.getEffectiveBox=function(doc){var box=winUtils.getBox(doc);var tag=focusedNode&&focusedNode.tagName&&focusedNode.tagName.toLowerCase();if(has("ios")&&(tag=="textarea"||tag=="input"&&/^(color|email|number|password|search|tel|text|url)$/.test(focusedNode.type)))box.h*=
box.h>box.w?0.66:0.4;return box};return Viewport})},"dojo/html":function(){define("dojo/html",["./_base/kernel","./_base/lang","./_base/array","./_base/declare","./dom","./dom-construct","./parser"],function(kernel,lang,darray,declare,dom,domConstruct,parser){var idCounter=0;var html={_secureForInnerHtml:function(cont){return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"")},_emptyNode:domConstruct.empty,_setNodeContent:function(node,cont){domConstruct.empty(node);if(cont){if(typeof cont==
"string")cont=domConstruct.toDom(cont,node.ownerDocument);if(!cont.nodeType&&lang.isArrayLike(cont))for(var startlen=cont.length,i=0;i<cont.length;i=startlen==cont.length?i+1:0)domConstruct.place(cont[i],node,"last");else domConstruct.place(cont,node,"last")}return node},_ContentSetter:declare("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,parserScope:kernel._scopeName,startup:true,constructor:function(params,node){lang.mixin(this,
params||{});node=this.node=dom.byId(this.node||node);if(!this.id)this.id=["Setter",node?node.id||node.tagName:"",idCounter++].join("_")},set:function(cont,params){if(undefined!==cont)this.content=cont;if(params)this._mixin(params);this.onBegin();this.setContent();var ret=this.onEnd();if(ret&&ret.then)return ret;else return this.node},setContent:function(){var node=this.node;if(!node)throw new Error(this.declaredClass+": setContent given no node");try{node=html._setNodeContent(node,this.content)}catch(e){var errMess=
this.onContentError(e);try{node.innerHTML=errMess}catch(e){console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e)}}this.node=node},empty:function(){if(this.parseDeferred){if(!this.parseDeferred.isResolved())this.parseDeferred.cancel();delete this.parseDeferred}if(this.parseResults&&this.parseResults.length){darray.forEach(this.parseResults,function(w){if(w.destroy)w.destroy()});delete this.parseResults}domConstruct.empty(this.node)},onBegin:function(){var cont=
this.content;if(lang.isString(cont)){if(this.cleanContent)cont=html._secureForInnerHtml(cont);if(this.extractContent){var match=cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(match)cont=match[1]}}this.empty();this.content=cont;return this.node},onEnd:function(){if(this.parseContent)this._parse();return this.node},tearDown:function(){delete this.parseResults;delete this.parseDeferred;delete this.node;delete this.content},onContentError:function(err){return"Error occurred setting content: "+
err},onExecError:function(err){return"Error occurred executing scripts: "+err},_mixin:function(params){var empty={},key;for(key in params){if(key in empty)continue;this[key]=params[key]}},_parse:function(){var rootNode=this.node;try{var inherited={};darray.forEach(["dir","lang","textDir"],function(name){if(this[name])inherited[name]=this[name]},this);var self=this;this.parseDeferred=parser.parse({rootNode:rootNode,noStart:!this.startup,inherited:inherited,scope:this.parserScope}).then(function(results){return self.parseResults=
results},function(e){self._onError("Content",e,"Error parsing in _ContentSetter#"+this.id)})}catch(e){this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id)}},_onError:function(type,err,consoleText){var errText=this["on"+type+"Error"].call(this,err);if(consoleText)console.error(consoleText,err);else if(errText)html._setNodeContent(this.node,errText,true)}}),set:function(node,cont,params){if(undefined==cont){0&&console.warn("dojo.html.set: no cont argument provided, using empty string");
cont=""}if(!params)return html._setNodeContent(node,cont,true);else{var op=new html._ContentSetter(lang.mixin(params,{content:cont,node:node}));return op.set()}}};lang.setObject("dojo.html",html);return html})},"dojo/touch":function(){define("dojo/touch",["./_base/kernel","./aspect","./dom","./dom-class","./_base/lang","./on","./has","./mouse","./domReady","./_base/window"],function(dojo,aspect,dom,domClass,lang,on,has,mouse,domReady,win){var ios4=has("ios")<5;var hasPointer=navigator.pointerEnabled||
navigator.msPointerEnabled,pointer=function(){var pointer={};for(var type in{down:1,move:1,up:1,cancel:1,over:1,out:1})pointer[type]=!navigator.pointerEnabled?"MSPointer"+type.charAt(0).toUpperCase()+type.slice(1):"pointer"+type;return pointer}();var hasTouch=has("touch");var clicksInited,clickTracker,clickTarget,clickX,clickY,clickDx,clickDy,clickTime;var lastTouch;function dualEvent(mouseType,touchType,pointerType){if(hasPointer&&pointerType)return function(node,listener){return on(node,pointerType,
listener)};else if(hasTouch)return function(node,listener){var handle1=on(node,touchType,function(evt){listener.call(this,evt);lastTouch=(new Date).getTime()}),handle2=on(node,mouseType,function(evt){if(!lastTouch||(new Date).getTime()>lastTouch+1E3)listener.call(this,evt)});return{remove:function(){handle1.remove();handle2.remove()}}};else return function(node,listener){return on(node,mouseType,listener)}}function marked(node){do if(node.dojoClick!==undefined)return node;while(node=node.parentNode)}
function doClicks(e,moveType,endType){var markedNode=marked(e.target);clickTracker=!e.target.disabled&&markedNode&&markedNode.dojoClick;if(clickTracker){var useTarget=clickTracker=="useTarget";clickTarget=useTarget?markedNode:e.target;if(useTarget)e.preventDefault();clickX=e.changedTouches?e.changedTouches[0].pageX:e.clientX;clickY=e.changedTouches?e.changedTouches[0].pageY:e.clientY;clickDx=(typeof clickTracker=="object"?clickTracker.x:typeof clickTracker=="number"?clickTracker:0)||4;clickDy=(typeof clickTracker==
"object"?clickTracker.y:typeof clickTracker=="number"?clickTracker:0)||4;if(!clicksInited){clicksInited=true;function updateClickTracker(e){if(useTarget)clickTracker=dom.isDescendant(win.doc.elementFromPoint(e.changedTouches?e.changedTouches[0].pageX:e.clientX,e.changedTouches?e.changedTouches[0].pageY:e.clientY),clickTarget);else clickTracker=clickTracker&&(e.changedTouches?e.changedTouches[0].target:e.target)==clickTarget&&Math.abs((e.changedTouches?e.changedTouches[0].pageX:e.clientX)-clickX)<=
clickDx&&Math.abs((e.changedTouches?e.changedTouches[0].pageY:e.clientY)-clickY)<=clickDy}win.doc.addEventListener(moveType,function(e){updateClickTracker(e);if(useTarget)e.preventDefault()},true);win.doc.addEventListener(endType,function(e){updateClickTracker(e);if(clickTracker){clickTime=(new Date).getTime();var target=useTarget?clickTarget:e.target;if(target.tagName==="LABEL")target=dom.byId(target.getAttribute("for"))||target;var src=e.changedTouches?e.changedTouches[0]:e;var clickEvt=document.createEvent("MouseEvents");
clickEvt._dojo_click=true;clickEvt.initMouseEvent("click",true,true,e.view,e.detail,src.screenX,src.screenY,src.clientX,src.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,0,null);setTimeout(function(){on.emit(target,"click",clickEvt);clickTime=(new Date).getTime()},0)}},true);function stopNativeEvents(type){win.doc.addEventListener(type,function(e){if(!e._dojo_click&&(new Date).getTime()<=clickTime+1E3&&!(e.target.tagName=="INPUT"&&domClass.contains(e.target,"dijitOffScreen"))){e.stopPropagation();
e.stopImmediatePropagation&&e.stopImmediatePropagation();if(type=="click"&&(e.target.tagName!="INPUT"||e.target.type=="radio"||e.target.type=="checkbox")&&e.target.tagName!="TEXTAREA"&&e.target.tagName!="AUDIO"&&e.target.tagName!="VIDEO")e.preventDefault()}},true)}stopNativeEvents("click");stopNativeEvents("mousedown");stopNativeEvents("mouseup")}}}var hoveredNode;if(hasPointer)domReady(function(){win.doc.addEventListener(pointer.down,function(evt){doClicks(evt,pointer.move,pointer.up)},true)});else if(hasTouch)domReady(function(){hoveredNode=
win.body();win.doc.addEventListener("touchstart",function(evt){lastTouch=(new Date).getTime();var oldNode=hoveredNode;hoveredNode=evt.target;on.emit(oldNode,"dojotouchout",{relatedTarget:hoveredNode,bubbles:true});on.emit(hoveredNode,"dojotouchover",{relatedTarget:oldNode,bubbles:true});doClicks(evt,"touchmove","touchend")},true);function copyEventProps(evt){var props=lang.delegate(evt,{bubbles:true});if(has("ios")>=6){props.touches=evt.touches;props.altKey=evt.altKey;props.changedTouches=evt.changedTouches;
props.ctrlKey=evt.ctrlKey;props.metaKey=evt.metaKey;props.shiftKey=evt.shiftKey;props.targetTouches=evt.targetTouches}return props}on(win.doc,"touchmove",function(evt){lastTouch=(new Date).getTime();var newNode=win.doc.elementFromPoint(evt.pageX-(ios4?0:win.global.pageXOffset),evt.pageY-(ios4?0:win.global.pageYOffset));if(newNode){if(hoveredNode!==newNode){on.emit(hoveredNode,"dojotouchout",{relatedTarget:newNode,bubbles:true});on.emit(newNode,"dojotouchover",{relatedTarget:hoveredNode,bubbles:true});
hoveredNode=newNode}if(!on.emit(newNode,"dojotouchmove",copyEventProps(evt)))evt.preventDefault()}});on(win.doc,"touchend",function(evt){lastTouch=(new Date).getTime();var node=win.doc.elementFromPoint(evt.pageX-(ios4?0:win.global.pageXOffset),evt.pageY-(ios4?0:win.global.pageYOffset))||win.body();on.emit(node,"dojotouchend",copyEventProps(evt))})});var touch={press:dualEvent("mousedown","touchstart",pointer.down),move:dualEvent("mousemove","dojotouchmove",pointer.move),release:dualEvent("mouseup",
"dojotouchend",pointer.up),cancel:dualEvent(mouse.leave,"touchcancel",hasTouch?pointer.cancel:null),over:dualEvent("mouseover","dojotouchover",pointer.over),out:dualEvent("mouseout","dojotouchout",pointer.out),enter:mouse._eventHandler(dualEvent("mouseover","dojotouchover",pointer.over)),leave:mouse._eventHandler(dualEvent("mouseout","dojotouchout",pointer.out))};1&&(dojo.touch=touch);return touch})},"dojo/io/iframe":function(){define("dojo/io/iframe",["../_base/config","../_base/json","../_base/kernel",
"../_base/lang","../_base/xhr","../sniff","../_base/window","../dom","../dom-construct","../query","require","../aspect","../request/iframe"],function(config,json,kernel,lang,xhr,has,win,dom,domConstruct,query,require,aspect,_iframe){kernel.deprecated("dojo/io/iframe","Use dojo/request/iframe.","2.0");var mid=_iframe._iframeName;mid=mid.substring(0,mid.lastIndexOf("_"));var iframe=lang.delegate(_iframe,{create:function(){return iframe._frame=_iframe.create.apply(_iframe,arguments)},get:null,post:null,
send:function(args){var rDfd;var dfd=xhr._ioSetArgs(args,function(dfd){rDfd&&rDfd.cancel()},function(dfd){var value=null,ioArgs=dfd.ioArgs;try{var handleAs=ioArgs.handleAs;if(handleAs==="xml"||handleAs==="html")value=rDfd.response.data;else{value=rDfd.response.text;if(handleAs==="json")value=json.fromJson(value);else if(handleAs==="javascript")value=kernel.eval(value)}}catch(e){value=e}return value},function(error,dfd){dfd.ioArgs._hasError=true;return error});var ioArgs=dfd.ioArgs;var method="GET",
form=dom.byId(args.form);if(args.method&&args.method.toUpperCase()==="POST"&&form)method="POST";var options={method:method,handleAs:args.handleAs==="json"||args.handleAs==="javascript"?"text":args.handleAs,form:args.form,query:form?null:args.content,data:form?args.content:null,timeout:args.timeout,ioArgs:ioArgs};if(options.method)options.method=options.method.toUpperCase();if(config.ioPublish&&kernel.publish&&ioArgs.args.ioPublish!==false)var start=aspect.after(_iframe,"_notifyStart",function(data){if(data.options.ioArgs===
ioArgs){start.remove();xhr._ioNotifyStart(dfd)}},true);rDfd=_iframe(ioArgs.url,options,true);ioArgs._callNext=rDfd._callNext;rDfd.then(function(){dfd.resolve(dfd)}).otherwise(function(error){dfd.ioArgs.error=error;dfd.reject(error)});return dfd},_iframeOnload:win.global[mid+"_onload"]});lang.setObject("dojo.io.iframe",iframe);return iframe})},"xas/widgets/TemplatedWidgetBase":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dijit/_Widget","dijit/_WidgetBase",
"dijit/_TemplatedMixin","dijit/_WidgetsInTemplateMixin","dojo/i18n","dojo/i18n!./nls/TemplatedWidgetBase"],function(array,declare,html,on,_Widget,_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin){return dojo.declare("xas.widgets.TemplatedWidgetBase",[_Widget,_TemplatedMixin,_WidgetsInTemplateMixin],{data:null,delegate:null,didLoad:false,templateString:null,translate:function(value){if(this._messages==null)this._setupTranslations();if(value){var _titleKey=value.toLocaleLowerCase();_titleKey=_titleKey.replace(/\s+/g,
"_");if(_titleKey&&this._messages!=null){var _titleValue=this._messages[_titleKey];if(_titleValue&&_titleValue.length>0)return _titleValue}}return value||""},_setupTranslations:function(){var dstCtx=sctx||mctx;if(dstCtx&&dstCtx.getLocals)this._messages=dstCtx.getLocals("xas.widgets","TemplatedWidgetBase");else this._messages=[]},postMixInProperties:function(){this.inherited(arguments);this._setupTranslations()},initWithDataItem:function(data){},fillTemplate:function(){},startup:function(){this.inherited(arguments);
this.fillTemplate()},updateTitleNode:function(value){if(value&&this.titleNode){var _titleKey=value.toLocaleLowerCase();_titleKey=_titleKey.replace(/\s+/g,"_");if(_titleKey){var _titleValue=this._messages[_titleKey];if(_titleValue)this.titleNode.innerHTML=_titleValue}}}})})},"dojox/grid/_ViewManager":function(){define("dojox/grid/_ViewManager",["dojo/_base/declare","dojo/_base/sniff","dojo/dom-class"],function(declare,has,domClass){return declare("dojox.grid._ViewManager",null,{constructor:function(inGrid){this.grid=
inGrid},defaultWidth:200,views:[],resize:function(){this.onEach("resize")},render:function(){this.onEach("render")},addView:function(inView){inView.idx=this.views.length;this.views.push(inView)},destroyViews:function(){for(var i=0,v;v=this.views[i];i++)v.destroy();this.views=[]},getContentNodes:function(){var nodes=[];for(var i=0,v;v=this.views[i];i++)nodes.push(v.contentNode);return nodes},forEach:function(inCallback){for(var i=0,v;v=this.views[i];i++)inCallback(v,i)},onEach:function(inMethod,inArgs){inArgs=
inArgs||[];for(var i=0,v;v=this.views[i];i++)if(inMethod in v)v[inMethod].apply(v,inArgs)},normalizeHeaderNodeHeight:function(){var rowNodes=[];for(var i=0,v;v=this.views[i];i++)if(v.headerContentNode.firstChild)rowNodes.push(v.headerContentNode);this.normalizeRowNodeHeights(rowNodes)},normalizeRowNodeHeights:function(inRowNodes){var h=0;var currHeights=[];if(this.grid.rowHeight)h=this.grid.rowHeight;else{if(inRowNodes.length<=1)return;for(var i=0,n;n=inRowNodes[i];i++)if(!domClass.contains(n,"dojoxGridNonNormalizedCell")){currHeights[i]=
n.firstChild.offsetHeight;h=Math.max(h,currHeights[i])}h=h>=0?h:0;if((has("mozilla")||has("ie")>8)&&h)h++}for(i=0;n=inRowNodes[i];i++)if(currHeights[i]!=h)n.firstChild.style.height=h+"px"},resetHeaderNodeHeight:function(){for(var i=0,v,n;v=this.views[i];i++){n=v.headerContentNode.firstChild;if(n)n.style.height=""}},renormalizeRow:function(inRowIndex){var rowNodes=[];for(var i=0,v,n;(v=this.views[i])&&(n=v.getRowNode(inRowIndex));i++){n.firstChild.style.height="";rowNodes.push(n)}this.normalizeRowNodeHeights(rowNodes)},
getViewWidth:function(inIndex){return this.views[inIndex].getWidth()||this.defaultWidth},measureHeader:function(){this.resetHeaderNodeHeight();this.forEach(function(inView){inView.headerContentNode.style.height=""});var h=0;this.forEach(function(inView){h=Math.max(inView.headerNode.offsetHeight,h)});return h},measureContent:function(){var h=0;this.forEach(function(inView){h=Math.max(inView.domNode.offsetHeight,h)});return h},findClient:function(inAutoWidth){var c=this.grid.elasticView||-1;if(c<0)for(var i=
1,v;v=this.views[i];i++)if(v.viewWidth){for(i=1;v=this.views[i];i++)if(!v.viewWidth){c=i;break}break}if(c<0)c=Math.floor(this.views.length/2);return c},arrange:function(l,w){var i,v,vw,len=this.views.length,self=this;var c=w<=0?len:this.findClient();var setPosition=function(v,l){var ds=v.domNode.style;var hs=v.headerNode.style;if(!self.grid.isLeftToRight()){ds.right=l+"px";if(has("ff")<4)hs.right=l+v.getScrollbarWidth()+"px";else hs.right=l+"px";if(!has("webkit")&&hs.width!="auto")hs.width=parseInt(hs.width,
10)-v.getScrollbarWidth()+"px"}else{ds.left=l+"px";hs.left=l+"px"}ds.top=0+"px";hs.top=0};for(i=0;(v=this.views[i])&&i<c;i++){vw=this.getViewWidth(i);v.setSize(vw,0);setPosition(v,l);if(v.headerContentNode&&v.headerContentNode.firstChild)vw=v.getColumnsWidth()+v.getScrollbarWidth();else vw=v.domNode.offsetWidth;l+=vw}i++;var r=w;for(var j=len-1;(v=this.views[j])&&i<=j;j--){vw=this.getViewWidth(j);v.setSize(vw,0);vw=v.domNode.offsetWidth;r-=vw;setPosition(v,r)}if(c<len){v=this.views[c];vw=Math.max(1,
r-l);v.setSize(vw+"px",0);setPosition(v,l)}return l},renderRow:function(inRowIndex,inNodes,skipRenorm){var rowNodes=[];for(var i=0,v,n,rowNode;(v=this.views[i])&&(n=inNodes[i]);i++){rowNode=v.renderRow(inRowIndex);n.appendChild(rowNode);rowNodes.push(rowNode)}if(!skipRenorm)this.normalizeRowNodeHeights(rowNodes)},rowRemoved:function(inRowIndex){this.onEach("rowRemoved",[inRowIndex])},updateRow:function(inRowIndex,skipRenorm){for(var i=0,v;v=this.views[i];i++)v.updateRow(inRowIndex);if(!skipRenorm)this.renormalizeRow(inRowIndex)},
updateRowStyles:function(inRowIndex){this.onEach("updateRowStyles",[inRowIndex])},setScrollTop:function(inTop){var top=inTop;for(var i=0,v;v=this.views[i];i++){top=v.setScrollTop(inTop);if(has("ie")&&v.headerNode&&v.scrollboxNode)v.headerNode.scrollLeft=v.scrollboxNode.scrollLeft}return top},getFirstScrollingView:function(){for(var i=0,v;v=this.views[i];i++)if(v.hasHScrollbar()||v.hasVScrollbar())return v;return null}})})},"dijit/registry":function(){define("dijit/registry",["dojo/_base/array","dojo/sniff",
"dojo/_base/window","./main"],function(array,has,win,dijit){var _widgetTypeCtr={},hash={};var registry={length:0,add:function(widget){if(hash[widget.id])throw new Error("Tried to register widget with id\x3d\x3d"+widget.id+" but that id is already registered");hash[widget.id]=widget;this.length++},remove:function(id){if(hash[id]){delete hash[id];this.length--}},byId:function(id){return typeof id=="string"?hash[id]:id},byNode:function(node){return hash[node.getAttribute("widgetId")]},toArray:function(){var ar=
[];for(var id in hash)ar.push(hash[id]);return ar},getUniqueId:function(widgetType){var id;do id=widgetType+"_"+(widgetType in _widgetTypeCtr?++_widgetTypeCtr[widgetType]:_widgetTypeCtr[widgetType]=0);while(hash[id]);return dijit._scopeName=="dijit"?id:dijit._scopeName+"_"+id},findWidgets:function(root,skipNode){var outAry=[];function getChildrenHelper(root){for(var node=root.firstChild;node;node=node.nextSibling)if(node.nodeType==1){var widgetId=node.getAttribute("widgetId");if(widgetId){var widget=
hash[widgetId];if(widget)outAry.push(widget)}else if(node!==skipNode)getChildrenHelper(node)}}getChildrenHelper(root);return outAry},_destroyAll:function(){dijit._curFocus=null;dijit._prevFocus=null;dijit._activeStack=[];array.forEach(registry.findWidgets(win.body()),function(widget){if(!widget._destroyed)if(widget.destroyRecursive)widget.destroyRecursive();else if(widget.destroy)widget.destroy()})},getEnclosingWidget:function(node){while(node){var id=node.nodeType==1&&node.getAttribute("widgetId");
if(id)return hash[id];node=node.parentNode}return null},_hash:hash};dijit.registry=registry;return registry})},"xide/views/ConsoleView":function(){define(["dojo/_base/declare","dojo/_base/lang","dojo/dom-geometry","dojo/dom-style","xide/utils","xide/types","xide/factory","xide/layout/ContentPane","xide/views/Console","dojox/fx/scroll","xfile/widgets/ProgressItem"],function(declare,lang,domGeometry,domStyle,utils,types,factory,ContentPane,Console,scroll,ProgressItem){return declare("xide.views.ConsoleView",
[ContentPane],{delegate:null,value:null,editorNode:null,cmdNode:null,console:null,type:null,logView:null,logPane:null,progressItem:null,cssClass:"mainView XShellView",showProgress:true,showLastInput:false,createLogItem:function(message,parent){var progressItem=new ProgressItem({terminatorItem:message,message:message,autoDestroy:true},dojo.doc.createElement("div"));parent.appendChild(progressItem.domNode);progressItem.startup();parent.appendChild(dojo.create("div",{className:"logEntry",innerHTML:""}));
var thiz=this;setTimeout(function(){thiz._scrollToEnd()},200);return progressItem},onEnter:function(value){if(this.showProgress)this.progressItem=this.createLogItem(value,this.getLoggingContainer());if(this.showLastInput){var dst=this.getLoggingContainer();dst.appendChild(dojo.create("span",{innerHTML:"# "+value,className:"ui-state-default"}))}if(this.delegate.onConsoleEnter)this.delegate.onConsoleEnter({view:this,console:this.console},value)},onButton:function(){var dst=this.getLoggingContainer();
if(dst)dojo.empty(dst)},getLoggingContainer:function(){return this.logView.containerNode},log:function(msg){utils.destroyWidget(this.progressItem);var out="";if(lang.isString(msg))out+=msg.replace(/\n/g,"\x3cbr/\x3e");else if(lang.isObject(msg)||lang.isArray(msg))out+=JSON.stringify(msg,null,true);var dst=this.getLoggingContainer();dst.appendChild(dojo.create("span",{innerHTML:"# "+this.console.getPrev()+" ",className:"ui-state-default"}));var items=out.split("\x3cbr/\x3e");for(var i=0;i<items.length;i++)dst.appendChild(dojo.create("div",
{className:"logEntry ui-widget-content",innerHTML:items[i]+""}));dst.appendChild(dojo.create("hr",{}));var thiz=this;setTimeout(function(){thiz._scrollToEnd()},200)},_fixHeight:function(){if(!this.console)return;var actionBox=domGeometry.getMarginBox(this.console.domNode);var box=domGeometry.getMarginBox(this.domNode);var newHeight=box.h-actionBox.h-22;domStyle.set(this.logView.domNode,{height:newHeight+"px",width:box.w+"px"})},resize:function(){if(!this.domNode)return;this.inherited(arguments);this._fixHeight()},
_scrollToEnd:function(){dojox.fx.smoothScroll({node:dojo.query(".logPane :last-child")[0],win:this.logView.domNode}).play()},onServerResponse:function(data){this.log(data);this._fixHeight();this._scrollToEnd()},createWidgets:function(){this.logView=utils.addWidget(ContentPane,{style:"width:inherit;"},this,this.containerNode,true,"logPane");this.console=new Console({delegate:this,type:this.type,owner:this,className:"consoleWidget ui-state-default"},dojo.doc.createElement("div"));dojo.place(this.console.domNode,
this.containerNode,"last");this.console.startup();this._fixHeight()},getValue:function(){return this.editBox.get("value")},startup:function(){this.inherited(arguments);try{this.createWidgets();this.subscribe(types.EVENTS.RESIZE,this.resize)}catch(e){debugger}}})})},"xfile/views/FileView":function(){define("xfile/views/FileView",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","dojox/rpc/Service","dojo/_base/lang","dijit/Menu","dijit/MenuItem","xide/layout/ContentPane",
"dijit/_FocusMixin","dojo/dom-construct","xide/utils/StringUtils","xfile/views/ContextMenuHandler","xfile/views/UploadMixin","xide/types","dojo/cookie","dojo/json"],function(array,declare,html,domClass,on,Service,lang,Menu,MenuItem,ContentPane,FocusMixin,domConstruct,utils,ContextMenuHandler,UploadMixin,types,cookie,json){return declare("xfiles.views.FileView",[ContentPane,UploadMixin],{activeItem:null,config:null,keyboardDelegate:null,mouseDelegate:null,prevItem:null,addReturnRow:true,cookiePrefix:"left",
editorDelegate:null,backItem:null,autoFocus:true,ctlrKeyDown:false,onFocusRootNode:function(){console.error("on focus root node")},onFocus2:function(){console.error("focus!!");return;var thiz=this;if(arguments.length==0){setTimeout(function(){thiz.onFocusRootNode()},10);return}console.error("_onfocus::failed")},buildRendering:function(){this.inherited(arguments)},getCurrentParent:function(){var currentItem=this.activeItem;if(!currentItem&&this.getFirstItem){var _firstItem=this.getFirstItem();if(_firstItem)currentItem=
_firstItem}if(currentItem)if(currentItem.directory!=null&&currentItem.directory===true)if(currentItem[this.id]&&currentItem[this.id]["isBack"]===true);else{var parent=this.store.getParents(currentItem,true)[0];if(parent)return parent}else{var parent=this.store.getParents(currentItem,true)[0];if(parent)return parent}return currentItem},hasItem:function(fileName,ignoreValue){var items=this.getCurrentItems();for(var i=0;i<items.length;i++)if(items[i].name!=ignoreValue&&items[i].name==fileName)return true;
return false},getCurrentItems:function(){var parentItem=this.getCurrentParent();if(parentItem){var query={path:parentItem.path};var queryOptions={deep:false,ignoreCase:false,sort:[{attribute:"name",descending:false,ignoreCase:false}],storeOnly:true};return this.store.query(query,queryOptions)}return null},onBack:function(){if(this.backItem){this.openItem(this.backItem);return this.backItem}},getEditorDelegate:function(){return this.editorDelegate},loadPreferences:function(){var settings=cookie(this.cookiePrefix+
"_layout_settings");settings=settings?json.parse(settings):{};return settings},onPreferencesChanged:function(){var settings=cookie(this.cookiePrefix+"_layout_settings");settings=settings?json.parse(settings):{};return settings},getParentItem:function(item){if(!item)return;var parent=this.store.getParents(item,true);if(parent&&parent.length==1)return parent[0];return null},getPrevItem:function(){return this.prevItem},getQueryOptions:function(){var queryOptions={deep:true,ignoreCase:false,sort:[{attribute:"directory",
descending:true,ignoreCase:false},{attribute:"name",descending:false,ignoreCase:false}],storeOnly:true};return queryOptions},doInitialQuery:function(url){var query={path:url||"."};var queryOptions={deep:true,ignoreCase:false,sort:[{attribute:"directory",descending:true,ignoreCase:false},{attribute:"name",descending:false,ignoreCase:false}],storeOnly:true};this.store.query(query,queryOptions)},getActiveItem:function(){return this.activeItem},doQuery:function(url){var query={path:url||"."};var queryOptions=
{deep:true,ignoreCase:false,sort:[{attribute:"directory",descending:true,ignoreCase:false},{attribute:"name",descending:false,ignoreCase:false}],storeOnly:true};var res=this.store.query(query,queryOptions);return res},onKeyEvent:function(evt){if(this.keyboardDelegate)this.keyboardDelegate.onGridKey(evt)},onMouseEvent:function(evt){if(this.mouseDelegate)this.mouseDelegate.onGridMouse(evt)},onMouseDoubleClickEvent:function(evt){if(this.mouseDelegate)this.mouseDelegate.onGridMouseDouble(evt)},getThemePath:function(){return this.themeRoot+
this.theme},onOpenProperties:function(item){if(this.delegate&&this.delegate.onOpenProperties)this.delegate.onOpenProperties(item)},onClose:function(){this.delegate.gridView=null;this.inherited(arguments);var parent=dijit.byId("topTabs");if(parent)parent.removeChild(this)},pathToRegex:function(path){return path;var segm=path.split("/");var regex="(^\\.";var i;for(i=0;i<segm.length;i++)if(segm[i]!==".")regex=regex+"\\/"+segm[i];regex=regex+"\\/[^\\/]*$)";return regex},_createContextMenu:function(node){this.contextMenuHandler=
new ContextMenuHandler({editStyle:false,panelDelegate:this.delegate,panelManager:this.delegate.delegate,clipboardManager:this.config.clipboardManager,config:this.config,owner:this});this.contextMenuHandler.delegate=this;this.contextMenuHandler.node=this.grid;this.contextMenuHandler.store=this.store;this.contextMenuHandler.model=this.model;this.contextMenuHandler.startup();this.contextMenuHandler.initWithNode(node)},formatDateSimple:function(data,format){var momentUnix=moment.unix(data);var dateStr=
momentUnix.format("YYYY MMMM Do, h:mm:ss a");return dateStr},formatDate:function(dateObject,format){if(!format)format="yyyy-MM-dd h:mm:ss";format=format.replace("d",dateObject.getDate()<10?"0"+dateObject.getDate():dateObject.getDate());format=format.replace("D",dateObject.getDay());format=format.replace("Y",dateObject.getFullYear());format=format.replace("y",dateObject.getYear());var month=dateObject.getMonth()+1;format=format.replace("m",month<10?"0"+month:month);format=format.replace("H",(dateObject.getHours()<
10?"0":"")+dateObject.getHours());format=format.replace("h",dateObject.getHours()%12||12);format=format.replace("p",dateObject.getHours()<12?"am":"pm");format=format.replace("P",dateObject.getHours()<12?"AM":"PM");format=format.replace("i",(dateObject.getMinutes()<10?"0":"")+dateObject.getMinutes());format=format.replace("s",(dateObject.getSeconds()<10?"0":"")+dateObject.getSeconds());return format},startup:function(){if(this.didLoad)return;this.inherited(arguments);this.didLoad=true;var thiz=this}})})},
"xide/utils/StoreUtils":function(){define(["dojo/_base/declare","xide/utils","xapp/types"],function(declare,utils,types){utils.toString=function(d){if(d!=null){if(!dojo.isArray(d))return""+d;if(d&&d.length==1&&d[0]==null)return null;return""+(d[0]!=null?d[0]:d)}return null};utils.toBoolean=function(data){var resInt=false;if(data!=null){var _dataStr=data[0]?data[0]:data;if(_dataStr!=null)resInt=!!(_dataStr===true||_dataStr==="true"||_dataStr==="1")}return resInt};utils.toObject=function(data){if(data!=
null){var _obj=data[0]?data[0]:data;return _obj}return null};utils.toInt=function(data){var resInt=-1;if(data!=null){var _dataStr=data.length>1?data:data[0]?data[0]:data;if(_dataStr!=null)try{resInt=parseInt(_dataStr)}catch(e){}}return resInt};utils.deleteStoreItemById=function(store,itemIdAsString){var found=false;store.fetch({query:{id:itemIdAsString},queryOptions:{"deep":true},onComplete:function(items){for(var i=0;i<items.length;i++){var item=items[i];store.deleteItem(item);store.save();found=
true;break}}});return found};utils.getStoreItemByName=function(store,id){var res=null;store.fetch({query:{name:id},queryOptions:{"deep":true},onComplete:function(items){res=items.length>0?items[0]:null}});return res};utils.getStoreItemById=function(store,id){return utils.queryStoreEx(store,{id:id})};utils.getAppDataElementByIdAndType=function(store,id,type){return utils.queryStore(store,{uid:id,type:type})};utils.getElementsByType=function(store,type){return utils.queryStoreEx(store,{type:type})};
utils.queryStoreEx=function(store,query,nullEmpty,single){if(store instanceof dojo.store.Memory)return utils.queryMemoryStoreEx(store,query);var res=null;store.fetch({query:query,queryOptions:{"deep":true},onComplete:function(items){res=items}});if(nullEmpty!=null&&nullEmpty===true)if(res&&res.length==0)return null;if(single===true)if(res&&res.length==1)return res[0];return res};utils.queryStore=function(store,query,nullEmpty){if(store instanceof dojo.store.Memory)return utils.queryMemoryStoreSingle(store,
query);var res=utils.queryStoreEx(store,query);if(res&&res.length==1)return res[0];if(nullEmpty!=null&&nullEmpty===true)if(res&&res.length==0)return null;return res};utils.queryMemoryStoreEx=function(store,query){var result=[];store.query(query).forEach(function(entry){result.push(entry)});return result};utils.queryMemoryStoreSingle=function(store,query){var result=utils.queryMemoryStoreEx(store,query);if(result.length==1)return result[0];return result};return utils})},"dijit/typematic":function(){define("dijit/typematic",
["dojo/_base/array","dojo/_base/connect","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/sniff","./main"],function(array,connect,kernel,lang,on,has,dijit){var typematic=dijit.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay),this._minDelay);this._timer=setTimeout(lang.hitch(this,
"_fireEventAndReload"),this._currentTimeout)},trigger:function(evt,_this,node,callback,obj,subsequentDelay,initialDelay,minDelay){if(obj!=this._obj){this.stop();this._initialDelay=initialDelay||500;this._subsequentDelay=subsequentDelay||0.9;this._minDelay=minDelay||10;this._obj=obj;this._node=node;this._currentTimeout=-1;this._count=-1;this._callback=lang.hitch(_this,callback);this._evt={faux:true};for(var attr in evt)if(attr!="layerX"&&attr!="layerY"){var v=evt[attr];if(typeof v!="function"&&typeof v!=
"undefined")this._evt[attr]=v}this._fireEventAndReload()}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null}},addKeyListener:function(node,keyObject,_this,callback,subsequentDelay,initialDelay,minDelay){var type="keyCode"in keyObject?"keydown":"charCode"in keyObject?"keypress":connect._keypress,attr="keyCode"in keyObject?"keyCode":"charCode"in keyObject?"charCode":"charOrCode";var handles=[on(node,type,
lang.hitch(this,function(evt){if(evt[attr]==keyObject[attr]&&(keyObject.ctrlKey===undefined||keyObject.ctrlKey==evt.ctrlKey)&&(keyObject.altKey===undefined||keyObject.altKey==evt.altKey)&&(keyObject.metaKey===undefined||keyObject.metaKey==(evt.metaKey||false))&&(keyObject.shiftKey===undefined||keyObject.shiftKey==evt.shiftKey)){evt.stopPropagation();evt.preventDefault();typematic.trigger(evt,_this,node,callback,keyObject,subsequentDelay,initialDelay,minDelay)}else if(typematic._obj==keyObject)typematic.stop()})),
on(node,"keyup",lang.hitch(this,function(){if(typematic._obj==keyObject)typematic.stop()}))];return{remove:function(){array.forEach(handles,function(h){h.remove()})}}},addMouseListener:function(node,_this,callback,subsequentDelay,initialDelay,minDelay){var handles=[on(node,"mousedown",lang.hitch(this,function(evt){evt.preventDefault();typematic.trigger(evt,_this,node,callback,node,subsequentDelay,initialDelay,minDelay)})),on(node,"mouseup",lang.hitch(this,function(evt){if(this._obj)evt.preventDefault();
typematic.stop()})),on(node,"mouseout",lang.hitch(this,function(evt){if(this._obj)evt.preventDefault();typematic.stop()})),on(node,"dblclick",lang.hitch(this,function(evt){evt.preventDefault();if(has("ie")<9){typematic.trigger(evt,_this,node,callback,node,subsequentDelay,initialDelay,minDelay);setTimeout(lang.hitch(this,typematic.stop),50)}}))];return{remove:function(){array.forEach(handles,function(h){h.remove()})}}},addListener:function(mouseNode,keyNode,keyObject,_this,callback,subsequentDelay,
initialDelay,minDelay){var handles=[this.addKeyListener(keyNode,keyObject,_this,callback,subsequentDelay,initialDelay,minDelay),this.addMouseListener(mouseNode,_this,callback,subsequentDelay,initialDelay,minDelay)];return{remove:function(){array.forEach(handles,function(h){h.remove()})}}}};return typematic})},"dojox/fx/scroll":function(){define("dojox/fx/scroll",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/fx","dojox/fx/_base","dojox/fx/_core","dojo/dom-geometry","dojo/_base/sniff"],function(kernel,
lang,baseFx,fxExt,Line,domGeom,has){kernel.experimental("dojox.fx.scroll");var fx=lang.getObject("dojox.fx",true);fxExt.smoothScroll=function(args){if(!args.target)args.target=domGeom.position(args.node);var isWindow=lang[has("ie")?"isObject":"isFunction"](args["win"].scrollTo),delta={x:args.target.x,y:args.target.y};if(!isWindow){var winPos=domGeom.position(args.win);delta.x-=winPos.x;delta.y-=winPos.y}var _anim=isWindow?function(val){args.win.scrollTo(val[0],val[1])}:function(val){args.win.scrollLeft=
val[0];args.win.scrollTop=val[1]};var anim=new baseFx.Animation(lang.mixin({beforeBegin:function(){if(this.curve)delete this.curve;var current=isWindow?dojo._docScroll():{x:args.win.scrollLeft,y:args.win.scrollTop};anim.curve=new Line([current.x,current.y],[current.x+delta.x,current.y+delta.y])},onAnimate:_anim},args));return anim};fx.smoothScroll=fxExt.smoothScroll;return fxExt.smoothScroll})},"xide/types":function(){define(["dojo/_base/declare"],function(declare){return declare("xide.types",null,
{})})},"dojo/request/util":function(){define("dojo/request/util",["exports","../errors/RequestError","../errors/CancelError","../Deferred","../io-query","../_base/array","../_base/lang","../promise/Promise"],function(exports,RequestError,CancelError,Deferred,ioQuery,array,lang,Promise){exports.deepCopy=function deepCopy(target,source){for(var name in source){var tval=target[name],sval=source[name];if(tval!==sval)if(tval&&typeof tval==="object"&&sval&&typeof sval==="object")exports.deepCopy(tval,sval);
else target[name]=sval}return target};exports.deepCreate=function deepCreate(source,properties){properties=properties||{};var target=lang.delegate(source),name,value;for(name in source){value=source[name];if(value&&typeof value==="object")target[name]=exports.deepCreate(value,properties[name])}return exports.deepCopy(target,properties)};var freeze=Object.freeze||function(obj){return obj};function okHandler(response){return freeze(response)}function dataHandler(response){return response.data||response.text}
exports.deferred=function deferred(response,cancel,isValid,isReady,handleResponse,last){var def=new Deferred(function(reason){cancel&&cancel(def,response);if(!reason||!(reason instanceof RequestError)&&!(reason instanceof CancelError))return new CancelError("Request canceled",response);return reason});def.response=response;def.isValid=isValid;def.isReady=isReady;def.handleResponse=handleResponse;function errHandler(error){error.response=response;throw error;}var responsePromise=def.then(okHandler).otherwise(errHandler);
if(exports.notify)responsePromise.then(lang.hitch(exports.notify,"emit","load"),lang.hitch(exports.notify,"emit","error"));var dataPromise=responsePromise.then(dataHandler);var promise=new Promise;for(var prop in dataPromise)if(dataPromise.hasOwnProperty(prop))promise[prop]=dataPromise[prop];promise.response=responsePromise;freeze(promise);if(last)def.then(function(response){last.call(def,response)},function(error){last.call(def,response,error)});def.promise=promise;def.then=promise.then;return def};
exports.addCommonMethods=function addCommonMethods(provider,methods){array.forEach(methods||["GET","POST","PUT","DELETE"],function(method){provider[(method==="DELETE"?"DEL":method).toLowerCase()]=function(url,options){options=lang.delegate(options||{});options.method=method;return provider(url,options)}})};exports.parseArgs=function parseArgs(url,options,skipData){var data=options.data,query=options.query;if(data&&!skipData)if(typeof data==="object")options.data=ioQuery.objectToQuery(data);if(query){if(typeof query===
"object")query=ioQuery.objectToQuery(query);if(options.preventCache)query+=(query?"\x26":"")+"request.preventCache\x3d"+ +new Date}else if(options.preventCache)query="request.preventCache\x3d"+ +new Date;if(url&&query)url+=(~url.indexOf("?")?"\x26":"?")+query;return{url:url,options:options,getHeader:function(headerName){return null}}};exports.checkStatus=function(stat){stat=stat||0;return stat>=200&&stat<300||stat===304||stat===1223||!stat}})},"xfile/widgets/BreadCrumb":function(){require({cache:{"url:xfile/widgets/templates/TrailBarItem.html":'\x3cdiv class\x3d"dijitInline dijitMenuItem" data-dojo-attach-point\x3d"focusNode" role\x3d"menuitem" tabIndex\x3d"-1"\x3e\n\t\x3cspan src\x3d"${_blankGif}" alt\x3d"" class\x3d"dijitIcon dijitMenuItemIcon  el-icon-chevron-right" data-dojo-attach-point\x3d"iconNode"/\x3e\n\t\x3cspan data-dojo-attach-point\x3d"containerNode"\x3e\x3c/span\x3e\n\x3c/div\x3e\n'}});
define("xfile/widgets/BreadCrumb",["dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/_base/lang","dijit/MenuBar","dijit/MenuItem","dijit/MenuBarItem","dijit/DropDownMenu","dijit/registry","dojo/text!./templates/TrailBarItem.html","./Evented"],function(array,declare,event,lang,MenuBar,MenuItem,MenuBarItem,DropDownMenu,registry,TrailBarItemTemplate,Evented){var DirectoryItem=declare([MenuItem],{iconClass:"",templateString:TrailBarItemTemplate,popup:null,constructor:function(args){this.popup=
new DropDownMenu({})}});var BreadCrumb=declare([MenuBarItem,Evented],{trail:null,item:null,moduleName:"cbTree/stores/BreadCrumb",constructor:function(args){this.trail=args.trail;this.item=args.item;if(this.trail&&this.item){var store=this.trail.store;var item=this.item;this.label=store.getLabel(item);if(this.label==".."&&item.prevName)this.label=""+item.prevName;this.path=store.getValue(item,"path");if(this.item.directory){this.tag=new DirectoryItem;store.fetchChildren({item:item,query:{directory:true},
queryOptions:{storeOnly:true},onComplete:this._dropDownMenu,scope:this})}}else throw new Error(this.moduleName+"::constructor(): Both trail and item are required arguments.");},_addToTrail:function(){this.trail.addChild(this);this.trail.addChild(this.tag)},_dropDownMenu:function(items){var popupMenu=this.tag.popup;var menuItem;array.forEach(items,function(item){menuItem=new MenuItem({label:item.name,iconClass:this.trail._dirIconClass,onClick:lang.hitch(this,this.onClick)});menuItem.item=item;popupMenu.addChild(menuItem)},
this)},postCreate:function(){this._addToTrail()},onClick:function(evt){var menuItem=registry.getEnclosingWidget(evt.target);this.trail.onClick(menuItem.item,menuItem,evt);event.stop(evt)}});var CrumbTrail=declare([MenuBar,Evented],{store:null,moduleName:"cbTree/stores/CrumbTrail",_dirIconClass:"dijitIcon dijitFolderClosed",constructor:function(args){this._customIcon=false;this._crumbs={};this.store=args.store||null;if(this.store){this._setTrailAttr(".");if(args.cssBaseClass)if(args.cssBaseClass!==
"fileIcon")this._dirIconClass=args.cssBaseClass+" "+args.cssBaseClass+"Collapsed";else this._dirIconClass="fileIcon fileIconDIR fileIconDIRCollapsed"}else throw new Error(this.moduleName+"::constructor(): store argument is required.");},_addBreadCrumb:function(item){if(item){var identity=this.store.getIdentity(item);var breadCrumb=this._crumbs[identity];if(!breadCrumb){breadCrumb=new BreadCrumb({trail:this,item:item});this._crumbs[identity]=breadCrumb}else breadCrumb._addToTrail()}},_clearTrail:function(){var children=
this.getChildren();var i;for(i=0;i<children.length;i++)this.removeChild(children[i])},_setTrailAttr:function(path){var store=this.store;var self=this;if(path&&lang.isString(path)){var segm=path.split("/");var identity="",i;this._clearTrail();for(i=0;i<segm.length;i++){identity=identity+segm[i];store.fetchItemByIdentity({identity:identity,queryOptions:{storeOnly:true},onItem:self._addBreadCrumb,scope:this});identity=identity+"/"}}else throw new Error(this.moduleName+"::_setTrailAttr(): invalid path argument.");
return true},setTrail:function(path){return this._setTrailAttr(path)},onClick:function(){debugger}});return CrumbTrail})},"dojo/data/ItemFileReadStore":function(){define("dojo/data/ItemFileReadStore",["../_base/kernel","../_base/lang","../_base/declare","../_base/array","../_base/xhr","../Evented","./util/filter","./util/simpleFetch","../date/stamp"],function(kernel,lang,declare,array,xhr,Evented,filterUtil,simpleFetch,dateStamp){var ItemFileReadStore=declare("dojo.data.ItemFileReadStore",[Evented],
{constructor:function(keywordParameters){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._jsonFileUrl=keywordParameters.url;this._ccUrl=keywordParameters.url;this.url=keywordParameters.url;this._jsonData=keywordParameters.data;this.data=null;this._datatypeMap=keywordParameters.typeMap||{};if(!this._datatypeMap["Date"])this._datatypeMap["Date"]={type:Date,deserialize:function(value){return dateStamp.fromISOString(value)}};this._features={"dojo.data.api.Read":true,
"dojo.data.api.Identity":true};this._itemsByIdentity=null;this._storeRefPropName="_S";this._itemNumPropName="_0";this._rootItemPropName="_RI";this._reverseRefMap="_RRM";this._loadInProgress=false;this._queuedFetches=[];if(keywordParameters.urlPreventCache!==undefined)this.urlPreventCache=keywordParameters.urlPreventCache?true:false;if(keywordParameters.hierarchical!==undefined)this.hierarchical=keywordParameters.hierarchical?true:false;if(keywordParameters.clearOnClose)this.clearOnClose=true;if("failOk"in
keywordParameters)this.failOk=keywordParameters.failOk?true:false},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(item){if(!this.isItem(item))throw new Error(this.declaredClass+": Invalid item argument.");},_assertIsAttribute:function(attribute){if(typeof attribute!=="string")throw new Error(this.declaredClass+": Invalid attribute argument.");},getValue:function(item,attribute,defaultValue){var values=this.getValues(item,
attribute);return values.length>0?values[0]:defaultValue},getValues:function(item,attribute){this._assertIsItem(item);this._assertIsAttribute(attribute);return(item[attribute]||[]).slice(0)},getAttributes:function(item){this._assertIsItem(item);var attributes=[];for(var key in item)if(key!==this._storeRefPropName&&key!==this._itemNumPropName&&key!==this._rootItemPropName&&key!==this._reverseRefMap)attributes.push(key);return attributes},hasAttribute:function(item,attribute){this._assertIsItem(item);
this._assertIsAttribute(attribute);return attribute in item},containsValue:function(item,attribute,value){var regexp=undefined;if(typeof value==="string")regexp=filterUtil.patternToRegExp(value,false);return this._containsValue(item,attribute,value,regexp)},_containsValue:function(item,attribute,value,regexp){return array.some(this.getValues(item,attribute),function(possibleValue){if(possibleValue!==null&&!lang.isObject(possibleValue)&&regexp){if(possibleValue.toString().match(regexp))return true}else if(value===
possibleValue)return true})},isItem:function(something){if(something&&something[this._storeRefPropName]===this)if(this._arrayOfAllItems[something[this._itemNumPropName]]===something)return true;return false},isItemLoaded:function(something){return this.isItem(something)},loadItem:function(keywordArgs){this._assertIsItem(keywordArgs.item)},getFeatures:function(){return this._features},getLabel:function(item){if(this._labelAttr&&this.isItem(item))return this.getValue(item,this._labelAttr);return undefined},
getLabelAttributes:function(item){if(this._labelAttr)return[this._labelAttr];return null},filter:function(requestArgs,arrayOfItems,findCallback){var items=[],i,key;if(requestArgs.query){var value,ignoreCase=requestArgs.queryOptions?requestArgs.queryOptions.ignoreCase:false;var regexpList={};for(key in requestArgs.query){value=requestArgs.query[key];if(typeof value==="string")regexpList[key]=filterUtil.patternToRegExp(value,ignoreCase);else if(value instanceof RegExp)regexpList[key]=value}for(i=0;i<
arrayOfItems.length;++i){var match=true;var candidateItem=arrayOfItems[i];if(candidateItem===null)match=false;else for(key in requestArgs.query){value=requestArgs.query[key];if(!this._containsValue(candidateItem,key,value,regexpList[key]))match=false}if(match)items.push(candidateItem)}findCallback(items,requestArgs)}else{for(i=0;i<arrayOfItems.length;++i){var item=arrayOfItems[i];if(item!==null)items.push(item)}findCallback(items,requestArgs)}},_fetchItems:function(keywordArgs,findCallback,errorCallback){var self=
this;if(this._loadFinished)this.filter(keywordArgs,this._getItemsArray(keywordArgs.queryOptions),findCallback);else{if(this._jsonFileUrl!==this._ccUrl){kernel.deprecated(this.declaredClass+": ","To change the url, set the url property of the store,"+" not _jsonFileUrl.  _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl}else if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url}if(this.data!=null){this._jsonData=this.data;this.data=
null}if(this._jsonFileUrl)if(this._loadInProgress)this._queuedFetches.push({args:keywordArgs,filter:lang.hitch(self,"filter"),findCallback:lang.hitch(self,findCallback)});else{this._loadInProgress=true;var getArgs={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var getHandler=xhr.get(getArgs);getHandler.addCallback(function(data){try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;self.filter(keywordArgs,
self._getItemsArray(keywordArgs.queryOptions),findCallback);self._handleQueuedFetches()}catch(e){self._loadFinished=true;self._loadInProgress=false;errorCallback(e,keywordArgs)}});getHandler.addErrback(function(error){self._loadInProgress=false;errorCallback(error,keywordArgs)});var oldAbort=null;if(keywordArgs.abort)oldAbort=keywordArgs.abort;keywordArgs.abort=function(){var df=getHandler;if(df&&df.fired===-1){df.cancel();df=null}if(oldAbort)oldAbort.call(keywordArgs)}}else if(this._jsonData)try{this._loadFinished=
true;this._getItemsFromLoadedData(this._jsonData);this._jsonData=null;self.filter(keywordArgs,this._getItemsArray(keywordArgs.queryOptions),findCallback)}catch(e){errorCallback(e,keywordArgs)}else errorCallback(new Error(this.declaredClass+": No JSON source data was provided as either URL or a nested Javascript object."),keywordArgs)}},_handleQueuedFetches:function(){if(this._queuedFetches.length>0){for(var i=0;i<this._queuedFetches.length;i++){var fData=this._queuedFetches[i],delayedQuery=fData.args,
delayedFilter=fData.filter,delayedFindCallback=fData.findCallback;if(delayedFilter)delayedFilter(delayedQuery,this._getItemsArray(delayedQuery.queryOptions),delayedFindCallback);else this.fetchItemByIdentity(delayedQuery)}this._queuedFetches=[]}},_getItemsArray:function(queryOptions){if(queryOptions&&queryOptions.deep)return this._arrayOfAllItems;return this._arrayOfTopLevelItems},close:function(request){if(this.clearOnClose&&this._loadFinished&&!this._loadInProgress){if((this._jsonFileUrl==""||this._jsonFileUrl==
null)&&(this.url==""||this.url==null)&&this.data==null)0&&console.debug(this.declaredClass+": WARNING!  Data reload "+" information has not been provided."+"  Please set 'url' or 'data' to the appropriate value before"+" the next fetch");this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._itemsByIdentity=null;this._loadInProgress=false;this._queuedFetches=[]}},_getItemsFromLoadedData:function(dataObject){var addingArrays=false,self=this;function valueIsAnItem(aValue){return aValue!==
null&&typeof aValue==="object"&&(!lang.isArray(aValue)||addingArrays)&&!lang.isFunction(aValue)&&(aValue.constructor==Object||lang.isArray(aValue))&&typeof aValue._reference==="undefined"&&typeof aValue._type==="undefined"&&typeof aValue._value==="undefined"&&self.hierarchical}function addItemAndSubItemsToArrayOfAllItems(anItem){self._arrayOfAllItems.push(anItem);for(var attribute in anItem){var valueForAttribute=anItem[attribute];if(valueForAttribute)if(lang.isArray(valueForAttribute)){var valueArray=
valueForAttribute;for(var k=0;k<valueArray.length;++k){var singleValue=valueArray[k];if(valueIsAnItem(singleValue))addItemAndSubItemsToArrayOfAllItems(singleValue)}}else if(valueIsAnItem(valueForAttribute))addItemAndSubItemsToArrayOfAllItems(valueForAttribute)}}this._labelAttr=dataObject.label;var i,item;this._arrayOfAllItems=[];this._arrayOfTopLevelItems=dataObject.items;for(i=0;i<this._arrayOfTopLevelItems.length;++i){item=this._arrayOfTopLevelItems[i];if(lang.isArray(item))addingArrays=true;addItemAndSubItemsToArrayOfAllItems(item);
item[this._rootItemPropName]=true}var allAttributeNames={},key;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){if(key!==this._rootItemPropName){var value=item[key];if(value!==null){if(!lang.isArray(value))item[key]=[value]}else item[key]=[null]}allAttributeNames[key]=key}}while(allAttributeNames[this._storeRefPropName])this._storeRefPropName+="_";while(allAttributeNames[this._itemNumPropName])this._itemNumPropName+="_";while(allAttributeNames[this._reverseRefMap])this._reverseRefMap+=
"_";var arrayOfValues;var identifier=dataObject.identifier;if(identifier){this._itemsByIdentity={};this._features["dojo.data.api.Identity"]=identifier;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];arrayOfValues=item[identifier];var identity=arrayOfValues[0];if(!Object.hasOwnProperty.call(this._itemsByIdentity,identity))this._itemsByIdentity[identity]=item;else if(this._jsonFileUrl)throw new Error(this.declaredClass+":  The json data as specified by: ["+this._jsonFileUrl+
"] is malformed.  Items within the list have identifier: ["+identifier+"].  Value collided: ["+identity+"]");else if(this._jsonData)throw new Error(this.declaredClass+":  The json data provided by the creation arguments is malformed.  Items within the list have identifier: ["+identifier+"].  Value collided: ["+identity+"]");}}else this._features["dojo.data.api.Identity"]=Number;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];item[this._storeRefPropName]=this;item[this._itemNumPropName]=
i}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){arrayOfValues=item[key];for(var j=0;j<arrayOfValues.length;++j){value=arrayOfValues[j];if(value!==null&&typeof value=="object"){if("_type"in value&&"_value"in value){var type=value._type;var mappingObj=this._datatypeMap[type];if(!mappingObj)throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+type+"'");else if(lang.isFunction(mappingObj))arrayOfValues[j]=
new mappingObj(value._value);else if(lang.isFunction(mappingObj.deserialize))arrayOfValues[j]=mappingObj.deserialize(value._value);else throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function");}if(value._reference){var referenceDescription=value._reference;if(!lang.isObject(referenceDescription))arrayOfValues[j]=this._getItemByIdentity(referenceDescription);else for(var k=0;k<this._arrayOfAllItems.length;++k){var candidateItem=
this._arrayOfAllItems[k],found=true;for(var refKey in referenceDescription)if(candidateItem[refKey]!=referenceDescription[refKey])found=false;if(found)arrayOfValues[j]=candidateItem}if(this.referenceIntegrity){var refItem=arrayOfValues[j];if(this.isItem(refItem))this._addReferenceToMap(refItem,item,key)}}else if(this.isItem(value))if(this.referenceIntegrity)this._addReferenceToMap(value,item,key)}}}}},_addReferenceToMap:function(refItem,parentItem,attribute){},getIdentity:function(item){var identifier=
this._features["dojo.data.api.Identity"];if(identifier===Number)return item[this._itemNumPropName];else{var arrayOfValues=item[identifier];if(arrayOfValues)return arrayOfValues[0]}return null},fetchItemByIdentity:function(keywordArgs){var item,scope;if(!this._loadFinished){var self=this;if(this._jsonFileUrl!==this._ccUrl){kernel.deprecated(this.declaredClass+": ","To change the url, set the url property of the store,"+" not _jsonFileUrl.  _jsonFileUrl support will be removed in 2.0");this._ccUrl=
this._jsonFileUrl;this.url=this._jsonFileUrl}else if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null}if(this._jsonFileUrl)if(this._loadInProgress)this._queuedFetches.push({args:keywordArgs});else{this._loadInProgress=true;var getArgs={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var getHandler=xhr.get(getArgs);getHandler.addCallback(function(data){var scope=
keywordArgs.scope?keywordArgs.scope:kernel.global;try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;item=self._getItemByIdentity(keywordArgs.identity);if(keywordArgs.onItem)keywordArgs.onItem.call(scope,item);self._handleQueuedFetches()}catch(error){self._loadInProgress=false;if(keywordArgs.onError)keywordArgs.onError.call(scope,error)}});getHandler.addErrback(function(error){self._loadInProgress=false;if(keywordArgs.onError){var scope=keywordArgs.scope?keywordArgs.scope:
kernel.global;keywordArgs.onError.call(scope,error)}})}else if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;item=self._getItemByIdentity(keywordArgs.identity);if(keywordArgs.onItem){scope=keywordArgs.scope?keywordArgs.scope:kernel.global;keywordArgs.onItem.call(scope,item)}}}else{item=this._getItemByIdentity(keywordArgs.identity);if(keywordArgs.onItem){scope=keywordArgs.scope?keywordArgs.scope:kernel.global;keywordArgs.onItem.call(scope,
item)}}},_getItemByIdentity:function(identity){var item=null;if(this._itemsByIdentity){if(Object.hasOwnProperty.call(this._itemsByIdentity,identity))item=this._itemsByIdentity[identity]}else if(Object.hasOwnProperty.call(this._arrayOfAllItems,identity))item=this._arrayOfAllItems[identity];if(item===undefined)item=null;return item},getIdentityAttributes:function(item){var identifier=this._features["dojo.data.api.Identity"];if(identifier===Number)return null;else return[identifier]},_forceLoad:function(){var self=
this;if(this._jsonFileUrl!==this._ccUrl){kernel.deprecated(this.declaredClass+": ","To change the url, set the url property of the store,"+" not _jsonFileUrl.  _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl}else if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url}if(this.data!=null){this._jsonData=this.data;this.data=null}if(this._jsonFileUrl){var getArgs={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,
failOk:this.failOk,sync:true};var getHandler=xhr.get(getArgs);getHandler.addCallback(function(data){try{if(self._loadInProgress!==true&&!self._loadFinished){self._getItemsFromLoadedData(data);self._loadFinished=true}else if(self._loadInProgress)throw new Error(this.declaredClass+":  Unable to perform a synchronous load, an async load is in progress.");}catch(e){0&&console.log(e);throw e;}});getHandler.addErrback(function(error){throw error;})}else if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);
self._jsonData=null;self._loadFinished=true}}});lang.extend(ItemFileReadStore,simpleFetch);return ItemFileReadStore})},"dojo/dnd/Selector":function(){define("dojo/dnd/Selector",["../_base/array","../_base/declare","../_base/kernel","../_base/lang","../dom","../dom-construct","../mouse","../_base/NodeList","../on","../touch","./common","./Container"],function(array,declare,kernel,lang,dom,domConstruct,mouse,NodeList,on,touch,dnd,Container){var Selector=declare("dojo.dnd.Selector",Container,{constructor:function(node,
params){if(!params)params={};this.singular=params.singular;this.autoSync=params.autoSync;this.selection={};this.anchor=null;this.simpleSelection=false;this.events.push(on(this.node,touch.press,lang.hitch(this,"onMouseDown")),on(this.node,touch.release,lang.hitch(this,"onMouseUp")))},singular:false,getSelectedNodes:function(){var t=new NodeList;var e=dnd._empty;for(var i in this.selection){if(i in e)continue;t.push(dom.byId(i))}return t},selectNone:function(){return this._removeSelection()._removeAnchor()},
selectAll:function(){this.forInItems(function(data,id){this._addItemClass(dom.byId(id),"Selected");this.selection[id]=1},this);return this._removeAnchor()},deleteSelectedNodes:function(){var e=dnd._empty;for(var i in this.selection){if(i in e)continue;var n=dom.byId(i);this.delItem(i);domConstruct.destroy(n)}this.anchor=null;this.selection={};return this},forInSelectedItems:function(f,o){o=o||kernel.global;var s=this.selection,e=dnd._empty;for(var i in s){if(i in e)continue;f.call(o,this.getItem(i),
i,this)}},sync:function(){Selector.superclass.sync.call(this);if(this.anchor)if(!this.getItem(this.anchor.id))this.anchor=null;var t=[],e=dnd._empty;for(var i in this.selection){if(i in e)continue;if(!this.getItem(i))t.push(i)}array.forEach(t,function(i){delete this.selection[i]},this);return this},insertNodes:function(addSelected,data,before,anchor){var oldCreator=this._normalizedCreator;this._normalizedCreator=function(item,hint){var t=oldCreator.call(this,item,hint);if(addSelected){if(!this.anchor){this.anchor=
t.node;this._removeItemClass(t.node,"Selected");this._addItemClass(this.anchor,"Anchor")}else if(this.anchor!=t.node){this._removeItemClass(t.node,"Anchor");this._addItemClass(t.node,"Selected")}this.selection[t.node.id]=1}else{this._removeItemClass(t.node,"Selected");this._removeItemClass(t.node,"Anchor")}return t};Selector.superclass.insertNodes.call(this,data,before,anchor);this._normalizedCreator=oldCreator;return this},destroy:function(){Selector.superclass.destroy.call(this);this.selection=
this.anchor=null},onMouseDown:function(e){if(this.autoSync)this.sync();if(!this.current)return;if(!this.singular&&!dnd.getCopyKeyState(e)&&!e.shiftKey&&this.current.id in this.selection){this.simpleSelection=true;if(mouse.isLeft(e)){e.stopPropagation();e.preventDefault()}return}if(!this.singular&&e.shiftKey){if(!dnd.getCopyKeyState(e))this._removeSelection();var c=this.getAllNodes();if(c.length){if(!this.anchor){this.anchor=c[0];this._addItemClass(this.anchor,"Anchor")}this.selection[this.anchor.id]=
1;if(this.anchor!=this.current){var i=0,node;for(;i<c.length;++i){node=c[i];if(node==this.anchor||node==this.current)break}for(++i;i<c.length;++i){node=c[i];if(node==this.anchor||node==this.current)break;this._addItemClass(node,"Selected");this.selection[node.id]=1}this._addItemClass(this.current,"Selected");this.selection[this.current.id]=1}}}else if(this.singular)if(this.anchor==this.current){if(dnd.getCopyKeyState(e))this.selectNone()}else{this.selectNone();this.anchor=this.current;this._addItemClass(this.anchor,
"Anchor");this.selection[this.current.id]=1}else if(dnd.getCopyKeyState(e))if(this.anchor==this.current){delete this.selection[this.anchor.id];this._removeAnchor()}else if(this.current.id in this.selection){this._removeItemClass(this.current,"Selected");delete this.selection[this.current.id]}else{if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this._addItemClass(this.anchor,"Selected")}this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1}else if(!(this.current.id in
this.selection)){this.selectNone();this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1}e.stopPropagation();e.preventDefault()},onMouseUp:function(){if(!this.simpleSelection)return;this.simpleSelection=false;this.selectNone();if(this.current){this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1}},onMouseMove:function(){this.simpleSelection=false},onOverEvent:function(){this.onmousemoveEvent=on(this.node,
touch.move,lang.hitch(this,"onMouseMove"))},onOutEvent:function(){if(this.onmousemoveEvent){this.onmousemoveEvent.remove();delete this.onmousemoveEvent}},_removeSelection:function(){var e=dnd._empty;for(var i in this.selection){if(i in e)continue;var node=dom.byId(i);if(node)this._removeItemClass(node,"Selected")}this.selection={};return this},_removeAnchor:function(){if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this.anchor=null}return this}});return Selector})},"dgrid/OnDemandList":function(){define(["./List",
"./_StoreMixin","dojo/_base/declare","dojo/_base/lang","dojo/_base/Deferred","dojo/dom","dojo/on","./util/misc","put-selector/put"],function(List,_StoreMixin,declare,lang,Deferred,dom,listen,miscUtil,put){return declare([List,_StoreMixin],{minRowsPerPage:25,maxRowsPerPage:250,maxEmptySpace:Infinity,bufferRows:10,farOffRemoval:2E3,queryRowsOverlap:0,pagingMethod:"debounce",pagingDelay:miscUtil.defaultDelay,keepScrollPosition:false,rowHeight:22,postCreate:function(){this.inherited(arguments);var self=
this;listen(this.bodyNode,"scroll",miscUtil[this.pagingMethod](function(event){self._processScroll(event)},null,this.pagingDelay))},renderQuery:function(query,preloadNode,options){var self=this,preload={query:query,count:0,node:preloadNode,options:options},priorPreload=this.preload,results;if(!preloadNode){var topPreload={node:put(this.contentNode,"div.dgrid-preload",{rowIndex:0}),count:0,query:query,next:preload,options:options};topPreload.node.style.height="0";preload.node=preloadNode=put(this.contentNode,
"div.dgrid-preload");preload.previous=topPreload}preloadNode.rowIndex=this.minRowsPerPage;if(priorPreload){if((preload.next=priorPreload.next)&&preloadNode.offsetTop>=priorPreload.node.offsetTop)preload.previous=priorPreload;else{preload.next=priorPreload;preload.previous=priorPreload.previous}preload.previous.next=preload;preload.next.previous=preload}else this.preload=preload;var loadingNode=put(preloadNode,"-div.dgrid-loading"),innerNode=put(loadingNode,"div.dgrid-below");innerNode.innerHTML=this.loadingMessage;
function errback(err){put(loadingNode,"!");if(err){if(self._refreshDeferred){self._refreshDeferred.reject(err);delete self._refreshDeferred}throw err;}}options=lang.mixin(this.get("queryOptions"),options,{start:0,count:this.minRowsPerPage},"level"in query?{queryLevel:query.level}:null);this._trackError(function(){return results=query(options)});if(typeof results==="undefined"){errback();return}Deferred.when(self.renderArray(results,preloadNode,options),function(trs){var total=typeof results.total===
"undefined"?results.length:results.total;return Deferred.when(total,function(total){var trCount=trs.length,parentNode=preloadNode.parentNode,noDataNode=self.noDataNode;put(loadingNode,"!");if(!("queryLevel"in options))self._total=total;if(total===0){if(noDataNode){put(noDataNode,"!");delete self.noDataNode}self.noDataNode=noDataNode=put("div.dgrid-no-data");parentNode.insertBefore(noDataNode,self._getFirstRowSibling(parentNode));noDataNode.innerHTML=self.noDataMessage}var height=0;for(var i=0;i<trCount;i++)height+=
self._calcRowHeight(trs[i]);if(trCount&&height)self.rowHeight=height/trCount;total-=trCount;preload.count=total;preloadNode.rowIndex=trCount;if(total)preloadNode.style.height=Math.min(total*self.rowHeight,self.maxEmptySpace)+"px";else{preloadNode.style.display="none";options.count++}if(self._previousScrollPosition){self.scrollTo(self._previousScrollPosition);delete self._previousScrollPosition}self._processScroll();if(self._refreshDeferred){self._refreshDeferred.resolve(results);delete self._refreshDeferred}return trs},
errback)},errback);return results},refresh:function(options){var self=this,keep=options&&options.keepScrollPosition,dfd,results;if(typeof keep==="undefined")keep=this.keepScrollPosition;if(keep)this._previousScrollPosition=this.getScrollPosition();this.inherited(arguments);if(this.store){dfd=this._refreshDeferred=new Deferred;results=self.renderQuery(function(queryOptions){return self.store.query(self.query,queryOptions)});if(typeof results==="undefined")dfd.reject();return dfd.then(function(results){setTimeout(function(){listen.emit(self.domNode,
"dgrid-refresh-complete",{bubbles:true,cancelable:false,grid:self,results:results})},0);delete self._refreshDeferred;return results},function(err){delete self._refreshDeferred;throw err;})}},resize:function(){this.inherited(arguments);this._processScroll()},_getFirstRowSibling:function(container){return container.lastChild},_calcRowHeight:function(rowElement){var sibling=rowElement.previousSibling;if(sibling&&!/\bdgrid-preload\b/.test(sibling.className))return rowElement.offsetTop-sibling.offsetTop;
return rowElement.offsetHeight},lastScrollTop:0,_processScroll:function(evt){var grid=this,scrollNode=grid.bodyNode,visibleTop=evt&&evt.scrollTop||this.getScrollPosition().y,visibleBottom=scrollNode.offsetHeight+visibleTop,priorPreload,preloadNode,preload=grid.preload,lastScrollTop=grid.lastScrollTop,requestBuffer=grid.bufferRows*grid.rowHeight,searchBuffer=requestBuffer-grid.rowHeight,refreshDfd,lastResults,lastRows,preloadSearchNext=true;var mungeAmount=1;grid.lastScrollTop=visibleTop;function removeDistantNodes(preload,
distanceOff,traversal,below){var farOffRemoval=grid.farOffRemoval,preloadNode=preload.node;if(distanceOff>2*farOffRemoval){var row,nextRow=preloadNode[traversal];var reclaimedHeight=0;var count=0;var toDelete=[];while(row=nextRow){var rowHeight=grid._calcRowHeight(row);if(reclaimedHeight+rowHeight+farOffRemoval>distanceOff||nextRow.className.indexOf("dgrid-row")<0&&nextRow.className.indexOf("dgrid-loading")<0)break;var nextRow=row[traversal];reclaimedHeight+=rowHeight;count+=row.count||1;grid.removeRow(row,
true);toDelete.push(row)}preload.count+=count;if(below){preloadNode.rowIndex-=count;adjustHeight(preload)}else preloadNode.style.height=preloadNode.offsetHeight+reclaimedHeight+"px";var trashBin=put("div",toDelete);setTimeout(function(){put(trashBin,"!")},1)}}function adjustHeight(preload,noMax){preload.node.style.height=Math.min(preload.count*grid.rowHeight,noMax?Infinity:grid.maxEmptySpace)+"px"}function traversePreload(preload,moveNext){do preload=moveNext?preload.next:preload.previous;while(preload&&
!preload.node.offsetWidth);return preload}while(preload&&!preload.node.offsetWidth)preload=preload.previous;while(preload&&preload!=priorPreload){priorPreload=grid.preload;grid.preload=preload;preloadNode=preload.node;var preloadTop=preloadNode.offsetTop;var preloadHeight;if(visibleBottom+mungeAmount+searchBuffer<preloadTop)preload=traversePreload(preload,preloadSearchNext=false);else if(visibleTop-mungeAmount-searchBuffer>preloadTop+(preloadHeight=preloadNode.offsetHeight))preload=traversePreload(preload,
preloadSearchNext=true);else{var offset=((preloadNode.rowIndex?visibleTop-requestBuffer:visibleBottom)-preloadTop)/grid.rowHeight;var count=(visibleBottom-visibleTop+2*requestBuffer)/grid.rowHeight;var momentum=Math.max(Math.min((visibleTop-lastScrollTop)*grid.rowHeight,grid.maxRowsPerPage/2),grid.maxRowsPerPage/-2);count+=Math.min(Math.abs(momentum),10);if(preloadNode.rowIndex==0)offset-=count;offset=Math.max(offset,0);if(offset<10&&offset>0&&count+offset<grid.maxRowsPerPage){count+=Math.max(0,offset);
offset=0}count=Math.min(Math.max(count,grid.minRowsPerPage),grid.maxRowsPerPage,preload.count);if(count==0){preload=traversePreload(preload,preloadSearchNext);continue}count=Math.ceil(count);offset=Math.min(Math.floor(offset),preload.count-count);var options=lang.mixin(grid.get("queryOptions"),preload.options);preload.count-=count;var beforeNode=preloadNode,keepScrollTo,queryRowsOverlap=grid.queryRowsOverlap,below=preloadNode.rowIndex>0&&preload;if(below){var previous=preload.previous;if(previous){removeDistantNodes(previous,
visibleTop-(previous.node.offsetTop+previous.node.offsetHeight),"nextSibling");if(offset>0&&previous.node==preloadNode.previousSibling){offset=Math.min(preload.count,offset);preload.previous.count+=offset;adjustHeight(preload.previous,true);preloadNode.rowIndex+=offset;queryRowsOverlap=0}else count+=offset;preload.count-=offset}options.start=preloadNode.rowIndex-queryRowsOverlap;options.count=Math.min(count+queryRowsOverlap,grid.maxRowsPerPage);preloadNode.rowIndex=options.start+options.count}else{if(preload.next){removeDistantNodes(preload.next,
preload.next.node.offsetTop-visibleBottom,"previousSibling",true);var beforeNode=preloadNode.nextSibling;if(beforeNode==preload.next.node){preload.next.count+=preload.count-offset;preload.next.node.rowIndex=offset+count;adjustHeight(preload.next);preload.count=offset;queryRowsOverlap=0}else keepScrollTo=true}options.start=preload.count;options.count=Math.min(count+queryRowsOverlap,grid.maxRowsPerPage)}if(keepScrollTo&&beforeNode&&beforeNode.offsetWidth)keepScrollTo=beforeNode.offsetTop;adjustHeight(preload);
if("level"in preload.query)options.queryLevel=preload.query.level;if(!("queryLevel"in options)&&(options.start>grid._total||options.count<0))continue;var loadingNode=put(beforeNode,"-div.dgrid-loading[style\x3dheight:"+count*grid.rowHeight+"px]"),innerNode=put(loadingNode,"div.dgrid-"+(below?"below":"above"));innerNode.innerHTML=grid.loadingMessage;loadingNode.count=count;var results=preload.query(options),trackedResults=grid._trackError(function(){return results});if(trackedResults===undefined){put(loadingNode,
"!");return}(function(loadingNode,below,keepScrollTo,results){lastRows=Deferred.when(grid.renderArray(results,loadingNode,options),function(rows){lastResults=results;beforeNode=loadingNode.nextSibling;put(loadingNode,"!");if(keepScrollTo&&beforeNode&&beforeNode.offsetWidth){var pos=grid.getScrollPosition();grid.scrollTo({x:pos.x,y:pos.y+beforeNode.offsetTop-keepScrollTo,preserveMomentum:true})}Deferred.when(results.total||results.length,function(total){if(!("queryLevel"in options))grid._total=total;
if(below){below.count=total-below.node.rowIndex;if(below.count===0)options.count++;adjustHeight(below)}});grid._processScroll();return rows},function(e){put(loadingNode,"!");throw e;})}).call(this,loadingNode,below,keepScrollTo,results);preload=preload.previous}}if(lastRows&&(refreshDfd=this._refreshDeferred)){delete this._refreshDeferred;Deferred.when(lastRows,function(){refreshDfd.resolve(lastResults)})}},removeRow:function(rowElement,justCleanup){function chooseIndex(index1,index2){return index1!=
null?index1:index2}if(rowElement){var previousNode=rowElement.previousSibling,nextNode=rowElement.nextSibling,prevIndex=previousNode&&chooseIndex(previousNode.observerIndex,previousNode.previousObserverIndex),nextIndex=nextNode&&chooseIndex(nextNode.observerIndex,nextNode.nextObserverIndex),thisIndex=rowElement.observerIndex;rowElement.observerIndex=undefined;if(justCleanup){rowElement.nextObserverIndex=nextIndex;rowElement.previousObserverIndex=prevIndex}if(this.cleanEmptyObservers&&thisIndex>-1&&
thisIndex!==prevIndex&&thisIndex!==nextIndex){var observers=this.observers;var observer=observers[thisIndex];if(observer){if(!justCleanup){var rows=observer.rows;for(var i=0;i<rows.length;i++)if(rows[i]!=rowElement&&dom.isDescendant(rows[i],this.domNode))return this.inherited(arguments)}observer.cancel();this._numObservers--;observers[thisIndex]=0}}}this.inherited(arguments)}})})},"cbtree/util/shim/Array":function(){define("cbtree/util/shim/Array",[],function(){if(!Array.prototype.every)Array.prototype.every=
function(fun){if(this==null)throw new TypeError;var t=Object(this);var len=t.length>>>0;if(typeof fun!="function")throw new TypeError;var thisp=arguments[1];for(var i=0;i<len;i++)if(i in t&&!fun.call(thisp,t[i],i,t))return false;return true};if(!Array.prototype.filter)Array.prototype.filter=function(fun){if(this==null)throw new TypeError;var t=Object(this);var len=t.length>>>0;if(typeof fun!="function")throw new TypeError;var res=[];var thisp=arguments[1];for(var i=0;i<len;i++)if(i in t){var val=
t[i];if(fun.call(thisp,val,i,t))res.push(val)}return res};if(!Array.prototype.forEach)Array.prototype.forEach=function forEach(callback,thisArg){var T,k;if(this==null)throw new TypeError("this is null or not defined");var O=Object(this);var len=O.length>>>0;if({}.toString.call(callback)!=="[object Function]")throw new TypeError(callback+" is not a function");if(thisArg)T=thisArg;k=0;while(k<len){var kValue;if(Object.prototype.hasOwnProperty.call(O,k)){kValue=O[k];callback.call(T,kValue,k,O)}k++}};
if(!Array.prototype.indexOf)Array.prototype.indexOf=function(searchElement){if(this==null)throw new TypeError;var t=Object(this);var len=t.length>>>0;if(len===0)return-1;var n=0;if(arguments.length>1){n=Number(arguments[1]);if(n!=n)n=0;else if(n!=0&&n!=Infinity&&n!=-Infinity)n=(n>0||-1)*Math.floor(Math.abs(n))}if(n>=len)return-1;var k=n>=0?n:Math.max(len-Math.abs(n),0);for(;k<len;k++)if(k in t&&t[k]===searchElement)return k;return-1};if(!Array.prototype.lastIndexOf)Array.prototype.lastIndexOf=function(searchElement){if(this==
null)throw new TypeError;var t=Object(this);var len=t.length>>>0;if(len===0)return-1;var n=len;if(arguments.length>1){n=Number(arguments[1]);if(n!=n)n=0;else if(n!=0&&n!=1/0&&n!=-(1/0))n=(n>0||-1)*Math.floor(Math.abs(n))}var k=n>=0?Math.min(n,len-1):len-Math.abs(n);for(;k>=0;k--)if(k in t&&t[k]===searchElement)return k;return-1};if(!Array.prototype.map)Array.prototype.map=function(callback,thisArg){if(this==null)throw new TypeError(" this is null or not defined");var T,A,k;var O=Object(this);var len=
O.length>>>0;if({}.toString.call(callback)!="[object Function]")throw new TypeError(callback+" is not a function");if(thisArg)T=thisArg;A=new Array(len);k=0;while(k<len){var kValue,mappedValue;if(k in O){kValue=O[k];mappedValue=callback.call(T,kValue,k,O);A[k]=mappedValue}k++}return A};if(!Array.prototype.some)Array.prototype.some=function(fun){if(this==null)throw new TypeError;var t=Object(this);var len=t.length>>>0;if(typeof fun!="function")throw new TypeError;var thisp=arguments[1];for(var i=0;i<
len;i++)if(i in t&&fun.call(thisp,t[i],i,t))return true;return false}})},"dojox/json/schema":function(){define("dojox/json/schema",["dojo/_base/kernel","dojox","dojo/_base/array"],function(dojo,dojox){dojo.getObject("json.schema",true,dojox);dojox.json.schema.validate=function(instance,schema){return this._validate(instance,schema,false)};dojox.json.schema.checkPropertyChange=function(value,schema,property){return this._validate(value,schema,property||"property")};dojox.json.schema.mustBeValid=function(result){if(!result.valid)throw new TypeError(dojo.map(result.errors,
function(error){return"for property "+error.property+": "+error.message}).join(", "));};dojox.json.schema._validate=function(instance,schema,_changing){var errors=[];function checkProp(value,schema,path,i){var l;path+=path?typeof i=="number"?"["+i+"]":typeof i=="undefined"?"":"."+i:i;function addError(message){errors.push({property:path,message:message})}if((typeof schema!="object"||schema instanceof Array)&&(path||typeof schema!="function")){if(typeof schema=="function"){if(!(Object(value)instanceof
schema))addError("is not an instance of the class/constructor "+schema.name)}else if(schema)addError("Invalid schema/property definition "+schema);return null}if(_changing&&schema.readonly)addError("is a readonly field, it can not be changed");if(schema["extends"])checkProp(value,schema["extends"],path,i);function checkType(type,value){if(type){if(typeof type=="string"&&type!="any"&&(type=="null"?value!==null:typeof value!=type)&&!(value instanceof Array&&type=="array")&&!(type=="integer"&&value%
1===0))return[{property:path,message:typeof value+" value found, but a "+type+" is required"}];if(type instanceof Array){var unionErrors=[];for(var j=0;j<type.length;j++)if(!(unionErrors=checkType(type[j],value)).length)break;if(unionErrors.length)return unionErrors}else if(typeof type=="object"){var priorErrors=errors;errors=[];checkProp(value,type,path);var theseErrors=errors;errors=priorErrors;return theseErrors}}return[]}if(value===undefined){if(!schema.optional)addError("is missing and it is not optional")}else{errors=
errors.concat(checkType(schema.type,value));if(schema.disallow&&!checkType(schema.disallow,value).length)addError(" disallowed value was matched");if(value!==null){if(value instanceof Array){if(schema.items)if(schema.items instanceof Array)for(i=0,l=value.length;i<l;i++)errors.concat(checkProp(value[i],schema.items[i],path,i));else for(i=0,l=value.length;i<l;i++)errors.concat(checkProp(value[i],schema.items,path,i));if(schema.minItems&&value.length<schema.minItems)addError("There must be a minimum of "+
schema.minItems+" in the array");if(schema.maxItems&&value.length>schema.maxItems)addError("There must be a maximum of "+schema.maxItems+" in the array")}else if(schema.properties)errors.concat(checkObj(value,schema.properties,path,schema.additionalProperties));if(schema.pattern&&typeof value=="string"&&!value.match(schema.pattern))addError("does not match the regex pattern "+schema.pattern);if(schema.maxLength&&typeof value=="string"&&value.length>schema.maxLength)addError("may only be "+schema.maxLength+
" characters long");if(schema.minLength&&typeof value=="string"&&value.length<schema.minLength)addError("must be at least "+schema.minLength+" characters long");if(typeof schema.minimum!==undefined&&typeof value==typeof schema.minimum&&schema.minimum>value)addError("must have a minimum value of "+schema.minimum);if(typeof schema.maximum!==undefined&&typeof value==typeof schema.maximum&&schema.maximum<value)addError("must have a maximum value of "+schema.maximum);if(schema["enum"]){var enumer=schema["enum"];
l=enumer.length;var found;for(var j=0;j<l;j++)if(enumer[j]===value){found=1;break}if(!found)addError("does not have a value in the enumeration "+enumer.join(", "))}if(typeof schema.maxDecimal=="number"&&value.toString().match(new RegExp("\\.[0-9]{"+(schema.maxDecimal+1)+",}")))addError("may only have "+schema.maxDecimal+" digits of decimal places")}}return null}function checkObj(instance,objTypeDef,path,additionalProp){if(typeof objTypeDef=="object"){if(typeof instance!="object"||instance instanceof
Array)errors.push({property:path,message:"an object is required"});for(var i in objTypeDef)if(objTypeDef.hasOwnProperty(i)&&!(i.charAt(0)=="_"&&i.charAt(1)=="_")){var value=instance[i];var propDef=objTypeDef[i];checkProp(value,propDef,path,i)}}for(i in instance){if(instance.hasOwnProperty(i)&&!(i.charAt(0)=="_"&&i.charAt(1)=="_")&&objTypeDef&&!objTypeDef[i]&&additionalProp===false)errors.push({property:path,message:typeof value+"The property "+i+" is not defined in the schema and the schema does not allow additional properties"});
var requires=objTypeDef&&objTypeDef[i]&&objTypeDef[i].requires;if(requires&&!(requires in instance))errors.push({property:path,message:"the presence of the property "+i+" requires that "+requires+" also be present"});value=instance[i];if(objTypeDef&&typeof objTypeDef=="object"&&!(i in objTypeDef))checkProp(value,additionalProp,path,i);if(!_changing&&value&&value.$schema)errors=errors.concat(checkProp(value,value.$schema,path,i))}return errors}if(schema)checkProp(instance,schema,"",_changing||"");
if(!_changing&&instance&&instance.$schema)checkProp(instance,instance.$schema,"","");return{valid:!errors.length,errors:errors}};return dojox.json.schema})},"dijit/MenuBarItem":function(){require({cache:{"url:dijit/templates/MenuBarItem.html":'\x3cdiv class\x3d"dijitReset dijitInline dijitMenuItem dijitMenuItemLabel" data-dojo-attach-point\x3d"focusNode"\n\t \trole\x3d"menuitem" tabIndex\x3d"-1"\x3e\n\t\x3cspan data-dojo-attach-point\x3d"containerNode,textDirNode"\x3e\x3c/span\x3e\n\x3c/div\x3e\n'}});
define("dijit/MenuBarItem",["dojo/_base/declare","./MenuItem","dojo/text!./templates/MenuBarItem.html"],function(declare,MenuItem,template){var _MenuBarItemMixin=declare("dijit._MenuBarItemMixin",null,{templateString:template,_setIconClassAttr:null});var MenuBarItem=declare("dijit.MenuBarItem",[MenuItem,_MenuBarItemMixin],{});MenuBarItem._MenuBarItemMixin=_MenuBarItemMixin;return MenuBarItem})},"dijit/form/CheckBox":function(){require({cache:{"url:dijit/form/templates/CheckBox.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline" role\x3d"presentation"\n\t\x3e\x3cinput\n\t \t${!nameAttrSetting} type\x3d"${type}" role\x3d"${type}" aria-checked\x3d"false" ${checkedAttrSetting}\n\t\tclass\x3d"dijitReset dijitCheckBoxInput"\n\t\tdata-dojo-attach-point\x3d"focusNode"\n\t \tdata-dojo-attach-event\x3d"ondijitclick:_onClick"\n/\x3e\x3c/div\x3e\n'}});
define("dijit/form/CheckBox",["require","dojo/_base/declare","dojo/dom-attr","dojo/has","dojo/query","dojo/ready","./ToggleButton","./_CheckBoxMixin","dojo/text!./templates/CheckBox.html","dojo/NodeList-dom","dijit/a11yclick"],function(require,declare,domAttr,has,query,ready,ToggleButton,_CheckBoxMixin,template){if(has("dijit-legacy-requires"))ready(0,function(){var requires=["dijit/form/RadioButton"];require(requires)});return declare("dijit.form.CheckBox",[ToggleButton,_CheckBoxMixin],{templateString:template,
baseClass:"dijitCheckBox",_setValueAttr:function(newValue,priorityChange){if(typeof newValue=="string"){this.inherited(arguments);newValue=true}if(this._created)this.set("checked",newValue,priorityChange)},_getValueAttr:function(){return this.checked&&this._get("value")},_setIconClassAttr:null,_setNameAttr:"focusNode",postMixInProperties:function(){this.inherited(arguments);this.checkedAttrSetting=""},_fillContent:function(){},_onFocus:function(){if(this.id)query("label[for\x3d'"+this.id+"']").addClass("dijitFocusedLabel");
this.inherited(arguments)},_onBlur:function(){if(this.id)query("label[for\x3d'"+this.id+"']").removeClass("dijitFocusedLabel");this.inherited(arguments)}})})},"cbtree/model/FileStoreModel":function(){define("cbtree/model/FileStoreModel",["module","dojo/_base/declare","dojo/when","./_base/CheckedStoreModel","./_base/Parents","../errors/createError!../errors/CBTErrors.json"],function(module,declare,when,CheckedStoreModel,Parents,createError){var CBTError=createError(module.id);var FileStoreModel=declare([CheckedStoreModel],
{constructor:function(kwArgs){var store=this.store;var model=this;if(store)if(store.defaultProperties&&typeof store.defaultProperties=="object")store.defaultProperties[this.checkedAttr]=this.checkedState},getChildren:function(parent,onComplete,onError){this._getChildren(parent,function(parent,id){return this.store.getChildren(parent)},onComplete,onError)},mayHaveChildren:function(item){return item&&!!item.directory},newItem:function(args,parent,insertIndex,before){throw new CBTError("InvalidAccess",
"newItem","Operation not allowed on a FileObjectStore");},pasteItem:function(childItem,oldParentItem,newParentItem){if(newParentItem.directory&&newParentItem.path!=oldParentItem.path){var parentIds=new Parents(childItem,this.parentAttr);var oldParentId=this.getIdentity(oldParentItem);var self=this;var newPath=newParentItem.path+"/"+childItem.name;when(this.store.rename(childItem,newPath),function(){if(!self.store.evented)self._childrenChanged([oldParentItem,newParentItem])})}},_onDeleteItem:function(item){var id=
this.getIdentity(item);var self=this;when(this.store.get(id,true),function(exists){if(!exists)delete self._objectCache[id]},function(err){delete self._objectCache[id]});self._deleteCacheEntry(id);self.onDelete(item);this.getParents(item).then(function(parents){self._childrenChanged(parents)})},toString:function(){return"[object FileStoreModel]"}});return FileStoreModel})},"cbtree/errors/createError":function(){define("cbtree/errors/createError",["dojo/_base/lang","dojo/request","../util/shim/Array"],
function(lang,request){var C_UNKNOWN={text:"Undefined error",code:0};var cacheURL={};var errorNames={};function addMessage(messages){function validMsg(msgObj){var key,value;for(key in msgObj)if(/\W/.test(key)||!(value=msgObj[key])||!value.text)return false;return true}switch(Object.prototype.toString.call(messages)){case "[object Array]":messages.forEach(addMessage);break;case "[object Object]":if(validMsg(messages))errorNames=lang.mixin(errorNames,messages);break}}function getMessage(type,text){var abbr=
(type||"").replace(/Error$/,"");var base=abbr+"Error";var msg={type:base,text:"",code:0};if(abbr)msg=lang.mixin(msg,errorNames[base]||errorNames[abbr]||C_UNKNOWN);msg.text=text||msg.text;return msg}function createError(module,errors){function cbtError(type,method,message){var path=module+(method?prefix+method+"()":"");var msgObj;if(type instanceof Error){for(var prop in type)if(type.hasOwnProperty(prop))this[prop]=type[prop];msgObj={type:type.name,code:type.code||0,text:message||type.message}}else msgObj=
getMessage(type,message);if(arguments.length>2){var args=Array.prototype.slice.call(arguments,3);msgObj.text=msgObj.text.replace(/\%\{(\d+)\}/g,function(token,argIdx){return args[argIdx]!=undefined?args[argIdx]:token})}this.message=(path.length?path+": ":"")+msgObj.text;this.code=msgObj.code;this.name=msgObj.type}var prefix=module?"::":"";var module=module||"";addMessage(errors||{});cbtError.prototype=new Error;cbtError.prototype.constructor=cbtError;return cbtError}createError.normalize=function(resource,
toAbsMid){var paths=resource.split("!"),paths=paths.map(function(path){return/^\./.test(path)?toAbsMid(path):path});return paths.join("!")};createError.load=function(resource,require,loaded){function resourceDone(){if(--rscCount==0)loaded(createError)}var resources=resource.split("!"),rscCount=resources.length;resources.forEach(function(url){url=require.toUrl(url);if(!(url in cacheURL)){request(url,{handleAs:"json"}).then(function(response){addMessage(response);resourceDone()},function(err){0&&console.log(err);
resourceDone()});cacheURL[url]=true}else resourceDone()})};return createError})},"xwordpress/GUIALL":function(){define("xwordpress/GUIALL",["dojo/_base/declare","xas/factory/ViewFactory","xas/factory/WidgetFactory","xide/factory/Widgets","xas/factory/EditorFactory","xas/utils/WidgetUtils","dojox/widget/Standby","xfile/factory","xfile/factory/model","xfile/factory/views","xfile/views/ToggleSplitter","xstyle/has-class","xide/factory","xide/factory/Widgets","xide/factory/Views"],function(declare){return declare("xwordpress.GUIALL",
null,{})})},"cbtree/models/TreeStoreModel":function(){define("cbtree/models/TreeStoreModel",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/aspect","dojo/has","dojo/json","dojo/Stateful","./ItemWriteStoreEX"],function(array,declare,lang,aspect,has,json,Stateful,ItemWriteStoreEX){return declare([Stateful],{checkedAll:true,checkedState:false,checkedRoot:false,checkedStrict:true,checkedAttr:"checked",childrenAttrs:["children"],deferItemLoadingUntilExpand:false,enabledAttr:"",excludeChildrenAttrs:null,
iconAttr:"",labelAttr:"",multiState:true,newItemIdAttr:"id",normalize:true,query:null,store:null,moduleName:"cbTree/models/TreeStoreModel",hasFakeRoot:false,root:null,_checkedChildrenAttrs:null,_queryAttrs:[],_validateStore:true,_validating:0,constructor:function(args){declare.safeMixin(this,args);this.connects=[];var store=this.store;if(!store.getFeatures()["dojo.data.api.Identity"])throw new Error(this.moduleName+"constructor(): store must support dojo.data.Identity");has.add("tree-model-getChecked",
1);if(!store.getFeatures()["dojo.data.api.Write"]){0&&console.warn(this.moduleName+"::constructor(): store is not write enabled.");this._writeEnabled=false}else{has.add("tree-model-setChecked",1);this._writeEnabled=true}if(store.getFeatures()["dojo.data.api.Notification"])this.connects=this.connects.concat([aspect.after(store,"onLoad",lang.hitch(this,"onStoreLoaded"),true),aspect.after(store,"onNew",lang.hitch(this,"onNewItem"),true),aspect.after(store,"onDelete",lang.hitch(this,"onDeleteItem"),true),
aspect.after(store,"onSet",lang.hitch(this,"onSetItem"),true),aspect.after(store,"onRoot",lang.hitch(this,"onRootChange"),true)]);this._checkedChildrenAttrs=this._diffArrays(this.childrenAttrs,this.excludeChildrenAttrs);if(this.query){var attr;for(attr in this.query)this._queryAttrs.push(attr)}dojo.deprecated("{cbtree/models/TreeStoreModel}","Migrate to the new models in cbtree/model/","2.0")},destroy:function(){var h;while(h=this.connects.pop())h.remove();this.store=null},_checkedStrictSetter:function(value){value=
value?true:false;if(this.checkedStrict!==value){this.checkedStrict=value;if(this.checkedStrict)this.getRoot(lang.hitch(this,function(rootItem){this.getChildren(rootItem,lang.hitch(this,function(children){this._validateChildren(rootItem,children)}))}))}return this.checkedStrict},_enabledAttrSetter:function(value){if(lang.isString(value)){if(this.enabledAttr!==value)throw new Error(this.moduleName+"::set(): enabledAttr property is read-only.");}else throw new Error(this.moduleName+"::set(): enabledAttr value must be a string");
return this.enabledAttr},_labelAttrGetter:function(){return this.getLabelAttr()},_labelAttrSetter:function(value){return this.setLabelAttr(value)},_querySetter:function(value){if(lang.isObject(value)){if(this.query!==value){this.query=value;this._requeryTop()}return this.query}else throw new Error(this.moduleName+"::set(): query argument must be of type object");},getChildren:function(parentItem,onComplete,onError,childrenLists){var store=this.store;var scope=this;if(!store.isItemLoaded(parentItem)){var getChildren=
lang.hitch(this,arguments.callee);store.loadItem(scope._mixinFetch({item:parentItem,onItem:function(parentItem){getChildren(parentItem,onComplete,onError)},onError:onError}));return}var childItems=[],vals,i;if(!childrenLists)for(i=0;i<this.childrenAttrs.length;i++){vals=store.getValues(parentItem,this.childrenAttrs[i]);childItems=childItems.concat(vals)}else{var lists=lang.isArray(childrenLists)?childrenLists:[childrenLists];for(i=0;i<lists.length;i++){vals=store.getValues(parentItem,lists[i]);childItems=
childItems.concat(vals)}}var _waitCount=0;if(!this.deferItemLoadingUntilExpand)array.forEach(childItems,function(item){if(!store.isItemLoaded(item))_waitCount++});if(_waitCount==0)onComplete(childItems);else array.forEach(childItems,function(item,idx){if(!store.isItemLoaded(item))store.loadItem(scope._mixinFetch({item:item,onItem:function(item){childItems[idx]=item;if(--_waitCount==0)onComplete(childItems)},onError:onError}))})},getParents:function(storeItem){if(storeItem)return this.store.getParents(storeItem)},
getRoot:function(onItem,onError){if(this.root)onItem(this.root);else this.store.fetch(this._mixinFetch({query:this.query,onComplete:lang.hitch(this,function(items){if(items.length!=1)throw new Error(this.moduleName+": query "+json.stringify(this.query)+" returned "+items.length+" items, but must return exactly one item");this.root=items[0];onItem(this.root)}),onError:onError}))},mayHaveChildren:function(item){return array.some(this.childrenAttrs,function(attr){return this.store.hasAttribute(item,
attr)},this)},_getCompositeState:function(children){var hasChecked=false,hasUnchecked=false,isMixed=false,newState,state;array.some(children,function(child){state=this.getChecked(child);isMixed|=state=="mixed";switch(state){case true:hasChecked=true;break;case false:hasUnchecked=true;break}return isMixed},this);if(isMixed||hasChecked||hasUnchecked){isMixed|=!(hasChecked^hasUnchecked);newState=isMixed?"mixed":hasChecked?true:false}return newState},_normalizeState:function(storeItem,state){if(typeof state==
"boolean")return state;if(this.multiState&&state=="mixed"){if(this.normalize&&!this.mayHaveChildren(storeItem))return true;return state}return state?true:false},_setChecked:function(storeItem,newState,owner){var forceUpdate=false,normState;normState=this._normalizeState(storeItem,newState);forceUpdate=normState!=newState;if(this.store.isItem(storeItem)){var currState=this.store.getValue(storeItem,this.checkedAttr);if((currState!==undefined||this.checkedAll)&&(currState!=normState||forceUpdate)){this.store.setValue(storeItem,
this.checkedAttr,normState,owner);return true}}else if(storeItem===this.root&&this.hasFakeRoot){if(this.checkedRoot&&(this.root[this.checkedAttr]!=normState||forceUpdate)){this.root[this.checkedAttr]=normState;this.onChange(storeItem,this.checkedAttr,normState,owner);return true}}else throw new TypeError(this.moduleName+"::_setChecked(): invalid item specified.");return false},_updateCheckedChild:function(storeItem,newState,owner){this._setChecked(storeItem,newState,owner);if(this.mayHaveChildren(storeItem))this.getChildren(storeItem,
lang.hitch(this,function(children){array.forEach(children,function(child){this._updateCheckedChild(child,newState,owner)},this)}),this.onError,this._checkedChildrenAttrs)},_updateCheckedParent:function(storeItem,forceUpdate){if(!this.checkedStrict||!storeItem)return;var parents=this.getParents(storeItem),childState=this.getChecked(storeItem),newState;array.forEach(parents,function(parentItem){if(this.isChildOf(parentItem,storeItem))if(childState!==this.getChecked(parentItem)||forceUpdate)this.getChildren(parentItem,
lang.hitch(this,function(children){newState=this._getCompositeState(children);if(newState!==undefined)this._setChecked(parentItem,newState)}),this.onError,this._checkedChildrenAttrs)},this)},_validateChildren:function(parent,children,childrenLists){var children,currState,newState;this._validating+=1;children=lang.isArray(children)?children:[children];array.forEach(children,function(child){if(this.mayHaveChildren(child))this.getChildren(child,lang.hitch(this,function(children){this._validateChildren(child,
children,childrenLists)}),this.onError,childrenLists);else{currState=this.getChecked(child);if(currState&&typeof currState!=="boolean")child[this.checkedAttr]=[this._normalizeState(child,currState)]}},this);newState=this._getCompositeState(children);currState=this.getChecked(parent);if(currState!==undefined&&newState!==undefined)this._setChecked(parent,newState);this._validating-=1;if(!this._validating){this.store.setValidated(true);this.onDataValidated()}},getChecked:function(storeItem){var checked;
if(this.excludeChildrenAttrs)if(this.isMemberOf(storeItem,this.excludeChildrenAttrs))return;if(this.store.isItem(storeItem)){checked=this.store.getValue(storeItem,this.checkedAttr);if(checked===undefined)if(this.checkedAll){this._setChecked(storeItem,this.checkedState);return this.checkedState}}else if(storeItem===this.root&&this.hasFakeRoot){if(this.checkedRoot)return this.root[this.checkedAttr]}else throw new TypeError(this.moduleName+"::getChecked(): invalid item specified.");return checked},getEnabled:function(item){var enabled=
true;if(this.enabledAttr)if(this.store.isItem(item))enabled=this.store.getValue(item,this.enabledAttr);else if(item===this.root)enabled=item[this.enabledAttr];else throw new TypeError(this.moduleName+"::getEnabled(): invalid item specified.");return enabled===undefined||Boolean(enabled)},getItemState:function(item){return{checked:this.getChecked(item),enabled:this.getEnabled(item)}},setChecked:function(storeItem,newState,owner){if(owner!=null&&owner!=this.owner)return;if(!this.checkedStrict)this._setChecked(storeItem,
newState,owner);else this._updateCheckedChild(storeItem,newState,owner)},setEnabled:function(item,value){if(this.enabledAttr)if(this.store.isItem(item))return this.store.setValue(item,this.enabledAttr,Boolean(value));else if(item===this.root)return this.root[this.enabledAttr]=Boolean(value);else throw new TypeError(this.moduleName+"::setEnabled(): invalid item specified.");},validateData:function(){if(this.checkedStrict)if(!this.store.isValidated())this.store.loadStore({onComplete:function(count){if(has("tree-model-setChecked")){if(this._validateStore)this.getRoot(lang.hitch(this,
function(rootItem){this.getChildren(rootItem,lang.hitch(this,function(children){this._validateChildren(rootItem,children,this._checkedChildrenAttrs)}),this.onError)}),this.onError)}else 0&&console.warn(this.moduleName+"::validateData(): store is not write enabled.")},onError:function(err){},scope:this});else{if(this.hasFakeRoot)this.getChildren(this.root,lang.hitch(this,function(children){this._updateCheckedParent(children[0],true)}),this.onError,this._checkedChildrenAttrs);this.onDataValidated()}else this.store.setValidated(false)},
fetchItemByIdentity:function(keywordArgs){this.store.fetchItemByIdentity(keywordArgs)},getIcon:function(item){if(this.iconAttr)return this.store.getValue(item,this.iconAttr)},getIdentity:function(item){return this.store.getIdentity(item)},getLabel:function(item){if(this.labelAttr)return this.store.getValue(item,this.labelAttr);else{this.setLabelAttr(this.getLabelAttr());return this.store.getLabel(item)}},isItem:function(something){return this.store.isItem(something)},isTreeRootChild:function(item){if(this.root)return this.isChildOf(this.root,
item)},isChildOf:function(parent,item){var i;for(i=0;i<this.childrenAttrs.length;i++)if(array.indexOf(parent[this.childrenAttrs[i]],item)!==-1)return true;return false},isMemberOf:function(item,childrenLists){if(this.isItem(item)){var parents=this.getParents(item);var lists=childrenLists?lang.isArray(childrenLists)?childrenLists:[childrenLists]:[];var isMember=false;var i;array.some(parents,function(parent){for(i=0;i<lists.length;i++)if(array.indexOf(parent[lists[i]],item)!=-1)return isMember=true},
this)}return isMember},deleteItem:function(storeItem){return this.store.deleteItem(storeItem)},newItem:function(args,parent,insertIndex,childrenAttr){var pInfo={parent:parent,attribute:childrenAttr?childrenAttr:this.childrenAttrs[0]},newItem;this._mapIdentifierAttr(args,false);try{newItem=this.store.itemExist(args);if(newItem)this.pasteItem(newItem,null,parent,true,insertIndex);else{newItem=this.store.newItem(args,pInfo);if(newItem&&insertIndex!=undefined)this.pasteItem(newItem,parent,parent,false,
insertIndex)}}catch(err){throw new Error(this.moduleName+"::newItem(): "+err);}return newItem},pasteItem:function(childItem,oldParentItem,newParentItem,bCopy,insertIndex,childrenAttr){var parentAttr=childrenAttr?childrenAttr:this.childrenAttrs[0],store=this.store,firstChild;if(oldParentItem)array.forEach(this.childrenAttrs,function(attr){if(store.containsValue(oldParentItem,attr,childItem)){if(!bCopy)store.removeReference(childItem,oldParentItem,attr);parentAttr=attr}},this);if(newParentItem)store.addReference(childItem,
newParentItem,parentAttr,insertIndex)},getLabelAttr:function(){if(!this.labelAttr){var labels=this.store.getLabelAttributes();if(labels)this.setLabelAttr(labels[0])}return this.labelAttr},setLabelAttr:function(newValue){if(lang.isString(newValue)&&newValue.length){if(this.labelAttr!==newValue){var oldValue=this.labelAttr;this.labelAttr=newValue;this.onLabelChange(oldValue,newValue)}return this.labelAttr}},onChange:function(){},onChildrenChange:function(){},onDataValidated:function(){},onDelete:function(){},
onLabelChange:function(){},onNewItem:function(item,parentInfo){if(parentInfo)this.getChildren(parentInfo.item,lang.hitch(this,function(children){this.onChildrenChange(parentInfo.item,children)}));this._updateCheckedParent(item,true)},onDeleteItem:function(storeItem){this.onDelete(storeItem)},onError:function(err){console.error(this,err)},onSetItem:function(storeItem,attribute,oldValue,newValue,owner){if(owner!=null&&this.owner!=owner)return;if(array.indexOf(this.childrenAttrs,attribute)!=-1)this.getChildren(storeItem,
lang.hitch(this,function(children){if(children[0])this._updateCheckedParent(children[0],true);else this._setChecked(storeItem,this.checkedState);this.onChildrenChange(storeItem,children)}));else{if(attribute==this.checkedAttr)this._updateCheckedParent(storeItem,false);this.onChange(storeItem,attribute,newValue)}},onStoreLoaded:function(count){this.getLabelAttr()},onRootChange:function(storeItem,action){},_mapIdentifierAttr:function(args,delMappedAttr){var identifierAttr=this.store.getIdentifierAttr();
if(identifierAttr)if(!args[identifierAttr]&&this.newItemIdAttr&&args[this.newItemIdAttr]){args[identifierAttr]=args[this.newItemIdAttr];if(delMappedAttr)delete args[this.newItemIdAttr];return true}if(this.checkedAll&&args[this.checkedAttr]===undefined)args[this.checkedAttr]=this.checkedState;return false},_diffArrays:function(orgArray,elements){var elemList=elements?lang.isArray(elements)?elements:[elements]:[];var newArray=orgArray.slice(0);var index,i;if(newArray.length&&elemList.length)for(i=0;i<
elemList.length;i++){index=array.indexOf(newArray,elemList[i]);if(index!=-1)newArray.splice(index,1)}return newArray},_mixinFetch:function(fetchArgs){return fetchArgs}})})},"xide/layout/LayoutContainer":function(){define(["dojo/_base/declare","xide/utils","xide/factory","xide/types","xide/widgets/_CSSMixin","xide/mixins/EventedMixin"],function(declare,utils,factory,types,_CSSMixin,EventedMixin){return declare("xide.layout.LayoutContainer",[_CSSMixin,EventedMixin],{delegate:null,parentContainer:null,
selectedChildWidget:null,onContainerSplitted:function(srcContainer,newContainer){var thiz=this;setTimeout(function(){thiz.publish(types.EVENTS.ON_CONTAINER_SPLIT,{srcContainer:srcContainer,newContainer:newContainer},thiz);srcContainer.resize();newContainer.resize();thiz.publish(types.EVENTS.RESIZE,{});if(srcContainer.selectedChildWidget&&srcContainer.selectedChildWidget.onResize)srcContainer.selectedChildWidget.onResize();if(newContainer.selectedChildWidget&&newContainer.selectedChildWidget.onResize)newContainer.selectedChildWidget.onResize()},
100)},removeChild:function(page,checkEmpty){this.inherited(arguments);this.publish([types.EVENTS.ON_CONTAINER_REMOVED,types.EVENTS.RESIZE],{view:page})},addChild:function(child,index,select){var res=this.inherited(arguments);this.publish([types.EVENTS.ON_CONTAINER_ADDED,types.EVENTS.RESIZE],{view:child});return res},onShowChild:function(child){this.publish([types.EVENTS.ON_VIEW_SHOW,types.EVENTS.RESIZE],{container:this,view:child,owner:this.delegate});if(child.onResize)child.onResize()},_showChild:function(child){var res=
this.inherited(arguments);this.onShowChild(child);if(child.onResize)child.onResize();return res}})})},"dijit/form/Button":function(){require({cache:{"url:dijit/form/templates/Button.html":'\x3cspan class\x3d"dijit dijitReset dijitInline" role\x3d"presentation"\n\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitButtonNode"\n\t\tdata-dojo-attach-event\x3d"ondijitclick:__onClick" role\x3d"presentation"\n\t\t\x3e\x3cspan class\x3d"dijitReset dijitStretch dijitButtonContents"\n\t\t\tdata-dojo-attach-point\x3d"titleNode,focusNode"\n\t\t\trole\x3d"button" aria-labelledby\x3d"${id}_label"\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitToggleButtonIconChar"\x3e\x26#x25CF;\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitButtonText"\n\t\t\t\tid\x3d"${id}_label"\n\t\t\t\tdata-dojo-attach-point\x3d"containerNode"\n\t\t\t\x3e\x3c/span\n\t\t\x3e\x3c/span\n\t\x3e\x3c/span\n\t\x3e\x3cinput ${!nameAttrSetting} type\x3d"${type}" value\x3d"${value}" class\x3d"dijitOffScreen"\n\t\tdata-dojo-attach-event\x3d"onclick:_onClick"\n\t\ttabIndex\x3d"-1" role\x3d"presentation" data-dojo-attach-point\x3d"valueNode"\n/\x3e\x3c/span\x3e\n'}});
define("dijit/form/Button",["require","dojo/_base/declare","dojo/dom-class","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/ready","./_FormWidget","./_ButtonMixin","dojo/text!./templates/Button.html"],function(require,declare,domClass,has,kernel,lang,ready,_FormWidget,_ButtonMixin,template){if(has("dijit-legacy-requires"))ready(0,function(){var requires=["dijit/form/DropDownButton","dijit/form/ComboButton","dijit/form/ToggleButton"];require(requires)});var Button=declare("dijit.form.Button"+
(0?"_NoBidi":""),[_FormWidget,_ButtonMixin],{showLabel:true,iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitButton",templateString:template,_setValueAttr:"valueNode",_setNameAttr:function(name){if(this.valueNode)this.valueNode.setAttribute("name",name)},_fillContent:function(source){if(source&&(!this.params||!("label"in this.params))){var sourceLabel=lang.trim(source.innerHTML);if(sourceLabel)this.label=sourceLabel}},_setShowLabelAttr:function(val){if(this.containerNode)domClass.toggle(this.containerNode,
"dijitDisplayNone",!val);this._set("showLabel",val)},setLabel:function(content){kernel.deprecated("dijit.form.Button.setLabel() is deprecated.  Use set('label', ...) instead.","","2.0");this.set("label",content)},_setLabelAttr:function(content){this.inherited(arguments);if(!this.showLabel&&!("title"in this.params))this.titleNode.title=lang.trim(this.containerNode.innerText||this.containerNode.textContent||"")}});if(0)Button=declare("dijit.form.Button",Button,{_setLabelAttr:function(content){this.inherited(arguments);
if(this.titleNode.title)this.applyTextDir(this.titleNode,this.titleNode.title)},_setTextDirAttr:function(textDir){if(this._created&&this.textDir!=textDir){this._set("textDir",textDir);this._setLabelAttr(this.label)}}});return Button})},"dojo/main":function(){define(["./_base/kernel","./has","require","./sniff","./_base/lang","./_base/array","./_base/config","./ready","./_base/declare","./_base/connect","./_base/Deferred","./_base/json","./_base/Color","./has!dojo-firebug?./_firebug/firebug","./_base/browser",
"require"],function(kernel,has,require,sniff,lang,array,config,ready){if(config.isDebug)require(["./_firebug/firebug"]);1||has.add("dojo-config-require",1);if(1){var deps=config.require;if(deps){deps=array.map(lang.isArray(deps)?deps:[deps],function(item){return item.replace(/\./g,"/")});if(kernel.isAsync)require(deps);else ready(1,function(){require(deps)})}}return kernel})},"xfile/views/FileDeleteDialog":function(){define("xfile/views/FileDeleteDialog",["dojo/_base/declare","./ActionDialog"],function(declare,
ActionDialog){return declare("xfile.views.FileDeleteDialog",[ActionDialog],{initWithSelection:function(src,dst,operation){this.addActionButtons();this.fixHeight();this.resize()},startup:function(){this.inherited(arguments)}})})},"dijit/_Contained":function(){define("dijit/_Contained",["dojo/_base/declare","./registry"],function(declare,registry){return declare("dijit._Contained",null,{_getSibling:function(which){var node=this.domNode;do node=node[which+"Sibling"];while(node&&node.nodeType!=1);return node&&
registry.byNode(node)},getPreviousSibling:function(){return this._getSibling("previous")},getNextSibling:function(){return this._getSibling("next")},getIndexInParent:function(){var p=this.getParent();if(!p||!p.getIndexOfChild)return-1;return p.getIndexOfChild(this)}})})},"xide/manager/Application":function(){define(["dojo/_base/declare","./ManagerBase","dojo/dom-geometry","xide/factory","xide/types"],function(declare,ManagerBase,domGeometry,factory,types){return declare("xide.manager.Application",
[ManagerBase],{resizeToNode:function(parent){if(parent!=null){var parentO=dojo.byId(parent);if(parentO){var size=domGeometry.getMarginBox(parentO);var dstHeight=size.h;dstHeight-=20;var mainContainer=dijit.registry.byId("main");if(mainContainer){mainContainer.containerNode.style.height=dstHeight+"px";mainContainer.resize();setTimeout(function(){mainContainer.resize()},300)}}}},repaint:function(){if(!this.mainView)return;var winSize=dojo.window.getBox();var dstHeight=winSize.h;dstHeight-=15;var mainContainer=
this.mainView.layoutMain;if(mainContainer){mainContainer.containerNode.style.height=dstHeight+"px";mainContainer.resize();setTimeout(function(){mainContainer.resize()},300)}},init:function(){var thiz=this;var resizeCB=function(){thiz.repaint()};dojo.connect(window,dojo.global.onorientationchange!==undefined?"onorientationchange":"onresize",this,function(){factory.publish(types.EVENTS.RESIZE,{},thiz);setTimeout(function(){resizeCB()},500)})}})})},"dijit/_FocusMixin":function(){define("dijit/_FocusMixin",
["./focus","./_WidgetBase","dojo/_base/declare","dojo/_base/lang"],function(focus,_WidgetBase,declare,lang){lang.extend(_WidgetBase,{focused:false,onFocus:function(){},onBlur:function(){},_onFocus:function(){this.onFocus()},_onBlur:function(){this.onBlur()}});return declare("dijit._FocusMixin",null,{_focusManager:focus})})},"xapp/utils/StringUtils":function(){define("xapp/utils/StringUtils",["dojo/_base/declare","dojo/_base/array","xapp/utils"],function(declare,array,utils){utils.leftRightTrim=function(str){if(str)return str.replace(/^\s+/,
"").replace(/\s+$/,"");return str};utils.pathinfo=function(path,options){var opt="",optName="",optTemp=0,tmp_arr={},cnt=0,i=0;var have_basename=false,have_extension=false,have_filename=false;if(!path)return false;if(!options)options="PATHINFO_ALL";var OPTS={"PATHINFO_DIRNAME":1,"PATHINFO_BASENAME":2,"PATHINFO_EXTENSION":4,"PATHINFO_FILENAME":8,"PATHINFO_ALL":0};for(optName in OPTS)OPTS.PATHINFO_ALL=OPTS.PATHINFO_ALL|OPTS[optName];if(typeof options!=="number"){options=[].concat(options);for(i=0;i<
options.length;i++)if(OPTS[options[i]])optTemp=optTemp|OPTS[options[i]];options=optTemp}var __getExt=function(path){var str=path+"";var dotP=str.lastIndexOf(".")+1;return!dotP?false:dotP!==str.length?str.substr(dotP):""};if(options&OPTS.PATHINFO_DIRNAME){var dirname=this.dirname(path);tmp_arr.dirname=dirname===path?".":dirname}if(options&OPTS.PATHINFO_BASENAME){if(false===have_basename)have_basename=utils.getFileName(path);tmp_arr.basename=have_basename}if(options&OPTS.PATHINFO_EXTENSION){if(false===
have_basename)have_basename=utils.getFileName(path);if(false===have_extension)have_extension=__getExt(have_basename);if(false!==have_extension)tmp_arr.extension=have_extension}if(options&OPTS.PATHINFO_FILENAME){if(false===have_basename)have_basename=utils.getFileName(path);if(false===have_extension)have_extension=__getExt(have_basename);if(false===have_filename)have_filename=have_basename.slice(0,have_basename.length-(have_extension?have_extension.length+1:have_extension===false?0:1));tmp_arr.filename=
have_filename}cnt=0;for(opt in tmp_arr)cnt++;if(cnt==1)return tmp_arr[opt];return tmp_arr};utils.getFileName=function(path,suffix){var b=path.replace(/^.*[\/\\]/g,"");if(typeof suffix=="string"&&b.substr(b.length-suffix.length)==suffix)b=b.substr(0,b.length-suffix.length);return b};utils.parseUrl=function(str,component){var key=["source","scheme","authority","userInfo","user","pass","host","port","relative","path","directory","file","query","fragment"],ini=this.php_js&&this.php_js.ini||{},mode=ini["phpjs.parse_url.mode"]&&
ini["phpjs.parse_url.mode"].local_value||"php",parser={php:/^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/};
var m=parser[mode].exec(str),uri={},i=14;while(i--)if(m[i])uri[key[i]]=m[i];if(component)return uri[component.replace("PHP_URL_","").toLowerCase()];if(mode!=="php"){var name=ini["phpjs.parse_url.queryKey"]&&ini["phpjs.parse_url.queryKey"].local_value||"queryKey";parser=/(?:^|&)([^&=]*)=?([^&]*)/g;uri[name]={};uri[key[12]].replace(parser,function($0,$1,$2){if($1)uri[name][$1]=$2})}delete uri.source;return uri};utils.stringToFunction=function(str){var arr=str.split(".");var fn=window||this;for(var i=
0,len=arr.length;i<len;i++)fn=fn[arr[i]];if(typeof fn!=="function")throw new Error("function not found");return fn};utils.isNaN=function(obj){return isNaN(obj)};utils.isValidString=function(input){return input!=null&&input.length!=null&&input.length>0&&input!="undefined"};utils.multipleReplace=function(str,hash){var a=[];for(var key in hash)a[a.length]=key;var regexp=a.join("\\b|\\b");return str.replace(new RegExp(regexp,"g"),function(m,l){var res=hash[m]||hash["\\"+m];return res})};utils.createUUID=
function(){var S4=function(){return((1+Math.random())*65536|0).toString(16).substring(1)};return S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4()};utils.contains=function(value,searchString){if(value&&value!=-1){var exists=value.indexOf(searchString);if(exists!=-1)return true}return false};utils.substituteString=function(template,obj){return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(match,key){return obj[key]})};utils.nullEmptyArrays=function(obj){for(var key in obj){if(obj[key]===
"")obj[key]=null;if(obj[key]instanceof Array){var empty=true;for(var i=0;i<obj[key].length;i++)if(obj[key][i]!==""||obj[key][i]!=null){empty=false;break}if(empty)obj[key]=null}if(typeof obj[key]==="object"){obj[key]=utils.nullEmptyArrays(obj[key]);var hasKeys=false;for(var objKey in obj[key]){hasKeys=true;break}if(!hasKeys)obj[key]=null}}return obj};utils.removeEmptyStrings=function(obj){for(var key in obj){if(obj[key]==="")delete obj[key];if(obj[key]instanceof Array){var empty=true;for(var i=0;i<
obj[key].length;i++)if(obj[key][i]!==""||obj[key][i]!=null){empty=false;break}if(empty)delete obj[key]}if(typeof obj[key]==="object"){obj[key]=this.removeEmptyStrings(obj[key]);var hasKeys=false;for(var objKey in obj[key]){hasKeys=true;break}if(!hasKeys)delete obj[key]}}return obj};utils.hasFlag=function(enumValue,field){return field&1<<enumValue?true:false};utils.hasFlag2=function(enumValue,field){var _in=1<<field;return enumValue&1<<field?true:false};utils.hasFlag3=function(field,enumValue){var _enumUp=
1<<enumValue;var _res=_enumUp&field;return 1<<enumValue&field?true:false};utils.enableFlag=function(enumValue,field){return 1<<enumValue};utils.disableFlag=function(enumValue,field){enumValue&=~(1<<field);return enumValue};return utils})},"dojo/request/script":function(){define("dojo/request/script",["module","./watch","./util","../_base/array","../_base/lang","../on","../dom","../dom-construct","../has","../_base/window"],function(module,watch,util,array,lang,on,dom,domConstruct,has,win){has.add("script-readystatechange",
function(global,document){var script=document.createElement("script");return typeof script["onreadystatechange"]!=="undefined"&&(typeof global["opera"]==="undefined"||global["opera"].toString()!=="[object Opera]")});var mid=module.id.replace(/[\/\.\-]/g,"_"),counter=0,loadEvent=has("script-readystatechange")?"readystatechange":"load",readyRegExp=/complete|loaded/,callbacks=this[mid+"_callbacks"]={},deadScripts=[];function attach(id,url,frameDoc){var doc=frameDoc||win.doc,element=doc.createElement("script");
element.type="text/javascript";element.src=url;element.id=id;element.async=true;element.charset="utf-8";return doc.getElementsByTagName("head")[0].appendChild(element)}function remove(id,frameDoc,cleanup){domConstruct.destroy(dom.byId(id,frameDoc));if(callbacks[id])if(cleanup)callbacks[id]=function(){delete callbacks[id]};else delete callbacks[id]}function _addDeadScript(dfd){var options=dfd.response.options,frameDoc=options.ioArgs?options.ioArgs.frameDoc:options.frameDoc;deadScripts.push({id:dfd.id,
frameDoc:frameDoc});if(options.ioArgs)options.ioArgs.frameDoc=null;options.frameDoc=null}function canceler(dfd,response){if(dfd.canDelete)script._remove(dfd.id,response.options.frameDoc,true)}function isValid(response){if(deadScripts&&deadScripts.length){array.forEach(deadScripts,function(_script){script._remove(_script.id,_script.frameDoc);_script.frameDoc=null});deadScripts=[]}return response.options.jsonp?!response.data:true}function isReadyScript(response){return!!this.scriptLoaded}function isReadyCheckString(response){var checkString=
response.options.checkString;return checkString&&eval("typeof("+checkString+') !\x3d\x3d "undefined"')}function handleResponse(response,error){if(this.canDelete)_addDeadScript(this);if(error)this.reject(error);else this.resolve(response)}function script(url,options,returnDeferred){var response=util.parseArgs(url,util.deepCopy({},options));url=response.url;options=response.options;var dfd=util.deferred(response,canceler,isValid,options.jsonp?null:options.checkString?isReadyCheckString:isReadyScript,
handleResponse);lang.mixin(dfd,{id:mid+counter++,canDelete:false});if(options.jsonp){var queryParameter=new RegExp("[?\x26]"+options.jsonp+"\x3d");if(!queryParameter.test(url))url+=(~url.indexOf("?")?"\x26":"?")+options.jsonp+"\x3d"+(options.frameDoc?"parent.":"")+mid+"_callbacks."+dfd.id;dfd.canDelete=true;callbacks[dfd.id]=function(json){response.data=json;dfd.handleResponse(response)}}if(util.notify)util.notify.emit("send",response,dfd.promise.cancel);if(!options.canAttach||options.canAttach(dfd)){var node=
script._attach(dfd.id,url,options.frameDoc);if(!options.jsonp&&!options.checkString)var handle=on(node,loadEvent,function(evt){if(evt.type==="load"||readyRegExp.test(node.readyState)){handle.remove();dfd.scriptLoaded=evt}})}watch(dfd);return returnDeferred?dfd:dfd.promise}script.get=script;script._attach=attach;script._remove=remove;script._callbacksProperty=mid+"_callbacks";return script})},"xide/widgets/ExpressionsGridView":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html",
"dojo/dom-class","dojo/on","dojo/_base/lang","dijit/tree/ForestStoreModel","dijit/Tree","xide/views/BeanView","dojo/dom-construct","xide/utils","xide/factory","xide/types","dgrid/OnDemandGrid","dgrid/Selection","dgrid/Keyboard","dgrid/editor","dgrid/tree","xide/views/GridView","dijit/form/TextBox","xide/form/Select","dijit/form/RadioButton","dijit/form/CheckBox","dgrid/extensions/DnD"],function(array,declare,html,domClass,on,lang,ForestStoreModel,Tree,BeanView,domConstruct,utils,factory,types,OnDemandGrid,
Selection,Keyboard,editor,tree,GridView,TextBox,Select,RadioButton,CheckBox,Dnd){return declare("xide.views.ExpressionsGridView",[BeanView,GridView],{cssClass:"conditionalResponseGridView",onReloaded:function(){this.inherited(arguments);if(this.delegate)this.delegate.onReloaded()},onShow:function(){this.inherited(arguments);this.publish(types.EVENTS.RESIZE)},onGridDataChanged:function(evt){},createWidgets:function(store){var thiz=this;var SharedDndGridSource=declare(Dnd.GridSource,{copyState:function(){return false},
onDropExternal:function(source,nodes,copy,targetItem){},onDropInternal:function(source,nodes,copy,targetItem){0&&console.log("on drop internal")}});var baseClasses=[OnDemandGrid,Selection,Dnd];baseClasses=this.addGridBases(baseClasses);var _ctorArgs={sort:"order",dndConstructor:SharedDndGridSource,cellNavigation:false,store:store,showHeader:false,columns:[{label:"Name",field:"name",sortable:true}]};if(this.gridParams)_ctorArgs=lang.mixin(_ctorArgs,this.gridParams);var grid=new (declare(baseClasses))(_ctorArgs,
this.containerNode);grid.refresh();this.grid=grid;this.onGridCreated(grid)},startup:function(){if(this.didLoad)return;this.inherited(arguments);if(this.store)this.createWidgets(this.store);this.didLoad=true}})})},"xide/mixins/EventedMixin":function(){define(["dojo/_base/array","dojo/_base/declare","xide/types","xide/factory"],function(array,declare,types,factory){return declare(null,{_events:null,types:types,subscribe:function(keys,cb,to){var events=factory.subscribe(keys,cb,to||this);if(!this._events)this._events=
[];this._events.concat(events)},publish:function(keys,cb,from,delay){if(delay>0)setTimeout(function(){factory.publish(keys,cb,from||this)},delay);else factory.publish(keys,cb,from||this)},destroy:function(){this.inherited(arguments);if(!this._events)this._events=[];array.forEach(this._events,dojo.unsubscribe)}})})},"dojo/request/default":function(){define("dojo/request/default",["exports","require","../has"],function(exports,require,has){var defId=has("config-requestProvider"),platformId;if(1||has("host-webworker"))platformId=
"./xhr";else if(0)platformId="./node";if(!defId)defId=platformId;exports.getPlatformDefaultId=function(){return platformId};exports.load=function(id,parentRequire,loaded,config){require([id=="platform"?platformId:defId],function(provider){loaded(provider)})}})},"xide/views/CIView":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","xide/layout/ContentPane","xide/types","xide/utils","xide/factory","xide/widgets/TemplatedWidgetBase","dojo/store/Memory"],function(array,
declare,html,on,ContentPane,types,utils,factory,TemplatedWidgetBase,Memory){return declare("xide.views.CIBaseView",[ContentPane],{data:null,widgets:null,delegate:null,helpNodes:null,store:null,groups:null,groupContainer:null,cssClass:"CIView",options:null,resize:function(){this.inherited(arguments)},createGroupContainer:function(){var tabContainer=new dijit.layout.TabContainer({tabPosition:"top",style:"min-width:500px;min-height:300px;"});this.containerNode.appendChild(tabContainer.domNode);tabContainer.startup();
return tabContainer},getGroupContainer:function(){if(this.groupContainer)return this.groupContainer;this.groupContainer=this.createGroupContainer();return this.groupContainer},createGroupView:function(groupContainer,group){return utils.addWidget(ContentPane,{delegate:this,title:group,closable:false},this,groupContainer,true)},attachWidgets:function(data,dstNode){this.helpNodes=[];dstNode=dstNode||this.domNode;for(var i=0;i<data.length;i++){var widget=data[i];widget.delegate=this.owner||this;dstNode.appendChild(widget.domNode);
widget.startup()}},empty:function(){if(this.helpNodes)for(var i=0;i<this.helpNodes.length;i++){var widget=this.helpNodes[i];dojo.destroy(widget)}if(this.widgets)for(var i=0;i<this.widgets.length;i++){var widget=this.widgets[i];widget.destroyRecursive();dojo.destroy(widget)}},sortGroups:function(groups,groupMap){groups=groups.sort(function(a,b){if(a.name&&b.name&&groupMap[a.name]!=null&&groupMap[b.name]!=null){var orderA=groupMap[a.name];var orderB=groupMap[b.name];return orderB-orderA}return 100});
return groups},toArray:function(obj){var result=[];for(var c in obj)result.push({name:c,value:obj[c]});return result},renderGroups:function(groups){var groupContainer=this.getGroupContainer();var lastChild=null;var _array=this.toArray(groups);if(this.options&&this.options.groupOrder)_array=this.sortGroups(_array,this.options.groupOrder);for(var i=0;i<_array.length;i++)try{var view=this.createGroupView(groupContainer,_array[i].name);var groupWidgets=factory.createWidgetsFromArray(_array[i].value,this,
null,false);this.attachWidgets(groupWidgets,view.containerNode);lastChild=view}catch(e){}groupContainer.resize();groupContainer.selectChild(lastChild)},getCIS:function(){return this.data},initWithCIS:function(data){this.empty();data=utils.flattenCIS(data);var store=new Memory({data:data});this.data=data;var grouped=null;var thiz=this;var groups=store.query({group:/\S+/,visible:true});if(groups.length>0){grouped={};for(var i in groups)if(grouped[groups[i].group]==null){var elements=store.query({group:groups[i].group});
if(elements.length>0)grouped[groups[i].group]=elements}}var nbElements=Object.keys(grouped).length;if(grouped!=null&&nbElements>1)this.renderGroups(grouped);else{this.widgets=factory.createWidgetsFromArray(data,thiz,null,false);if(this.widgets)this.attachWidgets(this.widgets)}},startup:function(){this.inherited(arguments);if(this.cis)this.initWithCIS(this.cis)}})})},"dijit/_Container":function(){define("dijit/_Container",["dojo/_base/array","dojo/_base/declare","dojo/dom-construct","dojo/_base/kernel"],
function(array,declare,domConstruct,kernel,registry){return declare("dijit._Container",null,{buildRendering:function(){this.inherited(arguments);if(!this.containerNode)this.containerNode=this.domNode},addChild:function(widget,insertIndex){var refNode=this.containerNode;if(insertIndex>0){refNode=refNode.firstChild;while(insertIndex>0){if(refNode.nodeType==1)insertIndex--;refNode=refNode.nextSibling}if(refNode)insertIndex="before";else{refNode=this.containerNode;insertIndex="last"}}domConstruct.place(widget.domNode,
refNode,insertIndex);if(this._started&&!widget._started)widget.startup()},removeChild:function(widget){if(typeof widget=="number")widget=this.getChildren()[widget];if(widget){var node=widget.domNode;if(node&&node.parentNode)node.parentNode.removeChild(node)}},hasChildren:function(){return this.getChildren().length>0},_getSiblingOfChild:function(child,dir){kernel.deprecated(this.declaredClass+"::_getSiblingOfChild() is deprecated. Use _KeyNavMixin::_getNext() instead.","","2.0");var children=this.getChildren(),
idx=array.indexOf(children,child);return children[idx+dir]},getIndexOfChild:function(child){return array.indexOf(this.getChildren(),child)}})})},"dojox/mdnd/DropIndicator":function(){define("dojox/mdnd/DropIndicator",["dojo/_base/kernel","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","./AreaManager"],function(dojo,declare,domClass,domConstruct){var di=declare("dojox.mdnd.DropIndicator",null,{node:null,constructor:function(){var dropIndicator=document.createElement("div");var subDropIndicator=
document.createElement("div");dropIndicator.appendChild(subDropIndicator);domClass.add(dropIndicator,"dropIndicator");this.node=dropIndicator},place:function(area,nodeRef,size){if(size)this.node.style.height=size.h+"px";try{if(nodeRef)area.insertBefore(this.node,nodeRef);else area.appendChild(this.node);return this.node}catch(e){return null}},remove:function(){if(this.node){this.node.style.height="";if(this.node.parentNode)this.node.parentNode.removeChild(this.node)}},destroy:function(){if(this.node){if(this.node.parentNode)this.node.parentNode.removeChild(this.node);
domConstruct.destroy(this.node);delete this.node}}});dojox.mdnd.areaManager()._dropIndicator=new dojox.mdnd.DropIndicator;return di})},"dojox/fx/flip":function(){define("dojox/fx/flip",["dojo/_base/kernel","dojo/_base/html","dojo/dom","dojo/dom-construct","dojo/dom-geometry","dojo/_base/connect","dojo/_base/Color","dojo/_base/sniff","dojo/_base/lang","dojo/_base/window","dojo/_base/fx","dojo/fx","./_base"],function(kernel,htmlUtil,dom,domConstruct,domGeom,connectUtil,Color,has,lang,winUtil,baseFx,
coreFx,fxExt){kernel.experimental("dojox.fx.flip");var borderConst="border",widthConst="Width",heightConst="Height",topConst="Top",rightConst="Right",leftConst="Left",bottomConst="Bottom";fxExt.flip=function(args){var helperNode=domConstruct.create("div"),node=args.node=dom.byId(args.node),s=node.style,dims=null,hs=null,pn=null,lightColor=args.lightColor||"#dddddd",darkColor=args.darkColor||"#555555",bgColor=htmlUtil.style(node,"backgroundColor"),endColor=args.endColor||bgColor,staticProps={},anims=
[],duration=args.duration?args.duration/2:250,dir=args.dir||"left",pConst=0.9,transparentColor="transparent",whichAnim=args.whichAnim,axis=args.axis||"center",depth=args.depth;var convertColor=function(color){return(new Color(color)).toHex()==="#000000"?"#000001":color};if(has("ie")<7){endColor=convertColor(endColor);lightColor=convertColor(lightColor);darkColor=convertColor(darkColor);bgColor=convertColor(bgColor);transparentColor="black";helperNode.style.filter="chroma(color\x3d'#000000')"}var init=
function(n){return function(){var ret=htmlUtil.coords(n,true);dims={top:ret.y,left:ret.x,width:ret.w,height:ret.h}}}(node);init();hs={position:"absolute",top:dims["top"]+"px",left:dims["left"]+"px",height:"0",width:"0",zIndex:args.zIndex||s.zIndex||0,border:"0 solid "+transparentColor,fontSize:"0",visibility:"hidden"};var props=[{},{top:dims["top"],left:dims["left"]}];var dynProperties={left:[leftConst,rightConst,topConst,bottomConst,widthConst,heightConst,"end"+heightConst+"Min",leftConst,"end"+
heightConst+"Max"],right:[rightConst,leftConst,topConst,bottomConst,widthConst,heightConst,"end"+heightConst+"Min",leftConst,"end"+heightConst+"Max"],top:[topConst,bottomConst,leftConst,rightConst,heightConst,widthConst,"end"+widthConst+"Min",topConst,"end"+widthConst+"Max"],bottom:[bottomConst,topConst,leftConst,rightConst,heightConst,widthConst,"end"+widthConst+"Min",topConst,"end"+widthConst+"Max"]};pn=dynProperties[dir];if(typeof depth!="undefined"){depth=Math.max(0,Math.min(1,depth))/2;pConst=
0.4+(0.5-depth)}else pConst=Math.min(0.9,Math.max(0.4,dims[pn[5].toLowerCase()]/dims[pn[4].toLowerCase()]));var p0=props[0];for(var i=4;i<6;i++)if(axis=="center"||axis=="cube"){dims["end"+pn[i]+"Min"]=dims[pn[i].toLowerCase()]*pConst;dims["end"+pn[i]+"Max"]=dims[pn[i].toLowerCase()]/pConst}else if(axis=="shortside"){dims["end"+pn[i]+"Min"]=dims[pn[i].toLowerCase()];dims["end"+pn[i]+"Max"]=dims[pn[i].toLowerCase()]/pConst}else if(axis=="longside"){dims["end"+pn[i]+"Min"]=dims[pn[i].toLowerCase()]*
pConst;dims["end"+pn[i]+"Max"]=dims[pn[i].toLowerCase()]}if(axis=="center")p0[pn[2].toLowerCase()]=dims[pn[2].toLowerCase()]-(dims[pn[8]]-dims[pn[6]])/4;else if(axis=="shortside")p0[pn[2].toLowerCase()]=dims[pn[2].toLowerCase()]-(dims[pn[8]]-dims[pn[6]])/2;staticProps[pn[5].toLowerCase()]=dims[pn[5].toLowerCase()]+"px";staticProps[pn[4].toLowerCase()]="0";staticProps[borderConst+pn[1]+widthConst]=dims[pn[4].toLowerCase()]+"px";staticProps[borderConst+pn[1]+"Color"]=bgColor;p0[borderConst+pn[1]+widthConst]=
0;p0[borderConst+pn[1]+"Color"]=darkColor;p0[borderConst+pn[2]+widthConst]=p0[borderConst+pn[3]+widthConst]=axis!="cube"?(dims["end"+pn[5]+"Max"]-dims["end"+pn[5]+"Min"])/2:dims[pn[6]]/2;p0[pn[7].toLowerCase()]=dims[pn[7].toLowerCase()]+dims[pn[4].toLowerCase()]/2+(args.shift||0);p0[pn[5].toLowerCase()]=dims[pn[6]];var p1=props[1];p1[borderConst+pn[0]+"Color"]={start:lightColor,end:endColor};p1[borderConst+pn[0]+widthConst]=dims[pn[4].toLowerCase()];p1[borderConst+pn[2]+widthConst]=0;p1[borderConst+
pn[3]+widthConst]=0;p1[pn[5].toLowerCase()]={start:dims[pn[6]],end:dims[pn[5].toLowerCase()]};lang.mixin(hs,staticProps);htmlUtil.style(helperNode,hs);winUtil.body().appendChild(helperNode);var finalize=function(){domConstruct.destroy(helperNode);s.backgroundColor=endColor;s.visibility="visible"};if(whichAnim=="last"){for(i in p0)p0[i]={start:p0[i]};p0[borderConst+pn[1]+"Color"]={start:darkColor,end:endColor};p1=p0}if(!whichAnim||whichAnim=="first")anims.push(baseFx.animateProperty({node:helperNode,
duration:duration,properties:p0}));if(!whichAnim||whichAnim=="last")anims.push(baseFx.animateProperty({node:helperNode,duration:duration,properties:p1,onEnd:finalize}));connectUtil.connect(anims[0],"play",function(){helperNode.style.visibility="visible";s.visibility="hidden"});return coreFx.chain(anims)};fxExt.flipCube=function(args){var anims=[],mb=domGeom.getMarginBox(args.node),shiftX=mb.w/2,shiftY=mb.h/2,dims={top:{pName:"height",args:[{whichAnim:"first",dir:"top",shift:-shiftY},{whichAnim:"last",
dir:"bottom",shift:shiftY}]},right:{pName:"width",args:[{whichAnim:"first",dir:"right",shift:shiftX},{whichAnim:"last",dir:"left",shift:-shiftX}]},bottom:{pName:"height",args:[{whichAnim:"first",dir:"bottom",shift:shiftY},{whichAnim:"last",dir:"top",shift:-shiftY}]},left:{pName:"width",args:[{whichAnim:"first",dir:"left",shift:-shiftX},{whichAnim:"last",dir:"right",shift:shiftX}]}};var d=dims[args.dir||"left"],p=d.args;args.duration=args.duration?args.duration*2:500;args.depth=0.8;args.axis="cube";
for(var i=p.length-1;i>=0;i--){lang.mixin(args,p[i]);anims.push(fxExt.flip(args))}return coreFx.combine(anims)};fxExt.flipPage=function(args){var n=args.node,coords=htmlUtil.coords(n,true),x=coords.x,y=coords.y,w=coords.w,h=coords.h,bgColor=htmlUtil.style(n,"backgroundColor"),lightColor=args.lightColor||"#dddddd",darkColor=args.darkColor,helperNode=domConstruct.create("div"),anims=[],hn=[],dir=args.dir||"right",pn={left:["left","right","x","w"],top:["top","bottom","y","h"],right:["left","left","x",
"w"],bottom:["top","top","y","h"]},shiftMultiplier={right:[1,-1],left:[-1,1],top:[-1,1],bottom:[1,-1]};htmlUtil.style(helperNode,{position:"absolute",width:w+"px",height:h+"px",top:y+"px",left:x+"px",visibility:"hidden"});var hs=[];for(var i=0;i<2;i++){var r=i%2,d=r?pn[dir][1]:dir,wa=r?"last":"first",endColor=r?bgColor:lightColor,startColor=r?endColor:args.startColor||n.style.backgroundColor;hn[i]=lang.clone(helperNode);var finalize=function(x){return function(){domConstruct.destroy(hn[x])}}(i);winUtil.body().appendChild(hn[i]);
hs[i]={backgroundColor:r?startColor:bgColor};hs[i][pn[dir][0]]=coords[pn[dir][2]]+shiftMultiplier[dir][0]*i*coords[pn[dir][3]]+"px";htmlUtil.style(hn[i],hs[i]);anims.push(dojox.fx.flip({node:hn[i],dir:d,axis:"shortside",depth:args.depth,duration:args.duration/2,shift:shiftMultiplier[dir][i]*coords[pn[dir][3]]/2,darkColor:darkColor,lightColor:lightColor,whichAnim:wa,endColor:endColor}));connectUtil.connect(anims[i],"onEnd",finalize)}return coreFx.chain(anims)};fxExt.flipGrid=function(args){var rows=
args.rows||4,cols=args.cols||4,anims=[],helperNode=domConstruct.create("div"),n=args.node,coords=htmlUtil.coords(n,true),x=coords.x,y=coords.y,nw=coords.w,nh=coords.h,w=coords.w/cols,h=coords.h/rows,cAnims=[];htmlUtil.style(helperNode,{position:"absolute",width:w+"px",height:h+"px",backgroundColor:htmlUtil.style(n,"backgroundColor")});for(var i=0;i<rows;i++){var r=i%2,d=r?"right":"left",signum=r?1:-1;var cn=lang.clone(n);htmlUtil.style(cn,{position:"absolute",width:nw+"px",height:nh+"px",top:y+"px",
left:x+"px",clip:"rect("+i*h+"px,"+nw+"px,"+nh+"px,0)"});winUtil.body().appendChild(cn);anims[i]=[];for(var j=0;j<cols;j++){var hn=lang.clone(helperNode),l=r?j:cols-(j+1);var adjustClip=function(xn,yCounter,xCounter){return function(){if(!(yCounter%2))htmlUtil.style(xn,{clip:"rect("+yCounter*h+"px,"+(nw-(xCounter+1)*w)+"px,"+(yCounter+1)*h+"px,0px)"});else htmlUtil.style(xn,{clip:"rect("+yCounter*h+"px,"+nw+"px,"+(yCounter+1)*h+"px,"+(xCounter+1)*w+"px)"})}}(cn,i,j);winUtil.body().appendChild(hn);
htmlUtil.style(hn,{left:x+l*w+"px",top:y+i*h+"px",visibility:"hidden"});var a=dojox.fx.flipPage({node:hn,dir:d,duration:args.duration||900,shift:signum*w/2,depth:0.2,darkColor:args.darkColor,lightColor:args.lightColor,startColor:args.startColor||args.node.style.backgroundColor}),removeHelper=function(xn){return function(){domConstruct.destroy(xn)}}(hn);connectUtil.connect(a,"play",this,adjustClip);connectUtil.connect(a,"play",this,removeHelper);anims[i].push(a)}cAnims.push(coreFx.chain(anims[i]))}connectUtil.connect(cAnims[0],
"play",function(){htmlUtil.style(n,{visibility:"hidden"})});return coreFx.combine(cAnims)};return fxExt})},"dojo/keys":function(){define("dojo/keys",["./_base/kernel","./sniff"],function(dojo,has){return dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:has("webkit")?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,
NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,UP_DPAD:175,DOWN_DPAD:176,LEFT_DPAD:177,RIGHT_DPAD:178,copyKey:has("mac")&&!has("air")?has("safari")?91:224:17}})},"xide/utils/HTMLUtils":function(){define(["dojo/_base/lang",
"xide/utils","dijit/registry","dojo/_base/declare","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/dom-class"],function(lang,utils,registry,declare,domGeometry,domStyle,has,domClass){utils.removeAddCSSClasses=function(startNode,match,remove,add){var items=utils.find(match,startNode,false);if(items)for(var i in items){var node=items[i];if(remove!=null)domClass.remove(node,remove);if(add!=null)domClass.add(node,add)}};utils.find=function(queryString,startNode,single){var nodes=dojo.query(queryString,
startNode);if(nodes&&nodes.length>0)return single===false?nodes:nodes[0];return null};utils.findEmptyNode=function(startNode,mustHaveClass){if(!startNode||startNode.children==null||startNode.children.length==null)return null;var children=startNode.children;if(mustHaveClass!=null)children=utils.find(mustHaveClass,startNode,false);for(var i in children){var child=children[i];if(child.innerHTML==="")return child}return null};utils.loopMe=function(depth,idx){if(idx<depth)utils.loopMe(depth,++idx);else{var obj=
arguments.callee;0&&console.dir(obj)}};utils.addWidget=function(widgetProto,ctrArgsIn,delegate,parent,startup,cssClass){var ctrArgs={delegate:delegate};lang.mixin(ctrArgs,ctrArgsIn);var widget=new widgetProto(ctrArgs,dojo.doc.createElement("div"));if(parent)utils.addChild(parent,widget,startup);if(cssClass)domClass.add(widget.domNode,cssClass);return widget};utils.addChild=function(parent,child,startup){try{var _parentNode=parent.addChild!=null?parent:parent.containerNode||parent.domNode||parent;
var _childNode=parent.addChild!=null?child:child.domNode||child;if(_parentNode&&_childNode)if(!parent.addChild){_parentNode.appendChild(_childNode);if(startup===true&&child.startup)child.startup()}else parent.addChild(_childNode,-1,startup);else if(has("debug"))console.error("utils.addChild : invalid parameters :: parent or child domNode is null")}catch(e){console.error("addWidget : crashed : "+e)}};utils.templatify=function(baseClass,templateString,parentNode,templateArguments,baseClasses,startup){var widgetClassIn=
baseClass||"xide.widgets.TemplatedWidgetBase";var widgetProto=null;if(baseClasses)widgetProto=declare([baseClass].concat(baseClasses));else widgetProto=dojo.getObject(widgetClassIn);if(!widgetProto)return null;var ctrArgs={templateString:templateString};lang.mixin(ctrArgs,templateArguments);var widget=new widgetProto(ctrArgs,dojo.doc.createElement("div"));utils.addChild(parentNode,widget);if(startup===true)widget.startup();return widget};utils.isEmpty=function(node){if(!node)return false;var widget=
null;if(node.id){widget=registry.byId(node.id);if(widget)if(widget.containerNode)if(widget.containerNode.children&&widget.containerNode.children.length==0)return true}if(node.children&&node.children.length==0)return true;return false};utils.destroyWidget=function(view){try{if(view){if(view.parentContainer&&view.parentContainer.removeChild){view.parentContainer.removeChild(view);return}if(view.destroyRecursive)view.destroyRecursive();if(view.destroy)view.destroy();if(view.domNode||view["domNode"]){if(view.domNode)dojo.destroy(view.domNode)}else{var doc=
view.ownerDocument;if(doc)dojo.destroy(view)}}}catch(e){console.error("error in destroying widget")}};utils.destroyIfEmpty=function(node,parent){if(!node)return false;var widget=null;if(node.id){widget=registry.byId(node.id);if(widget)if(widget.containerNode)if(widget.containerNode.children&&widget.containerNode.children.length==0){var size=dojo.marginBox(widget.containerNode);if(parent!=null&&parent.removeChild&&node.containerNode){parent.removeChild(node);return size}else{xapp.utils.destroyWidget(widget);
return size}}}if(node.children&&node.children.length==0){var size=dojo.marginBox(node);utils.destroyWidget(node);return size}};utils.mimicNode=function(srcNode,dstNode,width,height,sizeFunc,attribute){if(srcNode&&dstNode){var _sizeFun=sizeFunc||domGeometry.getMarginBox;var adjustWidth=width===true;var adjustHeight=height===true;var _box=_sizeFun(srcNode);if(adjustHeight)domStyle.set(dstNode,{"height":_box.h+"px"})}};return utils})},"xide/widgets/_InsertionMixin":function(){define(["dojo/_base/declare",
"dojo/_base/lang","dojo/dom-construct","dojo/on","xide/utils"],function(declare,lang,domConstruct,on,utils){return dojo.declare("xide.widgets._InsertionMixin",null,{data:null,delegate:null,didInserts:false,doInsert:function(data){if(!data)return;var dstNode=utils.find(data.query,this.domNode)||this.domNode;if(dstNode){var widgetNS=data.widgetClass||"xide.widgets.TemplatedWidgetBase";var widgetClz=dojo.getObject(widgetNS);if(widgetNS=="xide.layout.ContentPane");if(widgetClz){var wData=null;if(this.dataItem&&
data.insertDataRef!=null&&this.dataItem[data.insertDataRef]!=null)wData=dojo.isString(this.dataItem[data.insertDataRef])?dojo.fromJson(this.dataItem[data.insertDataRef]):this.dataItem[data.insertDataRef];var insert=data.insert||"\x3cdiv\x3e\x3c/div\x3e";insert=utils.cleanString(insert);var ctrArgs={templateString:insert,dataItem:wData,title:wData?wData.title?wData.title:wData.title:null,className:data.className||""};if(data.mixin!=null){if(dojo.isString(data.mixin))data.mixin=utils.cleanString(data.mixin);
data.mixin=dojo.isString(data.mixin)?dojo.fromJson(data.mixin):data.mixin;if(data.mixin){if(widgetNS==="xide.layout.ContentPane")if(utils.isValidString(insert)&&!data.mixin.innerHTML&&!data.mixin.content)data.mixin.content=insert;lang.mixin(ctrArgs,data.mixin)}}widget=null;widgetParent=null;var widgetParent=domConstruct.create("div");var widget=new widgetClz(ctrArgs,widgetParent);if(widget._addCssClasses&&widget.domNode)widget._addCssClasses(widget.cssClass,widget.domNode);dojo.place(widget.domNode,
dstNode,data.place||"after");widget.startup();return widget}}else console.error("have no dstNode")},doInserts:function(data){if(this.didInserts)return;if(data)for(var i=0;i<data.length;i++)this.doInsert(data[i]);this.didInserts=true}})})},"dijit/layout/_LayoutWidget":function(){define("dijit/layout/_LayoutWidget",["dojo/_base/lang","../_Widget","../_Container","../_Contained","../Viewport","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style"],function(lang,_Widget,_Container,
_Contained,Viewport,declare,domClass,domGeometry,domStyle){return declare("dijit.layout._LayoutWidget",[_Widget,_Container,_Contained],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,buildRendering:function(){this.inherited(arguments);domClass.add(this.domNode,"dijitContainer")},startup:function(){if(this._started)return;this.inherited(arguments);var parent=this.getParent&&this.getParent();if(!(parent&&parent.isLayoutContainer)){this.resize();this.own(Viewport.on("resize",lang.hitch(this,
"resize")))}},resize:function(changeSize,resultSize){var node=this.domNode;if(changeSize)domGeometry.setMarginBox(node,changeSize);var mb=resultSize||{};lang.mixin(mb,changeSize||{});if(!("h"in mb)||!("w"in mb))mb=lang.mixin(domGeometry.getMarginBox(node),mb);var cs=domStyle.getComputedStyle(node);var me=domGeometry.getMarginExtents(node,cs);var be=domGeometry.getBorderExtents(node,cs);var bb=this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)};var pe=domGeometry.getPadExtents(node,cs);this._contentBox=
{l:domStyle.toPixelValue(node,cs.paddingLeft),t:domStyle.toPixelValue(node,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout()},layout:function(){},_setupChild:function(child){var cls=this.baseClass+"-child "+(child.baseClass?this.baseClass+"-"+child.baseClass:"");domClass.add(child.domNode,cls)},addChild:function(child,insertIndex){this.inherited(arguments);if(this._started)this._setupChild(child)},removeChild:function(child){var cls=this.baseClass+"-child"+(child.baseClass?" "+this.baseClass+
"-"+child.baseClass:"");domClass.remove(child.domNode,cls);this.inherited(arguments)}})})},"dojox/mobile/iconUtils":function(){define("dojox/mobile/iconUtils",["dojo/_base/array","dojo/_base/config","dojo/_base/connect","dojo/_base/event","dojo/_base/lang","dojo/_base/window","dojo/dom-class","dojo/dom-construct","dojo/dom-style","./sniff"],function(array,config,connect,event,lang,win,domClass,domConstruct,domStyle,has){var dm=lang.getObject("dojox.mobile",true);var IconUtils=function(){this.setupSpriteIcon=
function(iconNode,iconPos){if(iconNode&&iconPos){var arr=array.map(iconPos.split(/[ ,]/),function(item){return item-0});var t=arr[0];var r=arr[1]+arr[2];var b=arr[0]+arr[3];var l=arr[1];domStyle.set(iconNode,{position:"absolute",clip:"rect("+t+"px "+r+"px "+b+"px "+l+"px)",top:(iconNode.parentNode?domStyle.get(iconNode,"top"):0)-t+"px",left:-l+"px"});domClass.add(iconNode,"mblSpriteIcon")}};this.createDomButton=function(refNode,style,toNode){if(!this._domButtons)if(has("webkit")){var findDomButtons=
function(sheet,dic){var i,j;if(!sheet){var _dic={};var ss=win.doc.styleSheets;for(i=0;i<ss.length;i++)ss[i]&&findDomButtons(ss[i],_dic);return _dic}var rules=sheet.cssRules||[];for(i=0;i<rules.length;i++){var rule=rules[i];if(rule.href&&rule.styleSheet)findDomButtons(rule.styleSheet,dic);else if(rule.selectorText){var sels=rule.selectorText.split(/,/);for(j=0;j<sels.length;j++){var sel=sels[j];var n=sel.split(/>/).length-1;if(sel.match(/(mblDomButton\w+)/)){var cls=RegExp.$1;if(!dic[cls]||n>dic[cls])dic[cls]=
n}}}}return dic};this._domButtons=findDomButtons()}else this._domButtons={};var s=refNode.className;var node=toNode||refNode;if(s.match(/(mblDomButton\w+)/)&&s.indexOf("/")===-1){var btnClass=RegExp.$1;var nDiv=4;if(s.match(/(mblDomButton\w+_(\d+))/))nDiv=RegExp.$2-0;else if(this._domButtons[btnClass]!==undefined)nDiv=this._domButtons[btnClass];var props=null;if(has("bb")&&config["mblBBBoxShadowWorkaround"]!==false)props={style:"-webkit-box-shadow:none"};for(var i=0,p=node;i<nDiv;i++)p=p.firstChild||
domConstruct.create("div",props,p);if(toNode){setTimeout(function(){domClass.remove(refNode,btnClass)},0);domClass.add(toNode,btnClass)}}else if(s.indexOf(".")!==-1)domConstruct.create("img",{src:s},node);else return null;domClass.add(node,"mblDomButton");!!style&&domStyle.set(node,style);return node};this.createIcon=function(icon,iconPos,node,title,parent,refNode,pos){title=title||"";if(icon&&icon.indexOf("mblDomButton")===0){if(!node)node=domConstruct.create("div",null,refNode||parent,pos);else if(node.className.match(/(mblDomButton\w+)/))domClass.remove(node,
RegExp.$1);node.title=title;domClass.add(node,icon);this.createDomButton(node)}else if(icon&&icon!=="none"){if(!node||node.nodeName!=="IMG")node=domConstruct.create("img",{alt:title},refNode||parent,pos);node.src=(icon||"").replace("${theme}",dm.currentTheme);this.setupSpriteIcon(node,iconPos);if(iconPos&&parent){var arr=iconPos.split(/[ ,]/);domStyle.set(parent,{position:"relative",width:arr[2]+"px",height:arr[3]+"px"});domClass.add(parent,"mblSpriteIconParent")}connect.connect(node,"ondragstart",
event,"stop")}return node};this.iconWrapper=false;this.setIcon=function(icon,iconPos,iconNode,alt,parent,refNode,pos){if(!parent||!icon&&!iconNode)return null;if(icon&&icon!=="none"){if(!this.iconWrapper&&icon.indexOf("mblDomButton")!==0&&!iconPos){if(iconNode&&iconNode.tagName==="DIV"){domConstruct.destroy(iconNode);iconNode=null}iconNode=this.createIcon(icon,null,iconNode,alt,parent,refNode,pos);domClass.add(iconNode,"mblImageIcon")}else{if(iconNode&&iconNode.tagName==="IMG"){domConstruct.destroy(iconNode);
iconNode=null}iconNode&&domConstruct.empty(iconNode);if(!iconNode)iconNode=domConstruct.create("div",null,refNode||parent,pos);this.createIcon(icon,iconPos,null,null,iconNode);if(alt)iconNode.title=alt}domClass.remove(parent,"mblNoIcon");return iconNode}else{domConstruct.destroy(iconNode);domClass.add(parent,"mblNoIcon");return null}}};return new IconUtils})},"dojox/main":function(){define("dojox/main",["dojo/_base/kernel"],function(dojo){return dojo.dojox})},"dojox/grid/_Scroller":function(){define("dojox/grid/_Scroller",
["dijit/registry","dojo/_base/declare","dojo/_base/lang","./util","dojo/_base/html"],function(dijitRegistry,declare,lang,util,html){var indexInParent=function(inNode){var i=0,n,p=inNode.parentNode;while(n=p.childNodes[i++])if(n==inNode)return i-1;return-1};var cleanNode=function(inNode){if(!inNode)return;dojo.forEach(dijitRegistry.toArray(),function(w){if(w.domNode&&html.isDescendant(w.domNode,inNode,true))w.destroy()})};var getTagName=function(inNodeOrId){var node=html.byId(inNodeOrId);return node&&
node.tagName?node.tagName.toLowerCase():""};var nodeKids=function(inNode,inTag){var result=[];var i=0,n;while(n=inNode.childNodes[i]){i++;if(getTagName(n)==inTag)result.push(n)}return result};var divkids=function(inNode){return nodeKids(inNode,"div")};return declare("dojox.grid._Scroller",null,{constructor:function(inContentNodes){this.setContentNodes(inContentNodes);this.pageHeights=[];this.pageNodes=[];this.stack=[]},rowCount:0,defaultRowHeight:32,keepRows:100,contentNode:null,scrollboxNode:null,
defaultPageHeight:0,keepPages:10,pageCount:0,windowHeight:0,firstVisibleRow:0,lastVisibleRow:0,averageRowHeight:0,page:0,pageTop:0,init:function(inRowCount,inKeepRows,inRowsPerPage){switch(arguments.length){case 3:this.rowsPerPage=inRowsPerPage;case 2:this.keepRows=inKeepRows;case 1:this.rowCount=inRowCount;default:break}this.defaultPageHeight=(this.grid.rowHeight>0?this.grid.rowHeight:this.defaultRowHeight)*this.rowsPerPage;this.pageCount=this._getPageCount(this.rowCount,this.rowsPerPage);this.setKeepInfo(this.keepRows);
this.invalidate();if(this.scrollboxNode){this.scrollboxNode.scrollTop=0;this.scroll(0);this.scrollboxNode.onscroll=lang.hitch(this,"onscroll")}},_getPageCount:function(rowCount,rowsPerPage){return rowCount?Math.ceil(rowCount/rowsPerPage)||1:0},destroy:function(){this.invalidateNodes();delete this.contentNodes;delete this.contentNode;delete this.scrollboxNode},setKeepInfo:function(inKeepRows){this.keepRows=inKeepRows;this.keepPages=!this.keepRows?this.keepPages:Math.max(Math.ceil(this.keepRows/this.rowsPerPage),
2)},setContentNodes:function(inNodes){this.contentNodes=inNodes;this.colCount=this.contentNodes?this.contentNodes.length:0;this.pageNodes=[];for(var i=0;i<this.colCount;i++)this.pageNodes[i]=[]},getDefaultNodes:function(){return this.pageNodes[0]||[]},invalidate:function(){this._invalidating=true;this.invalidateNodes();this.pageHeights=[];this.height=this.pageCount?(this.pageCount-1)*this.defaultPageHeight+this.calcLastPageHeight():0;this.resize();this._invalidating=false},updateRowCount:function(inRowCount){this.invalidateNodes();
this.rowCount=inRowCount;var oldPageCount=this.pageCount;if(oldPageCount===0)this.height=1;this.pageCount=this._getPageCount(this.rowCount,this.rowsPerPage);if(this.pageCount<oldPageCount)for(var i=oldPageCount-1;i>=this.pageCount;i--){this.height-=this.getPageHeight(i);delete this.pageHeights[i]}else if(this.pageCount>oldPageCount)this.height+=this.defaultPageHeight*(this.pageCount-oldPageCount-1)+this.calcLastPageHeight();this.resize()},pageExists:function(inPageIndex){return Boolean(this.getDefaultPageNode(inPageIndex))},
measurePage:function(inPageIndex){if(this.grid.rowHeight)return((inPageIndex+1)*this.rowsPerPage>this.rowCount?this.rowCount-inPageIndex*this.rowsPerPage:this.rowsPerPage)*this.grid.rowHeight;var n=this.getDefaultPageNode(inPageIndex);return n&&n.innerHTML?n.offsetHeight:undefined},positionPage:function(inPageIndex,inPos){for(var i=0;i<this.colCount;i++)this.pageNodes[i][inPageIndex].style.top=inPos+"px"},repositionPages:function(inPageIndex){var nodes=this.getDefaultNodes();var last=0;for(var i=
0;i<this.stack.length;i++)last=Math.max(this.stack[i],last);var n=nodes[inPageIndex];var y=n?this.getPageNodePosition(n)+this.getPageHeight(inPageIndex):0;for(var p=inPageIndex+1;p<=last;p++){n=nodes[p];if(n){if(this.getPageNodePosition(n)==y)return;this.positionPage(p,y)}y+=this.getPageHeight(p)}},installPage:function(inPageIndex){for(var i=0;i<this.colCount;i++)this.contentNodes[i].appendChild(this.pageNodes[i][inPageIndex])},preparePage:function(inPageIndex,inReuseNode){var p=inReuseNode?this.popPage():
null;for(var i=0;i<this.colCount;i++){var nodes=this.pageNodes[i];var new_p=p===null?this.createPageNode():this.invalidatePageNode(p,nodes);new_p.pageIndex=inPageIndex;nodes[inPageIndex]=new_p}},renderPage:function(inPageIndex){var nodes=[];var i,j;for(i=0;i<this.colCount;i++)nodes[i]=this.pageNodes[i][inPageIndex];for(i=0,j=inPageIndex*this.rowsPerPage;i<this.rowsPerPage&&j<this.rowCount;i++,j++)this.renderRow(j,nodes)},removePage:function(inPageIndex){for(var i=0,j=inPageIndex*this.rowsPerPage;i<
this.rowsPerPage;i++,j++)this.removeRow(j)},destroyPage:function(inPageIndex){for(var i=0;i<this.colCount;i++){var n=this.invalidatePageNode(inPageIndex,this.pageNodes[i]);if(n)html.destroy(n)}},pacify:function(inShouldPacify){},pacifying:false,pacifyTicks:200,setPacifying:function(inPacifying){if(this.pacifying!=inPacifying){this.pacifying=inPacifying;this.pacify(this.pacifying)}},startPacify:function(){this.startPacifyTicks=(new Date).getTime()},doPacify:function(){var result=(new Date).getTime()-
this.startPacifyTicks>this.pacifyTicks;this.setPacifying(true);this.startPacify();return result},endPacify:function(){this.setPacifying(false)},resize:function(){if(this.scrollboxNode)this.windowHeight=this.scrollboxNode.clientHeight;for(var i=0;i<this.colCount;i++)util.setStyleHeightPx(this.contentNodes[i],Math.max(1,this.height));var needPage=!this._invalidating;if(!needPage){var ah=this.grid.get("autoHeight");if(typeof ah=="number"&&ah<=Math.min(this.rowsPerPage,this.rowCount))needPage=true}if(needPage)this.needPage(this.page,
this.pageTop);var rowsOnPage=this.page<this.pageCount-1?this.rowsPerPage:this.rowCount%this.rowsPerPage||this.rowsPerPage;var pageHeight=this.getPageHeight(this.page);this.averageRowHeight=pageHeight>0&&rowsOnPage>0?pageHeight/rowsOnPage:0},calcLastPageHeight:function(){if(!this.pageCount)return 0;var lastPage=this.pageCount-1;var lastPageHeight=(this.rowCount%this.rowsPerPage||this.rowsPerPage)*this.defaultRowHeight;this.pageHeights[lastPage]=lastPageHeight;return lastPageHeight},updateContentHeight:function(inDh){this.height+=
inDh;this.resize()},updatePageHeight:function(inPageIndex,fromBuild,fromAsynRendering){if(this.pageExists(inPageIndex)){var oh=this.getPageHeight(inPageIndex);var h=this.measurePage(inPageIndex);if(h===undefined)h=oh;this.pageHeights[inPageIndex]=h;if(oh!=h){this.updateContentHeight(h-oh);var ah=this.grid.get("autoHeight");if(typeof ah=="number"&&ah>this.rowCount||ah===true&&!fromBuild)if(!fromAsynRendering)this.grid.sizeChange();else{var ns=this.grid.viewsNode.style;ns.height=parseInt(ns.height)+
h-oh+"px";this.repositionPages(inPageIndex)}else this.repositionPages(inPageIndex)}return h}return 0},rowHeightChanged:function(inRowIndex,fromAsynRendering){this.updatePageHeight(Math.floor(inRowIndex/this.rowsPerPage),false,fromAsynRendering)},invalidateNodes:function(){while(this.stack.length)this.destroyPage(this.popPage())},createPageNode:function(){var p=document.createElement("div");html.attr(p,"role","presentation");p.style.position="absolute";p.style[this.grid.isLeftToRight()?"left":"right"]=
"0";return p},getPageHeight:function(inPageIndex){var ph=this.pageHeights[inPageIndex];return ph!==undefined?ph:this.defaultPageHeight},pushPage:function(inPageIndex){return this.stack.push(inPageIndex)},popPage:function(){return this.stack.shift()},findPage:function(inTop){var i=0,h=0;for(var ph=0;i<this.pageCount;i++,h+=ph){ph=this.getPageHeight(i);if(h+ph>=inTop)break}this.page=i;this.pageTop=h},buildPage:function(inPageIndex,inReuseNode,inPos){this.preparePage(inPageIndex,inReuseNode);this.positionPage(inPageIndex,
inPos);this.installPage(inPageIndex);this.renderPage(inPageIndex);this.pushPage(inPageIndex)},needPage:function(inPageIndex,inPos){var h=this.getPageHeight(inPageIndex),oh=h;if(!this.pageExists(inPageIndex)){this.buildPage(inPageIndex,!this.grid._autoHeight&&this.keepPages&&this.stack.length>=this.keepPages,inPos);h=this.updatePageHeight(inPageIndex,true)}else this.positionPage(inPageIndex,inPos);return h},onscroll:function(){this.scroll(this.scrollboxNode.scrollTop)},scroll:function(inTop){this.grid.scrollTop=
inTop;if(this.colCount){this.startPacify();this.findPage(inTop);var h=this.height;var b=this.getScrollBottom(inTop);for(var p=this.page,y=this.pageTop;p<this.pageCount&&(b<0||y<b);p++)y+=this.needPage(p,y);this.firstVisibleRow=this.getFirstVisibleRow(this.page,this.pageTop,inTop);this.lastVisibleRow=this.getLastVisibleRow(p-1,y,b);if(h!=this.height)this.repositionPages(p-1);this.endPacify()}},getScrollBottom:function(inTop){return this.windowHeight>=0?inTop+this.windowHeight:-1},processNodeEvent:function(e,
inNode){var t=e.target;while(t&&t!=inNode&&t.parentNode&&t.parentNode.parentNode!=inNode)t=t.parentNode;if(!t||!t.parentNode||t.parentNode.parentNode!=inNode)return false;var page=t.parentNode;e.topRowIndex=page.pageIndex*this.rowsPerPage;e.rowIndex=e.topRowIndex+indexInParent(t);e.rowTarget=t;return true},processEvent:function(e){return this.processNodeEvent(e,this.contentNode)},renderRow:function(inRowIndex,inPageNode){},removeRow:function(inRowIndex){},getDefaultPageNode:function(inPageIndex){return this.getDefaultNodes()[inPageIndex]},
positionPageNode:function(inNode,inPos){},getPageNodePosition:function(inNode){return inNode.offsetTop},invalidatePageNode:function(inPageIndex,inNodes){var p=inNodes[inPageIndex];if(p){delete inNodes[inPageIndex];this.removePage(inPageIndex,p);cleanNode(p);p.innerHTML=""}return p},getPageRow:function(inPage){return inPage*this.rowsPerPage},getLastPageRow:function(inPage){return Math.min(this.rowCount,this.getPageRow(inPage+1))-1},getFirstVisibleRow:function(inPage,inPageTop,inScrollTop){if(!this.pageExists(inPage))return 0;
var row=this.getPageRow(inPage);var nodes=this.getDefaultNodes();var rows=divkids(nodes[inPage]);for(var i=0,l=rows.length;i<l&&inPageTop<inScrollTop;i++,row++)inPageTop+=rows[i].offsetHeight;return row?row-1:row},getLastVisibleRow:function(inPage,inBottom,inScrollBottom){if(!this.pageExists(inPage))return 0;var nodes=this.getDefaultNodes();var row=this.getLastPageRow(inPage);var rows=divkids(nodes[inPage]);for(var i=rows.length-1;i>=0&&inBottom>inScrollBottom;i--,row--)inBottom-=rows[i].offsetHeight;
return row+1},findTopRow:function(inScrollTop){var nodes=this.getDefaultNodes();var rows=divkids(nodes[this.page]);for(var i=0,l=rows.length,t=this.pageTop,h;i<l;i++){h=rows[i].offsetHeight;t+=h;if(t>=inScrollTop){this.offset=h-(t-inScrollTop);return i+this.page*this.rowsPerPage}}return-1},findScrollTop:function(inRow){var rowPage=Math.floor(inRow/this.rowsPerPage);var t=0;var i,l;for(i=0;i<rowPage;i++)t+=this.getPageHeight(i);this.pageTop=t;this.page=rowPage;this.needPage(rowPage,this.pageTop);var nodes=
this.getDefaultNodes();var rows=divkids(nodes[rowPage]);var r=inRow-this.rowsPerPage*rowPage;for(i=0,l=rows.length;i<l&&i<r;i++)t+=rows[i].offsetHeight;return t},dummy:0})})},"xapp/utils/ViewUtils":function(){define("xapp/utils/ViewUtils",["xapp/utils","xapp/types","dijit/registry","dojo/has"],function(utils,types,registry,has){utils.getRoot=function(){return dojo.byId(xapp.K_ROOT)};utils.getWidget=function(wId){return registry.byId(wId)};utils.moduleIsVisible=function(ciOverrideStore,pageId,ciId){var vFlags=
types.CIOverrideFlags.ShowInAllFollowElements;var ciOverride=utils.getPageCIOverrideByCIId(ciOverrideStore,utils.toInt(pageId),utils.toInt(ciId));if(ciOverride)vFlags=utils.toInt(ciOverride.flags);return vFlags==types.CIOverrideFlags.ShowInAllFollowElements||vFlags==types.CIOverrideFlags.ShowInThisElement};utils.addChild=function(parent,child,startup){if(parent&&parent.domNode&&child&&child.domNode){if(parent.containerNode)parent.containerNode.appendChild(child.domNode);else parent.domNode.appendChild(child.domNode);
if(startup===true&&child.startup)child.startup()}else if(has("debug"))console.error("utils.addChild : invalid parameters :: parent or child domNode is null")};utils.calcBoxInfo=function(view){};utils.destroyWidget=function(view){try{if(view){if(view.destroyRecursive)view.destroyRecursive();if(view.domNode||view["domNode"]){if(view.domNode)dojo.destroy(view.domNode)}else{var doc=view.ownerDocument;if(doc)dojo.destroy(view)}}}catch(e){}};utils.destroyWidgetById=function(view){var result=dijit.registry.byId(view);
if(result){result.destroyRecursive();if(result)if(result.domNode||result["domNode"]){if(result.domNode)dojo.destroy(result.domNode)}else{var doc=view.ownerDocument;if(doc)dojo.destroy(view)}}};return utils})},"xide/form/Select":function(){define(["dojo/_base/declare","dojo/dom-class","dojo/aspect","xide/utils","dijit/form/Select"],function(declare,domClass,aspect,utils,Select){return declare("xide.form.Select",[Select],{_patchMenu:function(widget){var thiz=this;aspect.after(widget,"onOpen",function(){if(this._popupWrapper&&
this._popupWrapper){var dst=this._popupWrapper;domClass.add(dst,"ui-menu ui-widget ui-widget-content")}})},_fillContent:function(){this.inherited(arguments);if(this.dropDown)this._patchMenu(this.dropDown)}})})},"xwordpress/Imports/DojoRPCImports":function(){define("xwordpress/Imports/DojoRPCImports",["dojo/_base/declare","dojo/_base/xhr","dojo/io/script","dojox/rpc/Service","dojox/data/ServiceStore","dojox/rpc/Rest","dojo/rpc/JsonService","dojo/io/iframe","dojox/data/JsonRestStore","dojox/rpc/JsonRPC",
"dojo/data/ItemFileWriteStore","dojo/store/Memory","dojo/store/Observable"],function(declare,xhr,script,Service,ServiceStore,Rest,JonService,iframe,JsonRestStore,JsonRPC,ItemFileWriteStore,Memory,Observable){return declare("xwordpress.DojoRPCImports",null,{constructor:function(){}})})},"url:dojox/layout/resources/GridContainer.html":'\x3cdiv id\x3d"${id}" class\x3d"gridContainer" dojoAttachPoint\x3d"containerNode" tabIndex\x3d"0" dojoAttachEvent\x3d"onkeypress:_selectFocus"\x3e\n\t\x3cdiv dojoAttachPoint\x3d"gridContainerDiv"\x3e\n\t\t\x3ctable class\x3d"gridContainerTable" dojoAttachPoint\x3d"gridContainerTable" cellspacing\x3d"0" cellpadding\x3d"0"\x3e\n\t\t\t\x3ctbody\x3e\n\t\t\t\t\x3ctr dojoAttachPoint\x3d"gridNode" \x3e\n\t\t\t\t\t\n\t\t\t\t\x3c/tr\x3e\n\t\t\t\x3c/tbody\x3e\n\t\t\x3c/table\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e',
"dojox/fx/_base":function(){define("dojox/fx/_base",["dojo/_base/array","dojo/_base/lang","dojo/_base/fx","dojo/fx","dojo/dom","dojo/dom-style","dojo/dom-geometry","dojo/_base/connect","dojo/_base/html"],function(arrayUtil,lang,baseFx,coreFx,dom,domStyle,domGeom,connectUtil,htmlUtil){var dojoxFx=lang.getObject("dojox.fx",true);lang.mixin(dojoxFx,{anim:baseFx.anim,animateProperty:baseFx.animateProperty,fadeTo:baseFx._fade,fadeIn:baseFx.fadeIn,fadeOut:baseFx.fadeOut,combine:coreFx.combine,chain:coreFx.chain,
slideTo:coreFx.slideTo,wipeIn:coreFx.wipeIn,wipeOut:coreFx.wipeOut});dojoxFx.sizeTo=function(args){var node=args.node=dom.byId(args.node),abs="absolute";var method=args.method||"chain";if(!args.duration)args.duration=500;if(method=="chain")args.duration=Math.floor(args.duration/2);var top,newTop,left,newLeft,width,height=null;var init=function(n){return function(){var cs=domStyle.getComputedStyle(n),pos=cs.position,w=cs.width,h=cs.height;top=pos==abs?n.offsetTop:parseInt(cs.top)||0;left=pos==abs?
n.offsetLeft:parseInt(cs.left)||0;width=w=="auto"?0:parseInt(w);height=h=="auto"?0:parseInt(h);newLeft=left-Math.floor((args.width-width)/2);newTop=top-Math.floor((args.height-height)/2);if(pos!=abs&&pos!="relative"){var ret=domStyle.coords(n,true);top=ret.y;left=ret.x;n.style.position=abs;n.style.top=top+"px";n.style.left=left+"px"}}}(node);var anim1=baseFx.animateProperty(lang.mixin({properties:{height:function(){init();return{end:args.height||0,start:height}},top:function(){return{start:top,end:newTop}}}},
args));var anim2=baseFx.animateProperty(lang.mixin({properties:{width:function(){return{start:width,end:args.width||0}},left:function(){return{start:left,end:newLeft}}}},args));var anim=coreFx[args.method=="combine"?"combine":"chain"]([anim1,anim2]);return anim};dojoxFx.slideBy=function(args){var node=args.node=dom.byId(args.node),top,left;var init=function(n){return function(){var cs=domStyle.getComputedStyle(n);var pos=cs.position;top=pos=="absolute"?n.offsetTop:parseInt(cs.top)||0;left=pos=="absolute"?
n.offsetLeft:parseInt(cs.left)||0;if(pos!="absolute"&&pos!="relative"){var ret=domGeom.coords(n,true);top=ret.y;left=ret.x;n.style.position="absolute";n.style.top=top+"px";n.style.left=left+"px"}}}(node);init();var _anim=baseFx.animateProperty(lang.mixin({properties:{top:top+(args.top||0),left:left+(args.left||0)}},args));connectUtil.connect(_anim,"beforeBegin",_anim,init);return _anim};dojoxFx.crossFade=function(args){var node1=args.nodes[0]=dom.byId(args.nodes[0]),op1=htmlUtil.style(node1,"opacity"),
node2=args.nodes[1]=dom.byId(args.nodes[1]),op2=htmlUtil.style(node2,"opacity");var _anim=coreFx.combine([baseFx[op1==0?"fadeIn":"fadeOut"](lang.mixin({node:node1},args)),baseFx[op1==0?"fadeOut":"fadeIn"](lang.mixin({node:node2},args))]);return _anim};dojoxFx.highlight=function(args){var node=args.node=dom.byId(args.node);args.duration=args.duration||400;var startColor=args.color||"#ffff99",endColor=htmlUtil.style(node,"backgroundColor");if(endColor=="rgba(0, 0, 0, 0)")endColor="transparent";var anim=
baseFx.animateProperty(lang.mixin({properties:{backgroundColor:{start:startColor,end:endColor}}},args));if(endColor=="transparent")connectUtil.connect(anim,"onEnd",anim,function(){node.style.backgroundColor=endColor});return anim};dojoxFx.wipeTo=function(args){args.node=dom.byId(args.node);var node=args.node,s=node.style;var dir=args.width?"width":"height",endVal=args[dir],props={};props[dir]={start:function(){s.overflow="hidden";if(s.visibility=="hidden"||s.display=="none"){s[dir]="1px";s.display=
"";s.visibility="";return 1}else{var now=htmlUtil.style(node,dir);return Math.max(now,1)}},end:endVal};var anim=baseFx.animateProperty(lang.mixin({properties:props},args));return anim};return dojoxFx})},"xide/widgets/_ResizeMixin":function(){define(["dojo/_base/declare","xide/factory","xide/types"],function(declare,factory,types){return declare("xide.widgets._ResizeMixin",null,{delayResized:500,onResized:function(){this.inherited(arguments);var thiz=this;if(thiz.delegate&&this.delegate.onResized)thiz.delegate.onResized(thiz);
setTimeout(function(){if(thiz.delegate&&thiz.delegate.onResized)thiz.delegate.onResized(thiz)},this.delayResized);factory.publish(types.EVENTS.RESIZE,{view:this},this)}})})},"xwordpress/views/SettingsTreeView":function(){define("xwordpress/views/SettingsTreeView",["dojo/_base/declare","xide/views/SettingsTreeView"],function(declare,SettingsTreeView){return declare("xwordpress.views.SettingsTreeView",[SettingsTreeView],{startup:function(){if(this.didLoad)return;this.inherited(arguments);this.didLoad=
true}})})},"dijit/form/_ComboBoxMenuMixin":function(){define("dijit/form/_ComboBoxMenuMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/has","dojo/i18n","dojo/i18n!./nls/ComboBox"],function(array,declare,domAttr,has,i18n){var ComboBoxMenuMixin=declare("dijit.form._ComboBoxMenuMixin"+(0?"_NoBidi":""),null,{_messages:null,postMixInProperties:function(){this.inherited(arguments);this._messages=i18n.getLocalization("dijit.form","ComboBox",this.lang)},buildRendering:function(){this.inherited(arguments);
this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"]},_setValueAttr:function(value){this._set("value",value);this.onChange(value)},onClick:function(node){if(node==this.previousButton){this._setSelectedAttr(null);this.onPage(-1)}else if(node==this.nextButton){this._setSelectedAttr(null);this.onPage(1)}else this.onChange(node)},onChange:function(){},onPage:function(){},onClose:function(){this._setSelectedAttr(null)},_createOption:function(item,
labelFunc){var menuitem=this._createMenuItem();var labelObject=labelFunc(item);if(labelObject.html)menuitem.innerHTML=labelObject.label;else menuitem.appendChild(menuitem.ownerDocument.createTextNode(labelObject.label));if(menuitem.innerHTML=="")menuitem.innerHTML="\x26#160;";return menuitem},createOptions:function(results,options,labelFunc){this.items=results;this.previousButton.style.display=options.start==0?"none":"";domAttr.set(this.previousButton,"id",this.id+"_prev");array.forEach(results,function(item,
i){var menuitem=this._createOption(item,labelFunc);menuitem.setAttribute("item",i);domAttr.set(menuitem,"id",this.id+i);this.nextButton.parentNode.insertBefore(menuitem,this.nextButton)},this);var displayMore=false;if(results.total&&!results.total.then&&results.total!=-1)if(options.start+options.count<results.total)displayMore=true;else{if(options.start+options.count>results.total&&options.count==results.length)displayMore=true}else if(options.count==results.length)displayMore=true;this.nextButton.style.display=
displayMore?"":"none";domAttr.set(this.nextButton,"id",this.id+"_next")},clearResultList:function(){var container=this.containerNode;while(container.childNodes.length>2)container.removeChild(container.childNodes[container.childNodes.length-2]);this._setSelectedAttr(null)},highlightFirstOption:function(){this.selectFirstNode()},highlightLastOption:function(){this.selectLastNode()},selectFirstNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.previousButton)this.selectNextNode()},
selectLastNode:function(){this.inherited(arguments);if(this.getHighlightedOption()==this.nextButton)this.selectPreviousNode()},getHighlightedOption:function(){return this.selected}});if(0)ComboBoxMenuMixin=declare("dijit.form._ComboBoxMenuMixin",ComboBoxMenuMixin,{_createOption:function(){var menuitem=this.inherited(arguments);this.applyTextDir(menuitem);return menuitem}});return ComboBoxMenuMixin})},"xide/manager/ClipboardManager":function(){define(["dojo/_base/declare","xide/types","xide/manager/ManagerBase"],
function(declare,types,ManagerBase){return declare([ManagerBase],{currentCopySelection:null,currentCutSelection:null,onPaste:function(data){var selection=this.currentCopySelection||this.currentCutSelection;var owner=data?data?data.owner?data.owner:null:null:null;var isCopy=this.currentCopySelection!=null;if(selection&&owner){var dst=null;if(owner.delegate&&owner.panelDelegate&&owner.panelDelegate.getCurrentPathItem)dst=owner.panelDelegate.getCurrentPathItem();var path=owner.panelDelegate.getCurrentPath();
if(path&&owner&&owner.store)dst=owner.store.getItemByPath(null,path);if(dst){var delegate=owner.panelManager?owner.panelManager:null;if(delegate)if(isCopy)delegate.copyItems(null,selection,dst,null,true);else{delegate.moveItems(null,selection,dst,null,true);this.currentCutSelection=null;this.currentCopySelection=null}}}},onCopy:function(data){var selection=data.items;if(selection)this.currentCopySelection=selection;this.currentCutSelection=null},onCut:function(data){var selection=data?data?data.items?
data.items:null:null:null;if(selection)this.currentCutSelection=selection;this.currentCopySelection=null},init:function(){this.subscribe(types.EVENTS.ON_CLIPBOARD_COPY,this.onCopy);this.subscribe(types.EVENTS.ON_CLIPBOARD_PASTE,this.onPaste);this.subscribe(types.EVENTS.ON_CLIPBOARD_CUT,this.onCut)}})})},"dgrid/extensions/ColumnReorder":function(){define(["dojo/_base/lang","dojo/_base/declare","dojo/_base/array","dojo/on","dojo/query","dojo/dnd/Source","put-selector/put","xstyle/css!../css/extensions/ColumnReorder.css"],
function(lang,declare,arrayUtil,on,query,DndSource,put){var dndTypeRx=/(\d+)(?:-(\d+))?$/;function getMatchingSubRow(grid,match){var hasColumnSets=match[2],rowOrSet=grid[hasColumnSets?"columnSets":"subRows"][match[1]];return hasColumnSets?rowOrSet[match[2]]:rowOrSet}function setMatchingSubRow(grid,match,subRow){if(match[2])grid.columnSets[match[1]][match[2]]=subRow;else grid.subRows[match[1]]=subRow}function makeDndTypePrefix(gridId){return"dgrid-"+gridId+"-"}function stripIdPrefix(gridId,dndtype){return dndtype.slice(makeDndTypePrefix(gridId).length)}
var ColumnDndSource=declare(DndSource,{copyState:function(){return false},checkAcceptance:function(source,nodes){return source==this},_legalMouseDown:function(evt){return evt.target.className.indexOf("dgrid-resize-handle")>-1?false:this.inherited(arguments)},onDropInternal:function(nodes){var grid=this.grid,match=dndTypeRx.exec(stripIdPrefix(grid.id,nodes[0].getAttribute("dndType"))),structureProperty=match[2]?"columnSets":"subRows",oldSubRow=getMatchingSubRow(grid,match),columns=grid.columns;this.inherited(arguments);
if(!match)return;setTimeout(function(){var newSubRow=arrayUtil.map(nodes[0].parentNode.childNodes,function(col){return columns[col.columnId]}),eventObject;setMatchingSubRow(grid,match,newSubRow);eventObject={grid:grid,subRow:newSubRow,column:columns[nodes[0].columnId],bubbles:true,cancelable:true,parentType:"dnd"};eventObject[structureProperty]=grid[structureProperty];if(on.emit(grid.domNode,"dgrid-columnreorder",eventObject))grid.set(structureProperty,grid[structureProperty]);else{setMatchingSubRow(grid,
match,oldSubRow);grid.renderHeader();if(this._sort&&this._sort.length)this.updateSortArrow(this._sort)}},0)}});var ColumnReorder=declare(null,{columnDndConstructor:ColumnDndSource,_initSubRowDnd:function(subRow,dndType){var dndParent,c,len,col,th;for(c=0,len=subRow.length;c<len;c++){col=subRow[c];if(col.reorderable===false)continue;th=col.headerNode;if(th.tagName!="TH")th=th.parentNode;put(th,".dojoDndItem[dndType\x3d"+dndType+"]");if(!dndParent)dndParent=th.parentNode}if(dndParent)this._columnDndSources.push(new this.columnDndConstructor(dndParent,
{horizontal:true,grid:this}))},renderHeader:function(){var dndTypePrefix=makeDndTypePrefix(this.id),csLength,cs;this.inherited(arguments);this._columnDndSources=[];if(this.columnSets)for(cs=0,csLength=this.columnSets.length;cs<csLength;cs++)arrayUtil.forEach(this.columnSets[cs],function(subRow,sr){this._initSubRowDnd(subRow,dndTypePrefix+cs+"-"+sr)},this);else arrayUtil.forEach(this.subRows,function(subRow,sr){this._initSubRowDnd(subRow,dndTypePrefix+sr)},this)},_destroyColumns:function(){if(this._columnDndSources)arrayUtil.forEach(this._columnDndSources,
function(source){source.destroy()});this.inherited(arguments)}});ColumnReorder.ColumnDndSource=ColumnDndSource;return ColumnReorder})},"dojo/AdapterRegistry":function(){define("dojo/AdapterRegistry",["./_base/kernel","./_base/lang"],function(dojo,lang){var AdapterRegistry=dojo.AdapterRegistry=function(returnWrappers){this.pairs=[];this.returnWrappers=returnWrappers||false};lang.extend(AdapterRegistry,{register:function(name,check,wrap,directReturn,override){this.pairs[override?"unshift":"push"]([name,
check,wrap,directReturn])},match:function(){for(var i=0;i<this.pairs.length;i++){var pair=this.pairs[i];if(pair[1].apply(this,arguments))if(pair[3]||this.returnWrappers)return pair[2];else return pair[2].apply(this,arguments)}throw new Error("No match found");},unregister:function(name){for(var i=0;i<this.pairs.length;i++){var pair=this.pairs[i];if(pair[0]==name){this.pairs.splice(i,1);return true}}return false}});return AdapterRegistry})},"xas/views/Dialog":function(){define(["dojo/_base/array",
"dojo/_base/declare","dojo/_base/html","dojo/on","dojo/_base/Deferred","dojo/_base/fx","dojo/_base/lang","dijit/Dialog"],function(array,declare,html,on,Deferred,fx,lang,Dialog){return dojo.declare("xas.views.Dialog",[Dialog],{_messages:null,translate:function(value,toLowerCase){if(value&&value.length!=null&&value.toLocaleLowerCase!=null){var _titleKey=toLowerCase===false?value:value.toLocaleLowerCase();_titleKey=_titleKey.replace(/\s+/g,"_");if(_titleKey&&this._messages!=null){var _titleValue=this._messages[_titleKey];
if(_titleValue&&_titleValue.length>0)return _titleValue}}return value},postMixInProperties:function(){this.inherited(arguments);var ctxo=sctx||this.ctx;if(mctx!=null)ctxo=mctx;if(ctxo&&ctxo.getLocals)this._messages=ctxo.getLocals("xas.widgets","TemplatedWidgetBase");else this._messages=[]},show:function(){var res=this.inherited(arguments);if(this.titleNode)this.titleNode.innerHTML=this.translate(this.title);return res},hide:function(){var res=this.inherited(arguments);return res}})})},"dijit/form/ToggleButton":function(){define("dijit/form/ToggleButton",
["dojo/_base/declare","dojo/_base/kernel","./Button","./_ToggleButtonMixin"],function(declare,kernel,Button,_ToggleButtonMixin){return declare("dijit.form.ToggleButton",[Button,_ToggleButtonMixin],{baseClass:"dijitToggleButton",setChecked:function(checked){kernel.deprecated("setChecked("+checked+") is deprecated. Use set('checked',"+checked+") instead.","","2.0");this.set("checked",checked)}})})},"url:dijit/templates/MenuSeparator.html":'\x3ctr class\x3d"dijitMenuSeparator" role\x3d"separator"\x3e\n\t\x3ctd class\x3d"dijitMenuSeparatorIconCell"\x3e\n\t\t\x3cdiv class\x3d"dijitMenuSeparatorTop"\x3e\x3c/div\x3e\n\t\t\x3cdiv class\x3d"dijitMenuSeparatorBottom"\x3e\x3c/div\x3e\n\t\x3c/td\x3e\n\t\x3ctd colspan\x3d"3" class\x3d"dijitMenuSeparatorLabelCell"\x3e\n\t\t\x3cdiv class\x3d"dijitMenuSeparatorTop dijitMenuSeparatorLabel"\x3e\x3c/div\x3e\n\t\t\x3cdiv class\x3d"dijitMenuSeparatorBottom"\x3e\x3c/div\x3e\n\t\x3c/td\x3e\n\x3c/tr\x3e\n',
"xide/utils/StringUtils":function(){define(["dojo/_base/lang","xide/utils","dojo/json"],function(lang,utils,json){utils.isImage=function(string){return string.match(/\.(jpeg|jpg|gif|png)$/)!=null};utils.cleanUrl=function(string){if(string){string=string.replace("//","/");string=string.replace("./","/");string=string.replace("http:/","http://");string=string.replace("./","/");string=string.replace("XApp-portletxasweb","XApp-portlet/xasweb");string=string.replace("XApp-portletutils","XApp-portlet/utils");
string=string.replace("/XApp-portlet/CMAC/","/CMAC/");string=string.replace("////","/");string=string.replace("///","/");return string}return string};utils.getJson=function(inData,validOnly){try{return lang.isString(inData)?json.parse(inData,false):validOnly===true?null:inData}catch(e){}return null};utils.replaceAll=function(find,replace,str){return str.split(find).join(replace)};utils.isValidString=function(input){return input!=null&&input.length!=null&&input.length>0&&input!="undefined"};utils.substituteString=
function(template,obj){return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(match,key){return obj[key]})};utils.capitalize=function(word){return word.substring(0,1).toUpperCase()+word.substring(1)};utils.vsprintf=function(format,args){return utils.sprintf.apply(this,[format].concat(args))};utils.sprintf=function(){var regex=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g;var a=arguments,i=0,format=a[i++];var pad=function(str,len,chr,leftJustify){if(!chr)chr=
" ";var padding=str.length>=len?"":Array(1+len-str.length>>>0).join(chr);return leftJustify?str+padding:padding+str};var justify=function(value,prefix,leftJustify,minWidth,zeroPad,customPadChar){var diff=minWidth-value.length;if(diff>0)if(leftJustify||!zeroPad)value=pad(value,minWidth,customPadChar,leftJustify);else value=value.slice(0,prefix.length)+pad("",diff,"0",true)+value.slice(prefix.length);return value};var formatBaseX=function(value,base,prefix,leftJustify,minWidth,precision,zeroPad){var number=
value>>>0;prefix=prefix&&number&&{2:"0b",8:"0",16:"0x"}[base]||"";value=prefix+pad(number.toString(base),precision||0,"0",false);return justify(value,prefix,leftJustify,minWidth,zeroPad)};var formatString=function(value,leftJustify,minWidth,precision,zeroPad,customPadChar){if(precision!=null)value=value.slice(0,precision);return justify(value,"",leftJustify,minWidth,zeroPad,customPadChar)};var doFormat=function(substring,valueIndex,flags,minWidth,_,precision,type){var number;var prefix;var method;
var textTransform;var value;if(substring==="%%")return"%";var leftJustify=false,positivePrefix="",zeroPad=false,prefixBaseX=false,customPadChar=" ";var flagsl=flags.length;for(var j=0;flags&&j<flagsl;j++)switch(flags.charAt(j)){case " ":positivePrefix=" ";break;case "+":positivePrefix="+";break;case "-":leftJustify=true;break;case "'":customPadChar=flags.charAt(j+1);break;case "0":zeroPad=true;break;case "#":prefixBaseX=true;break}if(!minWidth)minWidth=0;else if(minWidth==="*")minWidth=+a[i++];else if(minWidth.charAt(0)==
"*")minWidth=+a[minWidth.slice(1,-1)];else minWidth=+minWidth;if(minWidth<0){minWidth=-minWidth;leftJustify=true}if(!isFinite(minWidth))throw new Error("sprintf: (minimum-)width must be finite");if(!precision)precision="fFeE".indexOf(type)>-1?6:type==="d"?0:undefined;else if(precision==="*")precision=+a[i++];else if(precision.charAt(0)=="*")precision=+a[precision.slice(1,-1)];else precision=+precision;value=valueIndex?a[valueIndex.slice(0,-1)]:a[i++];switch(type){case "s":return formatString(String(value),
leftJustify,minWidth,precision,zeroPad,customPadChar);case "c":return formatString(String.fromCharCode(+value),leftJustify,minWidth,precision,zeroPad);case "b":return formatBaseX(value,2,prefixBaseX,leftJustify,minWidth,precision,zeroPad);case "o":return formatBaseX(value,8,prefixBaseX,leftJustify,minWidth,precision,zeroPad);case "x":return formatBaseX(value,16,prefixBaseX,leftJustify,minWidth,precision,zeroPad);case "X":return formatBaseX(value,16,prefixBaseX,leftJustify,minWidth,precision,zeroPad).toUpperCase();
case "u":return formatBaseX(value,10,prefixBaseX,leftJustify,minWidth,precision,zeroPad);case "i":case "d":number=+value||0;number=Math.round(number-number%1);prefix=number<0?"-":positivePrefix;value=prefix+pad(String(Math.abs(number)),precision,"0",false);return justify(value,prefix,leftJustify,minWidth,zeroPad);case "e":case "E":case "f":case "F":case "g":case "G":number=+value;prefix=number<0?"-":positivePrefix;method=["toExponential","toFixed","toPrecision"]["efg".indexOf(type.toLowerCase())];
textTransform=["toString","toUpperCase"]["eEfFgG".indexOf(type)%2];value=prefix+Math.abs(number)[method](precision);return justify(value,prefix,leftJustify,minWidth,zeroPad)[textTransform]();default:return substring}};return format.replace(regex,doFormat)};utils.cleanString=function(str){if(!str)return null;str=str.replace(/[\r]/g,"").replace(/[\b]/g,"").replace(/[\f]/g,"").replace(/[\n]/g,"").replace(/\\/g,"");return str};utils.normalizePath=function(str){if(!str)return null;str=utils.cleanString(str);
str=str.replace("./","");str=str.replace("/.","");str=str.replace(/([^:]\/)\/+/g,"$1");return str};utils.getMimeTable=function(){return{"mid":"midi.png","txt":"txt2.png","sql":"txt2.png","js":"javascript.png","gif":"image.png","jpg":"image.png","html":"html.png","htm":"html.png","rar":"archive.png","gz":"zip.png","tgz":"archive.png","z":"archive.png","ra":"video.png","ram":"video.png","rm":"video.png","pl":"source_pl.png","zip":"zip.png","wav":"sound.png","php":"php.png","php3":"php.png","phtml":"php.png",
"exe":"exe.png","bmp":"image.png","png":"image.png","css":"css.png","mp3":"sound.png","m4a":"sound.png","aac":"sound.png","xls":"spreadsheet.png","xlsx":"spreadsheet.png","ods":"spreadsheet.png","sxc":"spreadsheet.png","csv":"spreadsheet.png","tsv":"spreadsheet.png","doc":"word.png","docx":"word.png","odt":"word.png","swx":"word.png","rtf":"word.png","ppt":"presentation.png","pps":"presentation.png","odp":"presentation.png","sxi":"presentation.png","pdf":"pdf.png","mov":"video.png","avi":"video.png",
"mpg":"video.png","mpeg":"video.png","mp4":"video.png","m4v":"video.png","ogv":"video.png","webm":"video.png","wmv":"video.png","swf":"flash.png","flv":"flash.png","tiff":"image.png","tif":"image.png","svg":"image.png","psd":"image.png","ers":"horo.png"}};utils.urlDecode=function(string,overwrite){if(!string||!string.length)return{};var obj={};var pairs=string.split("\x26");var pair,name,value;for(var i=0,len=pairs.length;i<len;i++){pair=pairs[i].split("\x3d");name=decodeURIComponent(pair[0]);value=
decodeURIComponent(pair[1]);if(value!=null&&value==="true")value=true;else if(value==="false")value=false;if(overwrite!==true)if(typeof obj[name]=="undefined")obj[name]=value;else if(typeof obj[name]=="string"){obj[name]=[obj[name]];obj[name].push(value)}else obj[name].push(value);else obj[name]=value}return obj};utils.getIcon=function(fileName){if(!fileName)return"txt2.png";var extension=utils.getFileExtension(fileName);if(extension){var mime=utils.getMimeTable();if(mime[extension]!=null)return mime[extension]}return"txt2.png"};
utils.getFileExtension=function(fileName){if(!fileName||fileName=="")return"";var split=utils.getBaseName(fileName).split(".");if(split.length>1)return split[split.length-1].toLowerCase();return""};utils.getBaseName=function(fileName){if(fileName==null)return null;var separator="/";if(fileName.indexOf("\\")!=-1)separator="\\";return fileName.substr(fileName.lastIndexOf(separator)+1,fileName.length)};utils.createUUID=function(){var S4=function(){return((1+Math.random())*65536|0).toString(16).substring(1)};
return S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4()};utils.strip_tags=function(input,allowed){allowed=(((allowed||"")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join("");var tags=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,commentsAndPhpTags=/\x3c!--[\s\S]*?--\x3e|<\?(?:php)?[\s\S]*?\?>/gi;return input.replace(commentsAndPhpTags,"").replace(tags,function($0,$1){return allowed.indexOf("\x3c"+$1.toLowerCase()+"\x3e")>-1?$0:""})};return utils})},"dijit/MenuItem":function(){require({cache:{"url:dijit/templates/MenuItem.html":'\x3ctr class\x3d"dijitReset dijitMenuItem" data-dojo-attach-point\x3d"focusNode" role\x3d"menuitem" tabIndex\x3d"-1"\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemIconCell" role\x3d"presentation"\x3e\n\t\t\x3cspan role\x3d"presentation" class\x3d"dijitInline dijitIcon dijitMenuItemIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\x3e\n\t\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemLabel" colspan\x3d"2" data-dojo-attach-point\x3d"containerNode,textDirNode"\x3e\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemAccelKey" style\x3d"display: none" data-dojo-attach-point\x3d"accelKeyNode"\x3e\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuArrowCell" role\x3d"presentation"\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"arrowWrapper" style\x3d"visibility: hidden"\x3e\n\t\t\t\x3cspan class\x3d"dijitInline dijitIcon dijitMenuExpand_ el-icon-caret-right" style\x3d"font-size: 8px"\x3e\x3c/span\x3e\n\t\t\t\x3cspan class\x3d"dijitMenuExpandA11y"\x3e+\x3c/span\x3e\n\t\t\x3c/span\x3e\n\t\x3c/td\x3e\n\x3c/tr\x3e\n'}});
define("dijit/MenuItem",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/kernel","dojo/sniff","dojo/_base/lang","./_Widget","./_TemplatedMixin","./_Contained","./_CssStateMixin","dojo/text!./templates/MenuItem.html"],function(declare,dom,domAttr,domClass,kernel,has,lang,_Widget,_TemplatedMixin,_Contained,_CssStateMixin,template){var MenuItem=declare("dijit.MenuItem"+(0?"_NoBidi":""),[_Widget,_TemplatedMixin,_Contained,_CssStateMixin],{templateString:template,baseClass:"dijitMenuItem",
label:"",_setLabelAttr:function(val){this._set("label",val);var shortcutKey="";var text;var ndx=val.search(/{\S}/);if(ndx>=0){shortcutKey=val.charAt(ndx+1);var prefix=val.substr(0,ndx);var suffix=val.substr(ndx+3);text=prefix+shortcutKey+suffix;val=prefix+'\x3cspan class\x3d"dijitMenuItemShortcutKey"\x3e'+shortcutKey+"\x3c/span\x3e"+suffix}else text=val;this.domNode.setAttribute("aria-label",text+" "+this.accelKey);this.containerNode.innerHTML=val;this._set("shortcutKey",shortcutKey)},iconClass:"dijitNoIcon",
_setIconClassAttr:{node:"iconNode",type:"class"},accelKey:"",disabled:false,_fillContent:function(source){if(source&&!("label"in this.params))this._set("label",source.innerHTML)},buildRendering:function(){this.inherited(arguments);var label=this.id+"_text";domAttr.set(this.containerNode,"id",label);if(this.accelKeyNode)domAttr.set(this.accelKeyNode,"id",this.id+"_accel");dom.setSelectable(this.domNode,false)},onClick:function(){},focus:function(){try{if(has("ie")==8)this.containerNode.focus();this.focusNode.focus()}catch(e){}},
_onFocus:function(){this.getParent()._onItemFocus(this);this.inherited(arguments)},_setSelected:function(selected){domClass.toggle(this.domNode,"dijitMenuItemSelected",selected);domClass.toggle(this.domNode,"ui-state-focus",selected)},setLabel:function(content){kernel.deprecated("dijit.MenuItem.setLabel() is deprecated.  Use set('label', ...) instead.","","2.0");this.set("label",content)},setDisabled:function(disabled){kernel.deprecated("dijit.Menu.setDisabled() is deprecated.  Use set('disabled', bool) instead.",
"","2.0");this.set("disabled",disabled)},_setDisabledAttr:function(value){this.focusNode.setAttribute("aria-disabled",value?"true":"false");this._set("disabled",value)},_setAccelKeyAttr:function(value){if(this.accelKeyNode){this.accelKeyNode.style.display=value?"":"none";this.accelKeyNode.innerHTML=value;domAttr.set(this.containerNode,"colSpan",value?"1":"2")}this._set("accelKey",value)}});if(0)MenuItem=declare("dijit.MenuItem",MenuItem,{_setLabelAttr:function(val){this.inherited(arguments);if(this.textDir===
"auto")this.applyTextDir(this.textDirNode)}});return MenuItem})},"dijit/_WidgetBase":function(){define("dijit/_WidgetBase",["require","dojo/_base/array","dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/ready","dojo/Stateful","dojo/topic","dojo/_base/window","./Destroyable","require","./registry"],function(require,
array,aspect,config,connect,declare,dom,domAttr,domClass,domConstruct,domGeometry,domStyle,has,kernel,lang,on,ready,Stateful,topic,win,Destroyable,_BidiMixin,registry){has.add("dijit-legacy-requires",!kernel.isAsync);0&&has.add("dojo-bidi",false);if(has("dijit-legacy-requires"))ready(0,function(){var requires=["dijit/_base/manager"];require(requires)});var tagAttrs={};function getAttrs(obj){var ret={};for(var attr in obj)ret[attr.toLowerCase()]=true;return ret}function nonEmptyAttrToDom(attr){return function(val){domAttr[val?
"set":"remove"](this.domNode,attr,val);this._set(attr,val)}}var _WidgetBase=declare("dijit._WidgetBase",[Stateful,Destroyable],{id:"",_setIdAttr:"domNode",lang:"",_setLangAttr:nonEmptyAttrToDom("lang"),dir:"",_setDirAttr:nonEmptyAttrToDom("dir"),"class":"",_setClassAttr:{node:"domNode",type:"class"},style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,ownerDocument:null,_setOwnerDocumentAttr:function(val){this._set("ownerDocument",val)},attributeMap:{},_blankGif:config.blankGif||
require.toUrl("dojo/resources/blank.gif"),_introspect:function(){var ctor=this.constructor;if(!ctor._setterAttrs){var proto=ctor.prototype,attrs=ctor._setterAttrs=[],onMap=ctor._onMap={};for(var name in proto.attributeMap)attrs.push(name);for(name in proto){if(/^on/.test(name))onMap[name.substring(2).toLowerCase()]=name;if(/^_set[A-Z](.*)Attr$/.test(name)){name=name.charAt(4).toLowerCase()+name.substr(5,name.length-9);if(!proto.attributeMap||!(name in proto.attributeMap))attrs.push(name)}}}},postscript:function(params,
srcNodeRef){this.create(params,srcNodeRef)},create:function(params,srcNodeRef){this._introspect();this.srcNodeRef=dom.byId(srcNodeRef);this._connects=[];this._supportingWidgets=[];if(this.srcNodeRef&&typeof this.srcNodeRef.id=="string")this.id=this.srcNodeRef.id;if(params){this.params=params;lang.mixin(this,params)}this.postMixInProperties();if(!this.id){this.id=registry.getUniqueId(this.declaredClass.replace(/\./g,"_"));if(this.params)delete this.params.id}this.ownerDocument=this.ownerDocument||
(this.srcNodeRef?this.srcNodeRef.ownerDocument:document);this.ownerDocumentBody=win.body(this.ownerDocument);registry.add(this);this.buildRendering();var deleteSrcNodeRef;if(this.domNode){this._applyAttributes();var source=this.srcNodeRef;if(source&&source.parentNode&&this.domNode!==source){source.parentNode.replaceChild(this.domNode,source);deleteSrcNodeRef=true}this.domNode.setAttribute("widgetId",this.id)}this.postCreate();if(deleteSrcNodeRef)delete this.srcNodeRef;this._created=true},_applyAttributes:function(){var params=
{};for(var key in this.params||{})params[key]=this._get(key);array.forEach(this.constructor._setterAttrs,function(key){if(!(key in params)){var val=this._get(key);if(val)this.set(key,val)}},this);for(key in params)this.set(key,params[key])},postMixInProperties:function(){},buildRendering:function(){if(!this.domNode)this.domNode=this.srcNodeRef||this.ownerDocument.createElement("div");if(this.baseClass){var classes=this.baseClass.split(" ");if(!this.isLeftToRight())classes=classes.concat(array.map(classes,
function(name){return name+"Rtl"}));domClass.add(this.domNode,classes)}},postCreate:function(){},startup:function(){if(this._started)return;this._started=true;array.forEach(this.getChildren(),function(obj){if(!obj._started&&!obj._destroyed&&lang.isFunction(obj.startup)){obj.startup();obj._started=true}})},destroyRecursive:function(preserveDom){this._beingDestroyed=true;this.destroyDescendants(preserveDom);this.destroy(preserveDom)},destroy:function(preserveDom){this._beingDestroyed=true;this.uninitialize();
function destroy(w){if(w.destroyRecursive)w.destroyRecursive(preserveDom);else if(w.destroy)w.destroy(preserveDom)}array.forEach(this._connects,lang.hitch(this,"disconnect"));array.forEach(this._supportingWidgets,destroy);if(this.domNode)array.forEach(registry.findWidgets(this.domNode,this.containerNode),destroy);this.destroyRendering(preserveDom);registry.remove(this.id);this._destroyed=true},destroyRendering:function(preserveDom){if(this.bgIframe){this.bgIframe.destroy(preserveDom);delete this.bgIframe}if(this.domNode){if(preserveDom)domAttr.remove(this.domNode,
"widgetId");else domConstruct.destroy(this.domNode);delete this.domNode}if(this.srcNodeRef){if(!preserveDom)domConstruct.destroy(this.srcNodeRef);delete this.srcNodeRef}},destroyDescendants:function(preserveDom){array.forEach(this.getChildren(),function(widget){if(widget.destroyRecursive)widget.destroyRecursive(preserveDom)})},uninitialize:function(){return false},_setStyleAttr:function(value){var mapNode=this.domNode;if(lang.isObject(value))domStyle.set(mapNode,value);else if(mapNode.style.cssText)mapNode.style.cssText+=
"; "+value;else mapNode.style.cssText=value;this._set("style",value)},_attrToDom:function(attr,value,commands){commands=arguments.length>=3?commands:this.attributeMap[attr];array.forEach(lang.isArray(commands)?commands:[commands],function(command){var mapNode=this[command.node||command||"domNode"];var type=command.type||"attribute";switch(type){case "attribute":if(lang.isFunction(value))value=lang.hitch(this,value);var attrName=command.attribute?command.attribute:/^on[A-Z][a-zA-Z]*$/.test(attr)?attr.toLowerCase():
attr;if(mapNode.tagName)domAttr.set(mapNode,attrName,value);else mapNode.set(attrName,value);break;case "innerText":mapNode.innerHTML="";mapNode.appendChild(this.ownerDocument.createTextNode(value));break;case "innerHTML":mapNode.innerHTML=value;break;case "class":domClass.replace(mapNode,value,this[attr]);break}},this)},get:function(name){var names=this._getAttrNames(name);return this[names.g]?this[names.g]():this._get(name)},set:function(name,value){if(typeof name==="object"){for(var x in name)this.set(x,
name[x]);return this}var names=this._getAttrNames(name),setter=this[names.s];if(lang.isFunction(setter))var result=setter.apply(this,Array.prototype.slice.call(arguments,1));else{var defaultNode=this.focusNode&&!lang.isFunction(this.focusNode)?"focusNode":"domNode",tag=this[defaultNode]&&this[defaultNode].tagName,attrsForTag=tag&&(tagAttrs[tag]||(tagAttrs[tag]=getAttrs(this[defaultNode]))),map=name in this.attributeMap?this.attributeMap[name]:names.s in this?this[names.s]:attrsForTag&&names.l in attrsForTag&&
typeof value!="function"||/^aria-|^data-|^role$/.test(name)?defaultNode:null;if(map!=null)this._attrToDom(name,value,map);this._set(name,value)}return result||this},_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name])return apn[name];var uc=name.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase()});return apn[name]={n:name+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr",l:uc.toLowerCase()}},_set:function(name,value){var oldValue=this[name];
this[name]=value;if(this._created&&value!==oldValue){if(this._watchCallbacks)this._watchCallbacks(name,oldValue,value);this.emit("attrmodified-"+name,{detail:{prevValue:oldValue,newValue:value}})}},_get:function(name){return this[name]},emit:function(type,eventObj,callbackArgs){eventObj=eventObj||{};if(eventObj.bubbles===undefined)eventObj.bubbles=true;if(eventObj.cancelable===undefined)eventObj.cancelable=true;if(!eventObj.detail)eventObj.detail={};eventObj.detail.widget=this;var ret,callback=this["on"+
type];if(callback)ret=callback.apply(this,callbackArgs?callbackArgs:[eventObj]);if(this._started&&!this._beingDestroyed)on.emit(this.domNode,type.toLowerCase(),eventObj);return ret},on:function(type,func){var widgetMethod=this._onMap(type);if(widgetMethod)return aspect.after(this,widgetMethod,func,true);return this.own(on(this.domNode,type,func))[0]},_onMap:function(type){var ctor=this.constructor,map=ctor._onMap;if(!map){map=ctor._onMap={};for(var attr in ctor.prototype)if(/^on/.test(attr))map[attr.replace(/^on/,
"").toLowerCase()]=attr}return map[typeof type=="string"&&type.toLowerCase()]},toString:function(){return"[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]"},getChildren:function(){return this.containerNode?registry.findWidgets(this.containerNode):[]},getParent:function(){return registry.getEnclosingWidget(this.domNode.parentNode)},connect:function(obj,event,method){return this.own(connect.connect(obj,event,this,method))[0]},disconnect:function(handle){handle.remove()},subscribe:function(t,
method){return this.own(topic.subscribe(t,lang.hitch(this,method)))[0]},unsubscribe:function(handle){handle.remove()},isLeftToRight:function(){return this.dir?this.dir=="ltr":domGeometry.isBodyLtr(this.ownerDocument)},isFocusable:function(){return this.focus&&domStyle.get(this.domNode,"display")!="none"},placeAt:function(reference,position){var refWidget=!reference.tagName&&registry.byId(reference);if(refWidget&&refWidget.addChild&&(!position||typeof position==="number"))refWidget.addChild(this,position);
else{var ref=refWidget?refWidget.containerNode&&!/after|before|replace/.test(position||"")?refWidget.containerNode:refWidget.domNode:dom.byId(reference,this.ownerDocument);domConstruct.place(this.domNode,ref,position);if(!this._started&&(this.getParent()||{})._started)this.startup()}return this},defer:function(fcn,delay){var timer=setTimeout(lang.hitch(this,function(){if(!timer)return;timer=null;if(!this._destroyed)lang.hitch(this,fcn)()}),delay||0);return{remove:function(){if(timer){clearTimeout(timer);
timer=null}return null}}}});if(0)_WidgetBase.extend(_BidiMixin);return _WidgetBase})},"xfile/views/FileGridViewDND":function(){define("xfile/views/FileGridViewDND",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","dojox/rpc/Service","dojo/_base/lang","dijit/Menu","dijit/MenuItem","dijit/layout/ContentPane","dojox/grid/DataGrid","dojo/dom-construct","dgrid/OnDemandGrid","dgrid/Selection","dgrid/Keyboard","dgrid/extensions/ColumnResizer","dgrid/editor","put-selector/put",
"xide/utils/StringUtils","xfile/views/ContextMenuHandler","xide/types","./FileView","xapp/factory/Events","./_KeyNavMixin"],function(array,declare,html,domClass,on,Service,lang,Menu,MenuItem,ContentPane,DataGrid,domConstruct,Grid,Selection,Keyboard,ColumnResizer,editor,put,utils,ContextMenuHandler,types,FileView,eventFactory,_KeyNavMixin){return dojo.declare("xfiles.views.FileGridViewDND",null,{onDrop:function(src,dstItem,dstView,copy){var delegate=this.delegate;var dst=dstItem;if(!dst&&dstView&&
dstView.delegate&&dstView.delegate.getCurrentParent)dst=dstView.delegate.getCurrentParent();if(dst)if(copy)delegate.copyItem(null,src,dst,true);else delegate.moveItem(null,src,dst,true);else console.error("have no drop target !")}})})},"dijit/popup":function(){define("dijit/popup",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/keys","dojo/_base/lang","dojo/on","./place","./BackgroundIframe",
"./Viewport","./main"],function(array,aspect,declare,dom,domAttr,domConstruct,domGeometry,domStyle,has,keys,lang,on,place,BackgroundIframe,Viewport,dijit){function destroyWrapper(){if(this._popupWrapper){domConstruct.destroy(this._popupWrapper);delete this._popupWrapper}}var PopupManager=declare(null,{_stack:[],_beginZIndex:1E3,_idGen:1,_repositionAll:function(){if(this._firstAroundNode){var oldPos=this._firstAroundPosition,newPos=domGeometry.position(this._firstAroundNode,true),dx=newPos.x-oldPos.x,
dy=newPos.y-oldPos.y;if(dx||dy){this._firstAroundPosition=newPos;for(var i=0;i<this._stack.length;i++){var style=this._stack[i].wrapper.style;style.top=parseInt(style.top,10)+dy+"px";if(style.right=="auto")style.left=parseInt(style.left,10)+dx+"px";else style.right=parseInt(style.right,10)-dx+"px"}}this._aroundMoveListener=setTimeout(lang.hitch(this,"_repositionAll"),dx||dy?10:50)}},_createWrapper:function(widget){var wrapper=widget._popupWrapper,node=widget.domNode;if(!wrapper){wrapper=domConstruct.create("div",
{"class":"dijitPopup",style:{display:"none"},role:"region","aria-label":widget["aria-label"]||widget.label||widget.name||widget.id},widget.ownerDocumentBody);wrapper.appendChild(node);var s=node.style;s.display="";s.visibility="";s.position="";s.top="0px";widget._popupWrapper=wrapper;aspect.after(widget,"destroy",destroyWrapper,true)}return wrapper},moveOffScreen:function(widget){var wrapper=this._createWrapper(widget);var ltr=domGeometry.isBodyLtr(widget.ownerDocument),style={visibility:"hidden",
top:"-9999px",display:""};style[ltr?"left":"right"]="-9999px";style[ltr?"right":"left"]="auto";domStyle.set(wrapper,style);return wrapper},hide:function(widget){var wrapper=this._createWrapper(widget);domStyle.set(wrapper,{display:"none",height:"auto",overflow:"visible",border:""});var node=widget.domNode;if("_originalStyle"in node)node.style.cssText=node._originalStyle},getTopPopup:function(){var stack=this._stack;for(var pi=stack.length-1;pi>0&&stack[pi].parent===stack[pi-1].widget;pi--);return stack[pi]},
open:function(args){var stack=this._stack,widget=args.popup,node=widget.domNode,orient=args.orient||["below","below-alt","above","above-alt"],ltr=args.parent?args.parent.isLeftToRight():domGeometry.isBodyLtr(widget.ownerDocument),around=args.around,id=args.around&&args.around.id?args.around.id+"_dropdown":"popup_"+this._idGen++;while(stack.length&&(!args.parent||!dom.isDescendant(args.parent.domNode,stack[stack.length-1].widget.domNode)))this.close(stack[stack.length-1].widget);var wrapper=this.moveOffScreen(widget);
if(widget.startup&&!widget._started)widget.startup();var maxHeight,popupSize=domGeometry.position(node);if("maxHeight"in args&&args.maxHeight!=-1)maxHeight=args.maxHeight||Infinity;else{var viewport=Viewport.getEffectiveBox(this.ownerDocument),aroundPos=around?domGeometry.position(around,false):{y:args.y-(args.padding||0),h:(args.padding||0)*2};maxHeight=Math.floor(Math.max(aroundPos.y,viewport.h-(aroundPos.y+aroundPos.h)))}if(popupSize.h>maxHeight){var cs=domStyle.getComputedStyle(node),borderStyle=
cs.borderLeftWidth+" "+cs.borderLeftStyle+" "+cs.borderLeftColor;domStyle.set(wrapper,{overflowY:"scroll",height:maxHeight+"px",border:borderStyle});node._originalStyle=node.style.cssText;node.style.border="none"}domAttr.set(wrapper,{id:id,style:{zIndex:this._beginZIndex+stack.length},"class":"dijitPopup "+(widget.baseClass||widget["class"]||"").split(" ")[0]+"Popup"+" ui-menu ui-widget ui-widget-content",dijitPopupParent:args.parent?args.parent.id:""});if(stack.length==0&&around){this._firstAroundNode=
around;this._firstAroundPosition=domGeometry.position(around,true);this._aroundMoveListener=setTimeout(lang.hitch(this,"_repositionAll"),50)}if(has("config-bgIframe")&&!widget.bgIframe)widget.bgIframe=new BackgroundIframe(wrapper);var layoutFunc=widget.orient?lang.hitch(widget,"orient"):null,best=around?place.around(wrapper,around,orient,ltr,layoutFunc):place.at(wrapper,args,orient=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],args.padding,layoutFunc);wrapper.style.visibility="visible";node.style.visibility=
"visible";var handlers=[];handlers.push(on(wrapper,"keydown",lang.hitch(this,function(evt){if(evt.keyCode==keys.ESCAPE&&args.onCancel){evt.stopPropagation();evt.preventDefault();args.onCancel()}else if(evt.keyCode==keys.TAB){evt.stopPropagation();evt.preventDefault();var topPopup=this.getTopPopup();if(topPopup&&topPopup.onCancel)topPopup.onCancel()}})));if(widget.onCancel&&args.onCancel)handlers.push(widget.on("cancel",args.onCancel));handlers.push(widget.on(widget.onExecute?"execute":"change",lang.hitch(this,
function(){var topPopup=this.getTopPopup();if(topPopup&&topPopup.onExecute)topPopup.onExecute()})));stack.push({widget:widget,wrapper:wrapper,parent:args.parent,onExecute:args.onExecute,onCancel:args.onCancel,onClose:args.onClose,handlers:handlers});if(widget.onOpen)widget.onOpen(best);return best},close:function(popup){var stack=this._stack;while(popup&&array.some(stack,function(elem){return elem.widget==popup})||!popup&&stack.length){var top=stack.pop(),widget=top.widget,onClose=top.onClose;if(widget.onClose)widget.onClose();
var h;while(h=top.handlers.pop())h.remove();if(widget&&widget.domNode)this.hide(widget);if(onClose)onClose()}if(stack.length==0&&this._aroundMoveListener){clearTimeout(this._aroundMoveListener);this._firstAroundNode=this._firstAroundPosition=this._aroundMoveListener=null}}});return dijit.popup=new PopupManager})},"xfile/views/FileFindView":function(){define("xfile/views/FileFindView",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/_base/connect","dojo/dom-construct","dojo/on","dojo/_base/lang",
"dojo/dom-geometry","dojo/dom-class","xide/widgets/TemplatedWidgetBase","xide/utils/StringUtils","xide/utils/HTMLUtils","dijit/layout/ContentPane","./FileSelectDialog","xide/widgets/FlagsWidget","xide/factory"],function(array,declare,html,connect,domConstruct,on,lang,domGeometry,domClass,TemplatedWidgetBase,utils,HTMLUtils,ContentPane,FileSelectDialog,FlagsWidget,factory){return dojo.declare("xfile.views.FileFindView",[TemplatedWidgetBase],{root:null,dst:null,src:null,delegate:null,selectButton:null,
value:null,fileNameValid:false,searchInNode:null,tableNode:null,tableBodyNode:null,wDirectory:null,wFile:null,wContent:null,wFlags:null,flagsNode:null,flags:null,templateString:"\x3cdiv\x3e"+"\x3cdiv data-dojo-attach-point\x3d'root' data-dojo-type\x3d'dijit.layout.ContentPane'\x3e"+"\x3cdiv data-dojo-attach-point\x3d'searchInNode'\x3e\x3c/div\x3e"+"\x3ctable data-dojo-attach-point\x3d'tableNode' class\x3d'myboxtbl'\x3e"+"\x3ctbody data-dojo-attach-point\x3d'tableBodyNode'\x3e"+"\x3ctbody\x3e"+"\x3c/table\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'flagsNode'\x3e\x3c/div\x3e"+"\x3c/div\x3e\x3c/div\x3e",filePathValidator:function(value,constraints){var thiz=this;var result=false;var reg=new RegExp(/^[0-9a-zA-Z ...\-_/ ]+$/);if(value&&reg.test(value)){var doExistCheck=false;if(doExistCheck){result=false;thiz.promptMessage="Item already exists";thiz.message="Item already exists"}else{result=true;thiz.message="Enter new file name"}}else{thiz.promptMessage="This is not a valid path, try without special characters!";
thiz.message="This is not a path filename, try without special characters!";result=false}this.fileNameValid=result;if(this.owner&&this.owner.onValidated)this.owner.onValidated(result);return result},getValue:function(){var directory={name:this.wDirectory?this.wDirectory.wValue.get("value")||"":"",regex:this.wDirectory?this.wDirectory.wRegex.get("checked"):false,caseSensitive:this.wDirectory?this.wDirectory.wCase.get("checked"):false};var file={name:this.wFile.wValue.get("value")||"",regex:this.wFile.wRegex.get("checked"),
caseSensitive:this.wFile.wCase.get("checked")};var content={name:this.wContent.wValue.get("value"),regex:this.wContent.wRegex.get("checked"),caseSensitive:this.wContent.wCase.get("checked")};return{directory:directory,file:file,content:content,type:directory.name.length>0?"dir":"file",searchIn:this.editBox.get("value"),permissions:this.flags||0}},addSearchContainsRow:function(label,placeHolderValue){var template="\x3ctr\x3e"+"\x3ctd\x3e\x3cspan\x3e"+label+"\x3c/span\x3e\x3c/td\x3e"+"\x3ctd\x3e"+"\x3cinput data-dojo-type\x3d'dijit.form.TextBox' data-dojo-attach-point\x3d'wValue' type\x3d'text' /\x3e"+
"\x3c/td\x3e"+"\x3ctd\x3e"+"\x3cinput type\x3d'checkbox' value\x3d'0' data-dojo-attach-point\x3d'wRegex' data-dojo-type\x3d'dijit.form.CheckBox'\x3e"+"\x3c/td\x3e"+"\x3ctd\x3e\x3cspan\x3eRegex\x3c/span\x3e\x3c/td\x3e"+"\x3ctd\x3e"+"\x3cinput type\x3d'checkbox' value\x3d'0' data-dojo-attach-point\x3d'wCase' data-dojo-type\x3d'dijit.form.CheckBox'\x3e"+"\x3c/td\x3e"+"\x3ctd\x3e\x3cspan\x3eCase sensitive\x3c/span\x3e\x3c/td\x3e"+"\x3c/tr\x3e";var widget=HTMLUtils.templatify(null,template,this.tableBodyNode,
{},null);if(widget&&widget.startup)widget.startup();return widget},addFlags:function(){var thiz=this;var initialValue=0;var flags=[{value:2,label:"Writeable"},{value:4,label:"Readable"},{value:8,label:"Executable"}];this.wFlags=new FlagsWidget({value:initialValue,data:flags,lineBreak:false,title:"",flagClass:"flagItem",setValue:function(value){thiz.flags=value},getValue:function(){return thiz.flags}},this.flagsNode);this.wFlags.startup()},createWidgets:function(){var text=this.src?this.src:"/";var thiz=
this;this.selectButton=factory.createButton(this.searchInNode,"fileSelectButton","fileOperationSelectButton","","",function(){thiz.onSelect(thiz)},this);this.editBox=factory.createValidationTextBox(this.searchInNode,"","In:",text,this.filePathValidator,this.delegate,"Not a path!","I need some input");this.editBox.owner=this;this.wFile=this.addSearchContainsRow("Filename contains");this.wContent=this.addSearchContainsRow("Content contains");this.addFlags()},onSelect:function(dst){var thiz=dst;var delegate=
{onShowPanel:function(){},onOk:function(dlg){if(dlg&&dlg.filePanel){var activeItem=dlg.filePanel.getActiveItem();if(activeItem){var path=activeItem.path;if(path){thiz.editBox.set("value",path);thiz.value=path}}}}};try{var dlg=new FileSelectDialog({title:"Select Destination",delegate:delegate,owner:thiz.owner,dst:thiz.dst,src:thiz.src,ctx:thiz.ctx});domClass.add(dlg.domNode,"fileSelectDialog");dlg.show();dlg.initWithWithDestination(dst);dlg.resize()}catch(e){}setTimeout(function(){dlg.resize()},1E3)},
startup:function(){if(this.didStartup)return;this.inherited(arguments);this.createWidgets();this.didStartup=true;this.editBox.focus()},templateString2:"\x3cdiv\x3e"+"\x3cdiv data-dojo-attach-point\x3d'root' data-dojo-type\x3d'dijit.layout.ContentPane'\x3e"+"\x3ctable class\x3d'myboxtbl'\x3e"+"\x3ctr data-dojo-attach-point\x3d'searchInNode'\x3e"+"\x3c/tr\x3e"+"\x3ctr \x3e"+"\x3ctd \x3eDirname contains\x3c/td\x3e"+"\x3ctd style\x3d''\x3e\x3cinput class\x3d'inputz' style\x3d'width:100%;' type\x3d'text' name\x3d'sdname' value\x3d'' /\x3e\x3c/td\x3e"+
"\x3ctd\x3e"+"\x3cinput type\x3d'checkbox' class\x3d'css-checkbox' name\x3d'sdnameregex' id\x3d'sdn'/\x3e\x3clabel class\x3d'css-label' for\x3d'sdn'\x3eRegex (pcre)\x3c/label\x3e"+"\x3cinput type\x3d'checkbox' class\x3d'css-checkbox' name\x3d'sdnameicase' id\x3d'sdi' /\x3e\x3clabel class\x3d'css-label' for\x3d'sdi'\x3eCase Insensitive\x3c/label\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr\x3e"+"\x3ctd\x3eFilename contains\x3c/td\x3e"+"\x3ctd style\x3d''\x3e\x3cinput class\x3d'inputz' style\x3d'width:100%;' type\x3d'text' name\x3d'sfname' value\x3d'' /\x3e\x3c/td\x3e"+
"\x3ctd\x3e"+"\x3cinput type\x3d'checkbox' class\x3d'css-checkbox' name\x3d'sfnameregex'  id\x3d'sfn'/\x3e\x3clabel class\x3d'css-label' for\x3d'sfn'\x3eRegex (pcre)\x3c/label\x3e"+"\x3cinput type\x3d'checkbox' class\x3d'css-checkbox' name\x3d'sfnameicase'  id\x3d'sfi' /\x3e\x3clabel class\x3d'css-label' for\x3d'sfi'\x3eCase Insensitive\x3c/label\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr\x3e"+"\x3ctd\x3eFile contains\x3c/td\x3e"+"\x3ctd style\x3d''\x3e\x3cinput class\x3d'inputz' style\x3d'width:100%;' type\x3d'text' name\x3d'sfcontain' value\x3d'' /\x3e\x3c/td\x3e"+
"\x3ctd\x3e"+"\x3cinput type\x3d'checkbox' class\x3d'css-checkbox' name\x3d'sfcontainregex' id\x3d'sff' /\x3e\x3clabel class\x3d'css-label' for\x3d'sff'\x3eRegex (pcre)\x3c/label\x3e"+"\x3cinput type\x3d'checkbox' class\x3d'css-checkbox' name\x3d'sfcontainicase' id\x3d'sffi'/\x3e\x3clabel class\x3d'css-label' for\x3d'sffi'\x3eCase Insensitive\x3c/label\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr\x3e"+"\x3ctd\x3ePermissions\x3c/td\x3e"+"\x3ctd colspan\x3d'2'\x3e"+"\x3cinput type\x3d'checkbox' class\x3d'css-checkbox' name\x3d'swritable' id\x3d'sw' /\x3e\x3clabel class\x3d'css-label' for\x3d'sw'\x3eWritable\x3c/label\x3e"+
"\x3cinput type\x3d'checkbox' class\x3d'css-checkbox' name\x3d'sreadable' id\x3d'sr' /\x3e\x3clabel class\x3d'css-label' for\x3d'sr'\x3eReadable\x3c/label\x3e"+".$s_sexecb."+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr\x3e\x3ctd\x3e"+"\x3cinput type\x3d'submit' name\x3d'sgo' class\x3d'inputzbut' value\x3d'Search !' style\x3d'width:120px;height:30px;margin:0;' /\x3e"+"\x3c/td\x3e"+"\x3ctd\x3e"+"\x3cselect name\x3d'type' id\x3d'type' class\x3d'inputzbut' style\x3d'width:120px;height:30px;margin:0;padding:4px;'\x3e"+
"\x3coption value\x3d'sfile'\x3eSearch file\x3c/option\x3e"+"\x3coption value\x3d'sdir'\x3eSearch dir\x3c/option\x3e"+"\x3c/select\x3e"+"\x3c/td\x3e"+"\x3ctd\x3e\x3c/td\x3e\x3c/tr\x3e"+"\x3c/table\x3e"+"\x3c/div\x3e\x3c/div\x3e"})})},"dijit/layout/_TabContainerBase":function(){require({cache:{"url:dijit/layout/templates/TabContainer.html":'\x3cdiv class\x3d"dijitTabContainer"\x3e\n\t\x3cdiv class\x3d"dijitTabListWrapper" data-dojo-attach-point\x3d"tablistNode"\x3e\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"tablistSpacer" class\x3d"dijitTabSpacer ${baseClass}-spacer"\x3e\x3c/div\x3e\n\t\x3cdiv class\x3d"dijitTabPaneWrapper ${baseClass}-container" data-dojo-attach-point\x3d"containerNode"\x3e\x3c/div\x3e\n\x3c/div\x3e\n'}});
define("dijit/layout/_TabContainerBase",["dojo/text!./templates/TabContainer.html","./StackContainer","./utils","../_TemplatedMixin","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style"],function(template,StackContainer,layoutUtils,_TemplatedMixin,declare,domClass,domGeometry,domStyle){return declare("dijit.layout._TabContainerBase",[StackContainer,_TemplatedMixin],{tabPosition:"top",baseClass:"dijitTabContainer",tabStrip:false,nested:false,templateString:template,postMixInProperties:function(){this.baseClass+=
this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"");this.srcNodeRef&&domStyle.set(this.srcNodeRef,"visibility","hidden");this.inherited(arguments)},buildRendering:function(){this.inherited(arguments);this.tablist=this._makeController(this.tablistNode);if(!this.doLayout)domClass.add(this.domNode,"dijitTabContainerNoLayout");if(this.nested){domClass.add(this.domNode,"dijitTabContainerNested");domClass.add(this.tablist.containerNode,"dijitTabContainerTabListNested");
domClass.add(this.tablistSpacer,"dijitTabContainerSpacerNested");domClass.add(this.containerNode,"dijitTabPaneWrapperNested")}else domClass.add(this.domNode,"tabStrip-"+(this.tabStrip?"enabled":"disabled"))},_setupChild:function(tab){domClass.add(tab.domNode,"dijitTabPane");this.inherited(arguments)},startup:function(){if(this._started)return;this.tablist.startup();this.inherited(arguments)},layout:function(){if(!this._contentBox||typeof this._contentBox.l=="undefined")return;var sc=this.selectedChildWidget;
if(this.doLayout){var titleAlign=this.tabPosition.replace(/-h/,"");this.tablist.layoutAlign=titleAlign;var children=[this.tablist,{domNode:this.tablistSpacer,layoutAlign:titleAlign},{domNode:this.containerNode,layoutAlign:"client"}];layoutUtils.layoutChildren(this.domNode,this._contentBox,children);this._containerContentBox=layoutUtils.marginBox2contentBox(this.containerNode,children[2]);if(sc&&sc.resize)sc.resize(this._containerContentBox)}else{if(this.tablist.resize){var s=this.tablist.domNode.style;
s.width="0";var width=domGeometry.getContentBox(this.domNode).w;s.width="";this.tablist.resize({w:width})}if(sc&&sc.resize)sc.resize()}},destroy:function(preserveDom){if(this.tablist)this.tablist.destroy(preserveDom);this.inherited(arguments)}})})},"dijit/Dialog":function(){require({cache:{"url:dijit/templates/Dialog.html":'\x3cdiv class\x3d"dijitDialog" role\x3d"dialog" aria-labelledby\x3d"${id}_title"\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"titleBar" class\x3d"dijitDialogTitleBar"\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"titleNode" class\x3d"dijitDialogTitle" id\x3d"${id}_title"\n\t\t\t\trole\x3d"heading" level\x3d"1"\x3e\x3c/span\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"closeButtonNode" class\x3d"dijitDialogCloseIcon" data-dojo-attach-event\x3d"ondijitclick: onCancel" title\x3d"${buttonCancel}" role\x3d"button" tabIndex\x3d"-1"\x3e\n\t\t\t\x3cspan data-dojo-attach-point\x3d"closeText" class\x3d"closeText" title\x3d"${buttonCancel}"\x3ex\x3c/span\x3e\n\t\t\x3c/span\x3e\n\t\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"containerNode" class\x3d"dijitDialogPaneContent"\x3e\x3c/div\x3e\n\x3c/div\x3e\n'}});
define("dijit/Dialog",["require","dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/Deferred","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/fx","dojo/i18n","dojo/keys","dojo/_base/lang","dojo/on","dojo/ready","dojo/sniff","dojo/window","dojo/dnd/Moveable","dojo/dnd/TimedMoveable","./focus","./_base/manager","./_Widget","./_TemplatedMixin","./_CssStateMixin","./form/_FormMixin","./_DialogMixin","./DialogUnderlay","./layout/ContentPane","dojo/text!./templates/Dialog.html",
"dojo/i18n!./nls/common"],function(require,array,aspect,declare,Deferred,dom,domClass,domGeometry,domStyle,fx,i18n,keys,lang,on,ready,has,winUtils,Moveable,TimedMoveable,focus,manager,_Widget,_TemplatedMixin,_CssStateMixin,_FormMixin,_DialogMixin,DialogUnderlay,ContentPane,template){var _DialogBase=declare("dijit._DialogBase"+(0?"_NoBidi":""),[_TemplatedMixin,_FormMixin,_DialogMixin,_CssStateMixin],{templateString:template,baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},
_setTitleAttr:{node:"titleNode",type:"innerHTML"},open:false,duration:manager.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,_setDraggableAttr:function(val){this._set("draggable",val)},maxRatio:0.9,closable:true,_setClosableAttr:function(val){this.closeButtonNode.style.display=val?"":"none";this._set("closable",val)},postMixInProperties:function(){var _nlsResources=i18n.getLocalization("dijit","common");lang.mixin(this,_nlsResources);
this.inherited(arguments)},postCreate:function(){domStyle.set(this.domNode,{display:"none",position:"absolute"});this.ownerDocumentBody.appendChild(this.domNode);this.inherited(arguments);aspect.after(this,"onExecute",lang.hitch(this,"hide"),true);aspect.after(this,"onCancel",lang.hitch(this,"hide"),true);this._modalconnects=[]},onLoad:function(){this._position();if(this.autofocus&&DialogLevelManager.isTop(this)){this._getFocusItems(this.domNode);focus.focus(this._firstFocusItem)}this.inherited(arguments)},
focus:function(){this._getFocusItems(this.domNode);focus.focus(this._firstFocusItem)},_endDrag:function(){var nodePosition=domGeometry.position(this.domNode),viewport=winUtils.getBox(this.ownerDocument);nodePosition.y=Math.min(Math.max(nodePosition.y,0),viewport.h-nodePosition.h);nodePosition.x=Math.min(Math.max(nodePosition.x,0),viewport.w-nodePosition.w);this._relativePosition=nodePosition;this._position()},_setup:function(){var node=this.domNode;if(this.titleBar&&this.draggable){this._moveable=
new (has("ie")==6?TimedMoveable:Moveable)(node,{handle:this.titleBar});aspect.after(this._moveable,"onMoveStop",lang.hitch(this,"_endDrag"),true)}else domClass.add(node,"dijitDialogFixed");this.underlayAttrs={dialogId:this.id,"class":array.map(this["class"].split(/\s/),function(s){return s+"_underlay"}).join(" "),_onKeyDown:lang.hitch(this,"_onKey"),ownerDocument:this.ownerDocument}},_size:function(){this._checkIfSingleChild();if(this._singleChild){if(typeof this._singleChildOriginalStyle!="undefined"){this._singleChild.domNode.style.cssText=
this._singleChildOriginalStyle;delete this._singleChildOriginalStyle}}else domStyle.set(this.containerNode,{width:"auto",height:"auto"});var bb=domGeometry.position(this.domNode);var viewport=winUtils.getBox(this.ownerDocument);viewport.w*=this.maxRatio;viewport.h*=this.maxRatio;if(bb.w>=viewport.w||bb.h>=viewport.h){var containerSize=domGeometry.position(this.containerNode),w=Math.min(bb.w,viewport.w)-(bb.w-containerSize.w),h=Math.min(bb.h,viewport.h)-(bb.h-containerSize.h);if(this._singleChild&&
this._singleChild.resize){if(typeof this._singleChildOriginalStyle=="undefined")this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;this._singleChild.resize({w:w,h:h})}else domStyle.set(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"})}else if(this._singleChild&&this._singleChild.resize)this._singleChild.resize()},_position:function(){if(!domClass.contains(this.ownerDocumentBody,"dojoMove")){var node=this.domNode,viewport=winUtils.getBox(this.ownerDocument),
p=this._relativePosition,bb=p?null:domGeometry.position(node),l=Math.floor(viewport.l+(p?p.x:(viewport.w-bb.w)/2)),t=Math.floor(viewport.t+(p?p.y:(viewport.h-bb.h)/2));domStyle.set(node,{left:l+"px",top:t+"px"})}},_onKey:function(evt){if(evt.keyCode==keys.TAB){this._getFocusItems(this.domNode);var node=evt.target;if(this._firstFocusItem==this._lastFocusItem){evt.stopPropagation();evt.preventDefault()}else if(node==this._firstFocusItem&&evt.shiftKey){focus.focus(this._lastFocusItem);evt.stopPropagation();
evt.preventDefault()}else if(node==this._lastFocusItem&&!evt.shiftKey){focus.focus(this._firstFocusItem);evt.stopPropagation();evt.preventDefault()}}else if(this.closable&&evt.keyCode==keys.ESCAPE){this.onCancel();evt.stopPropagation();evt.preventDefault()}},show:function(){if(this.open)return;if(!this._started)this.startup();if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true}if(this._fadeOutDeferred){this._fadeOutDeferred.cancel();DialogLevelManager.hide(this)}var win=winUtils.get(this.ownerDocument);
this._modalconnects.push(on(win,"scroll",lang.hitch(this,"resize")));this._modalconnects.push(on(this.domNode,"keydown",lang.hitch(this,"_onKey")));domStyle.set(this.domNode,{opacity:0,display:""});this._set("open",true);this._onShow();this._size();this._position();var fadeIn;this._fadeInDeferred=new Deferred(lang.hitch(this,function(){fadeIn.stop();delete this._fadeInDeferred}));var promise=this._fadeInDeferred.promise;fadeIn=fx.fadeIn({node:this.domNode,duration:this.duration,beforeBegin:lang.hitch(this,
function(){DialogLevelManager.show(this,this.underlayAttrs)}),onEnd:lang.hitch(this,function(){if(this.autofocus&&DialogLevelManager.isTop(this)){this._getFocusItems(this.domNode);focus.focus(this._firstFocusItem)}this._fadeInDeferred.resolve(true);delete this._fadeInDeferred})}).play();return promise},hide:function(){if(!this._alreadyInitialized||!this.open)return;if(this._fadeInDeferred)this._fadeInDeferred.cancel();var fadeOut;this._fadeOutDeferred=new Deferred(lang.hitch(this,function(){fadeOut.stop();
delete this._fadeOutDeferred}));this._fadeOutDeferred.then(lang.hitch(this,"onHide"));var promise=this._fadeOutDeferred.promise;fadeOut=fx.fadeOut({node:this.domNode,duration:this.duration,onEnd:lang.hitch(this,function(){this.domNode.style.display="none";DialogLevelManager.hide(this);this._fadeOutDeferred.resolve(true);delete this._fadeOutDeferred})}).play();if(this._scrollConnected)this._scrollConnected=false;var h;while(h=this._modalconnects.pop())h.remove();if(this._relativePosition)delete this._relativePosition;
this._set("open",false);return promise},resize:function(){if(this.domNode.style.display!="none"){this._size();if(!has("touch"))this._position()}},destroy:function(){if(this._fadeInDeferred)this._fadeInDeferred.cancel();if(this._fadeOutDeferred)this._fadeOutDeferred.cancel();if(this._moveable)this._moveable.destroy();var h;while(h=this._modalconnects.pop())h.remove();DialogLevelManager.hide(this);this.inherited(arguments)}});if(0)_DialogBase=declare("dijit._DialogBase",_DialogBase,{_setTitleAttr:function(title){this._set("title",
title);this.titleNode.innerHTML=title;this.applyTextDir(this.titleNode)},_setTextDirAttr:function(textDir){if(this._created&&this.textDir!=textDir){this._set("textDir",textDir);this.set("title",this.title)}}});var Dialog=declare("dijit.Dialog",[ContentPane,_DialogBase],{});Dialog._DialogBase=_DialogBase;var DialogLevelManager=Dialog._DialogLevelManager={_beginZIndex:950,show:function(dialog,underlayAttrs){ds[ds.length-1].focus=focus.curNode;var zIndex=ds[ds.length-1].dialog?ds[ds.length-1].zIndex+
2:Dialog._DialogLevelManager._beginZIndex;domStyle.set(dialog.domNode,"zIndex",zIndex);DialogUnderlay.show(underlayAttrs,zIndex-1);ds.push({dialog:dialog,underlayAttrs:underlayAttrs,zIndex:zIndex})},hide:function(dialog){if(ds[ds.length-1].dialog==dialog){ds.pop();var pd=ds[ds.length-1];if(ds.length==1)DialogUnderlay.hide();else DialogUnderlay.show(pd.underlayAttrs,pd.zIndex-1);if(dialog.refocus){var focus=pd.focus;if(pd.dialog&&(!focus||!dom.isDescendant(focus,pd.dialog.domNode))){pd.dialog._getFocusItems(pd.dialog.domNode);
focus=pd.dialog._firstFocusItem}if(focus)try{focus.focus()}catch(e){}}}else{var idx=array.indexOf(array.map(ds,function(elem){return elem.dialog}),dialog);if(idx!=-1)ds.splice(idx,1)}},isTop:function(dialog){return ds[ds.length-1].dialog==dialog}};var ds=Dialog._dialogStack=[{dialog:null,focus:null,underlayAttrs:null}];focus.watch("curNode",function(attr,oldNode,node){var topDialog=ds[ds.length-1].dialog;if(node&&topDialog){do if(node==topDialog.domNode||domClass.contains(node,"dijitPopup"))return;
while(node=node.parentNode);topDialog.focus()}});if(has("dijit-legacy-requires"))ready(0,function(){var requires=["dijit/TooltipDialog"];require(requires)});return Dialog})},"xfile/factory/model":function(){define("xfile/factory/model",["xide/types","xfile/factory","dojo/_base/lang"],function(types,factory,lang){factory.createStore=function(url,basePath,cache,options,config){var store=new types.config.FILES_STORE_PROTO({url:url,serviceUrl:url||"./index.php?view\x3drpc",serviceClass:types.config.FILES_STORE_SERVICE_CLASS,
singleton:false,cache:cache||false,options:options||[],basePath:basePath||"./",config:config});store.config=config;store.initStore();return store};factory.createModel=function(store,rootLabel,iconAttr,queryOptions){var model=new types.config.FILES_MODEL_PROTO({store:store,rootLabel:rootLabel||"My Files",iconAttr:iconAttr||"icon",checkedRoot:true,query:{directory:true},checkedStrict:false,queryOptions:queryOptions||{ignoreCase:false,sort:[{attribute:"directory",descending:true,ignoreCase:false},{attribute:"name",
descending:false,ignoreCase:false}]},labelAttr:"name"});return model};return factory})},"url:dijit/form/templates/ComboButton.html":'\x3ctable class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tcellspacing\x3d\'0\' cellpadding\x3d\'0\' role\x3d"presentation"\n\t\x3e\x3ctbody role\x3d"presentation"\x3e\x3ctr role\x3d"presentation"\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitStretch dijitButtonNode" data-dojo-attach-point\x3d"buttonNode" data-dojo-attach-event\x3d"ondijitclick:__onClick,onkeydown:_onButtonKeyDown"\n\t\t\x3e\x3cdiv id\x3d"${id}_button" class\x3d"dijitReset dijitButtonContents"\n\t\t\tdata-dojo-attach-point\x3d"titleNode"\n\t\t\trole\x3d"button" aria-labelledby\x3d"${id}_label"\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitInline dijitIcon" data-dojo-attach-point\x3d"iconNode" role\x3d"presentation"\x3e\x3c/div\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitInline dijitButtonText" id\x3d"${id}_label" data-dojo-attach-point\x3d"containerNode" role\x3d"presentation"\x3e\x3c/div\n\t\t\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd id\x3d"${id}_arrow" class\x3d\'dijitReset dijitRight dijitButtonNode dijitArrowButton\'\n\t\t\tdata-dojo-attach-point\x3d"_popupStateNode,focusNode,_buttonNode"\n\t\t\tdata-dojo-attach-event\x3d"onkeydown:_onArrowKeyDown"\n\t\t\ttitle\x3d"${optionsTitle}"\n\t\t\trole\x3d"button" aria-haspopup\x3d"true"\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitArrowButtonInner" role\x3d"presentation"\x3e\x3c/div\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitArrowButtonChar" role\x3d"presentation"\x3e\x26#9660;\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd style\x3d"display:none !important;"\n\t\t\t\x3e\x3cinput ${!nameAttrSetting} type\x3d"${type}" value\x3d"${value}" data-dojo-attach-point\x3d"valueNode" role\x3d"presentation"\n\t\t\t\tdata-dojo-attach-event\x3d"onclick:_onClick"\n\t\t/\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/tbody\n\x3e\x3c/table\x3e\n',
"dojo/aspect":function(){define("dojo/aspect",[],function(){var undefined,nextId=0;function advise(dispatcher,type,advice,receiveArguments){var previous=dispatcher[type];var around=type=="around";var signal;if(around){var advised=advice(function(){return previous.advice(this,arguments)});signal={remove:function(){if(advised)advised=dispatcher=advice=null},advice:function(target,args){return advised?advised.apply(target,args):previous.advice(target,args)}}}else signal={remove:function(){if(signal.advice){var previous=
signal.previous;var next=signal.next;if(!next&&!previous)delete dispatcher[type];else{if(previous)previous.next=next;else dispatcher[type]=next;if(next)next.previous=previous}dispatcher=advice=signal.advice=null}},id:nextId++,advice:advice,receiveArguments:receiveArguments};if(previous&&!around)if(type=="after"){while(previous.next&&(previous=previous.next));previous.next=signal;signal.previous=previous}else{if(type=="before"){dispatcher[type]=signal;signal.next=previous;previous.previous=signal}}else dispatcher[type]=
signal;return signal}function aspect(type){return function(target,methodName,advice,receiveArguments){var existing=target[methodName],dispatcher;if(!existing||existing.target!=target){target[methodName]=dispatcher=function(){var executionId=nextId;var args=arguments;var before=dispatcher.before;while(before){args=before.advice.apply(this,args)||args;before=before.next}if(dispatcher.around)var results=dispatcher.around.advice(this,args);var after=dispatcher.after;while(after&&after.id<executionId){if(after.receiveArguments){var newResults=
after.advice.apply(this,args);results=newResults===undefined?results:newResults}else results=after.advice.call(this,results,args);after=after.next}return results};if(existing)dispatcher.around={advice:function(target,args){return existing.apply(target,args)}};dispatcher.target=target}var results=advise(dispatcher||existing,type,advice,receiveArguments);advice=null;return results}}var after=aspect("after");var before=aspect("before");var around=aspect("around");return{before:before,around:around,after:after}})},
"dijit/TooltipDialog":function(){require({cache:{"url:dijit/templates/TooltipDialog.html":'\x3cdiv role\x3d"alertdialog" tabIndex\x3d"-1"\x3e\n\t\x3cdiv class\x3d"dijitTooltipContainer" role\x3d"presentation"\x3e\n\t\t\x3cdiv class\x3d"dijitTooltipContents dijitTooltipFocusNode" data-dojo-attach-point\x3d"containerNode"\x3e\x3c/div\x3e\n\t\x3c/div\x3e\n\t\x3cdiv class\x3d"dijitTooltipConnector" role\x3d"presentation" data-dojo-attach-point\x3d"connectorNode"\x3e\x3c/div\x3e\n\x3c/div\x3e\n'}});define("dijit/TooltipDialog",
["dojo/_base/declare","dojo/dom-class","dojo/has","dojo/keys","dojo/_base/lang","dojo/on","./focus","./layout/ContentPane","./_DialogMixin","./form/_FormMixin","./_TemplatedMixin","dojo/text!./templates/TooltipDialog.html","./main"],function(declare,domClass,has,keys,lang,on,focus,ContentPane,_DialogMixin,_FormMixin,_TemplatedMixin,template,dijit){var TooltipDialog=declare("dijit.TooltipDialog",[ContentPane,_TemplatedMixin,_FormMixin,_DialogMixin],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",
_firstFocusItem:null,_lastFocusItem:null,templateString:template,_setTitleAttr:"containerNode",postCreate:function(){this.inherited(arguments);this.own(on(this.containerNode,"keydown",lang.hitch(this,"_onKey")))},orient:function(node,aroundCorner,tooltipCorner){var newC={"MR-ML":"dijitTooltipRight","ML-MR":"dijitTooltipLeft","TM-BM":"dijitTooltipAbove","BM-TM":"dijitTooltipBelow","BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight",
"TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft","BR-TL":"dijitTooltipBelow dijitTooltipABLeft","BL-TR":"dijitTooltipBelow dijitTooltipABRight","TL-BR":"dijitTooltipAbove dijitTooltipABRight","TR-BL":"dijitTooltipAbove dijitTooltipABLeft"}[aroundCorner+"-"+tooltipCorner];domClass.replace(this.domNode,newC,this._currentOrientClass||"");this._currentOrientClass=newC},focus:function(){this._getFocusItems(this.containerNode);focus.focus(this._firstFocusItem)},
onOpen:function(pos){this.orient(this.domNode,pos.aroundCorner,pos.corner);var aroundNodeCoords=pos.aroundNodePos;if(pos.corner.charAt(0)=="M"&&pos.aroundCorner.charAt(0)=="M"){this.connectorNode.style.top=aroundNodeCoords.y+(aroundNodeCoords.h-this.connectorNode.offsetHeight>>1)-pos.y+"px";this.connectorNode.style.left=""}else if(pos.corner.charAt(1)=="M"&&pos.aroundCorner.charAt(1)=="M")this.connectorNode.style.left=aroundNodeCoords.x+(aroundNodeCoords.w-this.connectorNode.offsetWidth>>1)-pos.x+
"px";this._onShow()},onClose:function(){this.onHide()},_onKey:function(evt){if(evt.keyCode==keys.ESCAPE){this.defer("onCancel");evt.stopPropagation();evt.preventDefault()}else if(evt.keyCode==keys.TAB){var node=evt.target;this._getFocusItems(this.containerNode);if(this._firstFocusItem==this._lastFocusItem){evt.stopPropagation();evt.preventDefault()}else if(node==this._firstFocusItem&&evt.shiftKey){focus.focus(this._lastFocusItem);evt.stopPropagation();evt.preventDefault()}else if(node==this._lastFocusItem&&
!evt.shiftKey){focus.focus(this._firstFocusItem);evt.stopPropagation();evt.preventDefault()}else evt.stopPropagation()}}});if(0)TooltipDialog.extend({_setTitleAttr:function(title){this.containerNode.title=this.textDir&&this.enforceTextDirWithUcc?this.enforceTextDirWithUcc(null,title):title;this._set("title",title)},_setTextDirAttr:function(textDir){if(!this._created||this.textDir!=textDir){this._set("textDir",textDir);if(this.textDir&&this.title)this.containerNode.title=this.enforceTextDirWithUcc(null,
this.title)}}});return TooltipDialog})},"url:dijit/form/templates/HorizontalSlider.html":'\x3ctable class\x3d"dijit dijitReset dijitSlider dijitSliderH" cellspacing\x3d"0" cellpadding\x3d"0" border\x3d"0" rules\x3d"none" data-dojo-attach-event\x3d"onkeydown:_onKeyDown, onkeyup:_onKeyUp"\n\trole\x3d"presentation"\n\t\x3e\x3ctr class\x3d"dijitReset"\n\t\t\x3e\x3ctd class\x3d"dijitReset" colspan\x3d"2"\x3e\x3c/td\n\t\t\x3e\x3ctd data-dojo-attach-point\x3d"topDecoration" class\x3d"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH"\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset" colspan\x3d"2"\x3e\x3c/td\n\t\x3e\x3c/tr\n\t\x3e\x3ctr class\x3d"dijitReset"\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH"\n\t\t\t\x3e\x3cdiv class\x3d"dijitSliderDecrementIconH" style\x3d"display:none" data-dojo-attach-point\x3d"decrementButton"\x3e\x3cspan class\x3d"dijitSliderButtonInner"\x3e-\x3c/span\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset"\n\t\t\t\x3e\x3cdiv class\x3d"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper" data-dojo-attach-event\x3d"press:_onClkDecBumper"\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset"\n\t\t\t\x3e\x3cinput data-dojo-attach-point\x3d"valueNode" type\x3d"hidden" ${!nameAttrSetting}\n\t\t\t/\x3e\x3cdiv class\x3d"dijitReset dijitSliderBarContainerH" role\x3d"presentation" data-dojo-attach-point\x3d"sliderBarContainer"\n\t\t\t\t\x3e\x3cdiv role\x3d"presentation" data-dojo-attach-point\x3d"progressBar" class\x3d"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH" data-dojo-attach-event\x3d"press:_onBarClick"\n\t\t\t\t\t\x3e\x3cdiv class\x3d"dijitSliderMoveable dijitSliderMoveableH"\n\t\t\t\t\t\t\x3e\x3cdiv data-dojo-attach-point\x3d"sliderHandle,focusNode" class\x3d"dijitSliderImageHandle dijitSliderImageHandleH" data-dojo-attach-event\x3d"press:_onHandleClick" role\x3d"slider"\x3e\x3c/div\n\t\t\t\t\t\x3e\x3c/div\n\t\t\t\t\x3e\x3c/div\n\t\t\t\t\x3e\x3cdiv role\x3d"presentation" data-dojo-attach-point\x3d"remainingBar" class\x3d"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH" data-dojo-attach-event\x3d"press:_onBarClick"\x3e\x3c/div\n\t\t\t\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset"\n\t\t\t\x3e\x3cdiv class\x3d"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper" data-dojo-attach-event\x3d"press:_onClkIncBumper"\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH"\n\t\t\t\x3e\x3cdiv class\x3d"dijitSliderIncrementIconH" style\x3d"display:none" data-dojo-attach-point\x3d"incrementButton"\x3e\x3cspan class\x3d"dijitSliderButtonInner"\x3e+\x3c/span\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\x3e\x3c/tr\n\t\x3e\x3ctr class\x3d"dijitReset"\n\t\t\x3e\x3ctd class\x3d"dijitReset" colspan\x3d"2"\x3e\x3c/td\n\t\t\x3e\x3ctd data-dojo-attach-point\x3d"containerNode,bottomDecoration" class\x3d"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH"\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset" colspan\x3d"2"\x3e\x3c/td\n\t\x3e\x3c/tr\n\x3e\x3c/table\x3e\n',
"dojox/mobile/TransitionEvent":function(){define("dojox/mobile/TransitionEvent",["dojo/_base/declare","dojo/on"],function(declare,on){return declare("dojox.mobile.TransitionEvent",null,{constructor:function(target,transitionOptions,triggerEvent){this.transitionOptions=transitionOptions;this.target=target;this.triggerEvent=triggerEvent||null},dispatch:function(){var opts={bubbles:true,cancelable:true,detail:this.transitionOptions,triggerEvent:this.triggerEvent};var evt=on.emit(this.target,"startTransition",
opts)}})})},"dijit/form/_SearchMixin":function(){define("dijit/form/_SearchMixin",["dojo/_base/declare","dojo/keys","dojo/_base/lang","dojo/query","dojo/string","dojo/when","../registry"],function(declare,keys,lang,query,string,when,registry){return declare("dijit.form._SearchMixin",null,{pageSize:Infinity,store:null,fetchProperties:{},query:{},searchDelay:200,searchAttr:"name",queryExpr:"${0}*",ignoreCase:true,_patternToRegExp:function(pattern){return new RegExp("^"+pattern.replace(/(\\.)|(\*)|(\?)|\W/g,
function(str,literal,star,question){return star?".*":question?".":literal?literal:"\\"+str})+"$",this.ignoreCase?"mi":"m")},_abortQuery:function(){if(this.searchTimer)this.searchTimer=this.searchTimer.remove();if(this._queryDeferHandle)this._queryDeferHandle=this._queryDeferHandle.remove();if(this._fetchHandle){if(this._fetchHandle.abort){this._cancelingQuery=true;this._fetchHandle.abort();this._cancelingQuery=false}if(this._fetchHandle.cancel){this._cancelingQuery=true;this._fetchHandle.cancel();
this._cancelingQuery=false}this._fetchHandle=null}},_processInput:function(evt){if(this.disabled||this.readOnly)return;var key=evt.charOrCode;if("type"in evt&&evt.type.substring(0,3)=="key"&&(evt.altKey||(evt.ctrlKey||evt.metaKey)&&key!="x"&&key!="v"||key==keys.SHIFT))return;var doSearch=false;this._prev_key_backspace=false;switch(key){case keys.DELETE:case keys.BACKSPACE:this._prev_key_backspace=true;this._maskValidSubsetError=true;doSearch=true;break;default:doSearch=typeof key=="string"||key==
229}if(doSearch)if(!this.store)this.onSearch();else this.searchTimer=this.defer("_startSearchFromInput",1)},onSearch:function(){},_startSearchFromInput:function(){this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1"))},_startSearch:function(text){this._abortQuery();var _this=this,query=lang.clone(this.query),options={start:0,count:this.pageSize,queryOptions:{ignoreCase:this.ignoreCase,deep:true}},qs=string.substitute(this.queryExpr,[text]),q,startQuery=function(){var resPromise=_this._fetchHandle=
_this.store.query(query,options);if(_this.disabled||_this.readOnly||q!==_this._lastQuery)return;when(resPromise,function(res){_this._fetchHandle=null;if(!_this.disabled&&!_this.readOnly&&q===_this._lastQuery)when(resPromise.total,function(total){res.total=total;var pageSize=_this.pageSize;if(isNaN(pageSize)||pageSize>res.total)pageSize=res.total;res.nextPage=function(direction){options.direction=direction=direction!==false;options.count=pageSize;if(direction){options.start+=res.length;if(options.start>=
res.total)options.count=0}else{options.start-=pageSize;if(options.start<0){options.count=Math.max(pageSize+options.start,0);options.start=0}}if(options.count<=0){res.length=0;_this.onSearch(res,query,options)}else startQuery()};_this.onSearch(res,query,options)})},function(err){_this._fetchHandle=null;if(!_this._cancelingQuery)console.error(_this.declaredClass+" "+err.toString())})};lang.mixin(options,this.fetchProperties);if(this.store._oldAPI)q=qs;else{q=this._patternToRegExp(qs);q.toString=function(){return qs}}this._lastQuery=
query[this.searchAttr]=q;this._queryDeferHandle=this.defer(startQuery,this.searchDelay)},constructor:function(){this.query={};this.fetchProperties={}},postMixInProperties:function(){if(!this.store){var list=this.list;if(list)this.store=registry.byId(list)}this.inherited(arguments)}})})},"dijit/place":function(){define("dijit/place",["dojo/_base/array","dojo/dom-geometry","dojo/dom-style","dojo/_base/kernel","dojo/_base/window","./Viewport","./main"],function(array,domGeometry,domStyle,kernel,win,
Viewport,dijit){function _place(node,choices,layoutNode,aroundNodeCoords){var view=Viewport.getEffectiveBox(node.ownerDocument);if(!node.parentNode||String(node.parentNode.tagName).toLowerCase()!="body")win.body(node.ownerDocument).appendChild(node);var best=null;array.some(choices,function(choice){var corner=choice.corner;var pos=choice.pos;var overflow=0;var spaceAvailable={w:{"L":view.l+view.w-pos.x,"R":pos.x-view.l,"M":view.w}[corner.charAt(1)],h:{"T":view.t+view.h-pos.y,"B":pos.y-view.t,"M":view.h}[corner.charAt(0)]};
var s=node.style;s.left=s.right="auto";if(layoutNode){var res=layoutNode(node,choice.aroundCorner,corner,spaceAvailable,aroundNodeCoords);overflow=typeof res=="undefined"?0:res}var style=node.style;var oldDisplay=style.display;var oldVis=style.visibility;if(style.display=="none"){style.visibility="hidden";style.display=""}var bb=domGeometry.position(node);style.display=oldDisplay;style.visibility=oldVis;var startXpos={"L":pos.x,"R":pos.x-bb.w,"M":Math.max(view.l,Math.min(view.l+view.w,pos.x+(bb.w>>
1))-bb.w)}[corner.charAt(1)],startYpos={"T":pos.y,"B":pos.y-bb.h,"M":Math.max(view.t,Math.min(view.t+view.h,pos.y+(bb.h>>1))-bb.h)}[corner.charAt(0)],startX=Math.max(view.l,startXpos),startY=Math.max(view.t,startYpos),endX=Math.min(view.l+view.w,startXpos+bb.w),endY=Math.min(view.t+view.h,startYpos+bb.h),width=endX-startX,height=endY-startY;overflow+=bb.w-width+(bb.h-height);if(best==null||overflow<best.overflow)best={corner:corner,aroundCorner:choice.aroundCorner,x:startX,y:startY,w:width,h:height,
overflow:overflow,spaceAvailable:spaceAvailable};return!overflow});if(best.overflow&&layoutNode)layoutNode(node,best.aroundCorner,best.corner,best.spaceAvailable,aroundNodeCoords);var l=domGeometry.isBodyLtr(node.ownerDocument),top=best.y,side=l?best.x:view.w-best.x-best.w;if(/relative|absolute/.test(domStyle.get(win.body(node.ownerDocument),"position"))){top-=domStyle.get(win.body(node.ownerDocument),"marginTop");side-=(l?1:-1)*domStyle.get(win.body(node.ownerDocument),l?"marginLeft":"marginRight")}var s=
node.style;s.top=top+"px";s[l?"left":"right"]=side+"px";s[l?"right":"left"]="auto";return best}var reverse={"TL":"BR","TR":"BL","BL":"TR","BR":"TL"};var place={at:function(node,pos,corners,padding,layoutNode){var choices=array.map(corners,function(corner){var c={corner:corner,aroundCorner:reverse[corner],pos:{x:pos.x,y:pos.y}};if(padding){c.pos.x+=corner.charAt(1)=="L"?padding.x:-padding.x;c.pos.y+=corner.charAt(0)=="T"?padding.y:-padding.y}return c});return _place(node,choices,layoutNode)},around:function(node,
anchor,positions,leftToRight,layoutNode){var aroundNodePos;if(typeof anchor=="string"||"offsetWidth"in anchor){aroundNodePos=domGeometry.position(anchor,true);var anchorBorder=domGeometry.getBorderExtents(anchor),anchorChildBorder=anchor.firstChild?domGeometry.getBorderExtents(anchor.firstChild):{t:0,l:0,b:0,r:0},nodeBorder=domGeometry.getBorderExtents(node),nodeChildBorder=node.firstChild?domGeometry.getBorderExtents(node.firstChild):{t:0,l:0,b:0,r:0};aroundNodePos.t+=Math.min(anchorBorder.t+anchorChildBorder.t,
nodeBorder.t+nodeChildBorder.t);aroundNodePos.l+=Math.min(anchorBorder.l+anchorChildBorder.l,nodeBorder.l+nodeChildBorder.l);aroundNodePos.h-=Math.min(anchorBorder.t+anchorChildBorder.t,nodeBorder.t+nodeChildBorder.t)+Math.min(anchorBorder.b+anchorChildBorder.b,nodeBorder.b+nodeChildBorder.b);aroundNodePos.w-=Math.min(anchorBorder.l+anchorChildBorder.l,nodeBorder.l+nodeChildBorder.l)+Math.min(anchorBorder.r+anchorChildBorder.r,nodeBorder.r+nodeChildBorder.r)}else aroundNodePos=anchor;if(anchor.parentNode){var sawPosAbsolute=
domStyle.getComputedStyle(anchor).position=="absolute";var parent=anchor.parentNode;while(parent&&parent.nodeType==1&&parent.nodeName!="BODY"){var parentPos=domGeometry.position(parent,true),pcs=domStyle.getComputedStyle(parent);if(/relative|absolute/.test(pcs.position))sawPosAbsolute=false;if(!sawPosAbsolute&&/hidden|auto|scroll/.test(pcs.overflow)){var bottomYCoord=Math.min(aroundNodePos.y+aroundNodePos.h,parentPos.y+parentPos.h);var rightXCoord=Math.min(aroundNodePos.x+aroundNodePos.w,parentPos.x+
parentPos.w);aroundNodePos.x=Math.max(aroundNodePos.x,parentPos.x);aroundNodePos.y=Math.max(aroundNodePos.y,parentPos.y);aroundNodePos.h=bottomYCoord-aroundNodePos.y;aroundNodePos.w=rightXCoord-aroundNodePos.x}if(pcs.position=="absolute")sawPosAbsolute=true;parent=parent.parentNode}}var x=aroundNodePos.x,y=aroundNodePos.y,width="w"in aroundNodePos?aroundNodePos.w:aroundNodePos.w=aroundNodePos.width,height="h"in aroundNodePos?aroundNodePos.h:(kernel.deprecated("place.around: dijit/place.__Rectangle: { x:"+
x+", y:"+y+", height:"+aroundNodePos.height+", width:"+width+" } has been deprecated.  Please use { x:"+x+", y:"+y+", h:"+aroundNodePos.height+", w:"+width+" }","","2.0"),aroundNodePos.h=aroundNodePos.height);var choices=[];function push(aroundCorner,corner){choices.push({aroundCorner:aroundCorner,corner:corner,pos:{x:{"L":x,"R":x+width,"M":x+(width>>1)}[aroundCorner.charAt(1)],y:{"T":y,"B":y+height,"M":y+(height>>1)}[aroundCorner.charAt(0)]}})}array.forEach(positions,function(pos){var ltr=leftToRight;
switch(pos){case "above-centered":push("TM","BM");break;case "below-centered":push("BM","TM");break;case "after-centered":ltr=!ltr;case "before-centered":push(ltr?"ML":"MR",ltr?"MR":"ML");break;case "after":ltr=!ltr;case "before":push(ltr?"TL":"TR",ltr?"TR":"TL");push(ltr?"BL":"BR",ltr?"BR":"BL");break;case "below-alt":ltr=!ltr;case "below":push(ltr?"BL":"BR",ltr?"TL":"TR");push(ltr?"BR":"BL",ltr?"TR":"TL");break;case "above-alt":ltr=!ltr;case "above":push(ltr?"TL":"TR",ltr?"BL":"BR");push(ltr?"TR":
"TL",ltr?"BR":"BL");break;default:push(pos.aroundCorner,pos.corner)}});var position=_place(node,choices,layoutNode,{w:width,h:height});position.aroundNodePos=aroundNodePos;return position}};return dijit.place=place})},"xide/manager/SettingsManager":function(){define(["dojo/_base/declare","./ServerActionBase","xide/utils","xide/manager/ManagerBase"],function(declare,ServerActionBase,utils,ManagerBase){return declare("xide.manager.SettingsManager",[ManagerBase,ServerActionBase],{serviceClass:"XApp_Store",
settingsStore:null,settingsDataAll:null,section:"settings",getStore:function(){return this.settingsStore},_createStore:function(data){var storeData={identifier:"id",items:data};this.settingsStore=new dojo.data.ItemFileWriteStore({data:storeData,hierarchical:false})},onSettingsReceived:function(data){this.settingsDataAll=data;if(!data){console.error("have no settings data!");this._createStore([]);return}var _a=data[""+this.section];this._createStore(_a)},replace:function(path,query,operation,newValue,
readyCB){var thiz=this;var defered=this.serviceObject[this.serviceClass].set(this.store,path||".",query,operation,newValue);var cb=function(res){if(readyCB)readyCB(res)};defered.addCallback(cb)},read:function(section,path,query,readyCB){try{this.callMethodEx(this.serviceClass,"get",[section,path,query],readyCB,false)}catch(e){}},has:function(section,path,query,data,readyCB){},update:function(section,path,query,data,decode,readyCB){try{this.callMethodEx(this.serviceClass,"update",[section||this.section,
path,query,data,decode],readyCB,false)}catch(e){}},write:function(section,path,query,data,decode,readyCB){try{var itemLocal=utils.queryStoreEx(this.settingsStore,{id:data.id},true,true);if(itemLocal)return this.update(section,path,{id:data.id},data.data,decode,readyCB);else return this.callMethodEx(this.serviceClass,"set",[section||this.section,path,query,data,decode],readyCB,false)}catch(e){}},init:function(){var thiz=this;var _cb=function(data){thiz.onSettingsReceived(data)};this.read(this.section,
".",null,_cb)}})})},"dijit/_editor/_Plugin":function(){define("dijit/_editor/_Plugin",["dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","../Destroyable","../form/Button"],function(connect,declare,lang,Destroyable,Button){var _Plugin=declare("dijit._editor._Plugin",Destroyable,{constructor:function(args){this.params=args||{};lang.mixin(this,this.params);this._attrPairNames={}},editor:null,iconClassPrefix:"dijitEditorIcon",button:null,command:"",useDefaultCommand:true,buttonClass:Button,
disabled:false,getLabel:function(key){return this.editor.commands[key]},_initButton:function(){if(this.command.length){var label=this.getLabel(this.command),editor=this.editor,className=this.iconClassPrefix+" "+this.iconClassPrefix+this.command.charAt(0).toUpperCase()+this.command.substr(1);if(!this.button){var props=lang.mixin({label:label,ownerDocument:editor.ownerDocument,dir:editor.dir,lang:editor.lang,showLabel:false,iconClass:className,dropDown:this.dropDown,tabIndex:"-1"},this.params||{});
this.button=new this.buttonClass(props)}}if(this.get("disabled")&&this.button)this.button.set("disabled",this.get("disabled"))},destroy:function(){if(this.dropDown)this.dropDown.destroyRecursive();this.inherited(arguments)},connect:function(o,f,tf){this.own(connect.connect(o,f,this,tf))},updateState:function(){var e=this.editor,c=this.command,checked,enabled;if(!e||!e.isLoaded||!c.length)return;var disabled=this.get("disabled");if(this.button)try{enabled=!disabled&&e.queryCommandEnabled(c);if(this.enabled!==
enabled){this.enabled=enabled;this.button.set("disabled",!enabled)}if(enabled)if(typeof this.button.checked=="boolean"){checked=e.queryCommandState(c);if(this.checked!==checked){this.checked=checked;this.button.set("checked",e.queryCommandState(c))}}}catch(e){0&&console.log(e)}},setEditor:function(editor){this.editor=editor;this._initButton();if(this.button&&this.useDefaultCommand)if(this.editor.queryCommandAvailable(this.command))this.own(this.button.on("click",lang.hitch(this.editor,"execCommand",
this.command,this.commandArg)));else this.button.domNode.style.display="none";this.own(this.editor.on("NormalizedDisplayChanged",lang.hitch(this,"updateState")))},setToolbar:function(toolbar){if(this.button)toolbar.addChild(this.button)},set:function(name,value){if(typeof name==="object"){for(var x in name)this.set(x,name[x]);return this}var names=this._getAttrNames(name);if(this[names.s])var result=this[names.s].apply(this,Array.prototype.slice.call(arguments,1));else this._set(name,value);return result||
this},get:function(name){var names=this._getAttrNames(name);return this[names.g]?this[names.g]():this[name]},_setDisabledAttr:function(disabled){this._set("disabled",disabled);this.updateState()},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name])return apn[name];var uc=name.charAt(0).toUpperCase()+name.substr(1);return apn[name]={s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"}},_set:function(name,value){this[name]=value}});_Plugin.registry={};return _Plugin})},"dojo/_base/window":function(){define("dojo/_base/window",
["./kernel","./lang","../sniff"],function(dojo,lang,has){var ret={global:dojo.global,doc:this["document"]||null,body:function(doc){doc=doc||dojo.doc;return doc.body||doc.getElementsByTagName("body")[0]},setContext:function(globalObject,globalDocument){dojo.global=ret.global=globalObject;dojo.doc=ret.doc=globalDocument},withGlobal:function(globalObject,callback,thisObject,cbArguments){var oldGlob=dojo.global;try{dojo.global=ret.global=globalObject;return ret.withDoc.call(null,globalObject.document,
callback,thisObject,cbArguments)}finally{dojo.global=ret.global=oldGlob}},withDoc:function(documentObject,callback,thisObject,cbArguments){var oldDoc=ret.doc,oldQ=has("quirks"),oldIE=has("ie"),isIE,mode,pwin;try{dojo.doc=ret.doc=documentObject;dojo.isQuirks=has.add("quirks",dojo.doc.compatMode=="BackCompat",true,true);if(has("ie"))if((pwin=documentObject.parentWindow)&&pwin.navigator){isIE=parseFloat(pwin.navigator.appVersion.split("MSIE ")[1])||undefined;mode=documentObject.documentMode;if(mode&&
mode!=5&&Math.floor(isIE)!=mode)isIE=mode;dojo.isIE=has.add("ie",isIE,true,true)}if(thisObject&&typeof callback=="string")callback=thisObject[callback];return callback.apply(thisObject,cbArguments||[])}finally{dojo.doc=ret.doc=oldDoc;dojo.isQuirks=has.add("quirks",oldQ,true,true);dojo.isIE=has.add("ie",oldIE,true,true)}}};1&&lang.mixin(dojo,ret);return ret})},"dojo/_base/html":function(){define("dojo/_base/html",["./kernel","../dom","../dom-style","../dom-attr","../dom-prop","../dom-class","../dom-construct",
"../dom-geometry"],function(dojo,dom,style,attr,prop,cls,ctr,geom){dojo.byId=dom.byId;dojo.isDescendant=dom.isDescendant;dojo.setSelectable=dom.setSelectable;dojo.getAttr=attr.get;dojo.setAttr=attr.set;dojo.hasAttr=attr.has;dojo.removeAttr=attr.remove;dojo.getNodeProp=attr.getNodeProp;dojo.attr=function(node,name,value){if(arguments.length==2)return attr[typeof name=="string"?"get":"set"](node,name);return attr.set(node,name,value)};dojo.hasClass=cls.contains;dojo.addClass=cls.add;dojo.removeClass=
cls.remove;dojo.toggleClass=cls.toggle;dojo.replaceClass=cls.replace;dojo._toDom=dojo.toDom=ctr.toDom;dojo.place=ctr.place;dojo.create=ctr.create;dojo.empty=function(node){ctr.empty(node)};dojo._destroyElement=dojo.destroy=function(node){ctr.destroy(node)};dojo._getPadExtents=dojo.getPadExtents=geom.getPadExtents;dojo._getBorderExtents=dojo.getBorderExtents=geom.getBorderExtents;dojo._getPadBorderExtents=dojo.getPadBorderExtents=geom.getPadBorderExtents;dojo._getMarginExtents=dojo.getMarginExtents=
geom.getMarginExtents;dojo._getMarginSize=dojo.getMarginSize=geom.getMarginSize;dojo._getMarginBox=dojo.getMarginBox=geom.getMarginBox;dojo.setMarginBox=geom.setMarginBox;dojo._getContentBox=dojo.getContentBox=geom.getContentBox;dojo.setContentSize=geom.setContentSize;dojo._isBodyLtr=dojo.isBodyLtr=geom.isBodyLtr;dojo._docScroll=dojo.docScroll=geom.docScroll;dojo._getIeDocumentElementOffset=dojo.getIeDocumentElementOffset=geom.getIeDocumentElementOffset;dojo._fixIeBiDiScrollLeft=dojo.fixIeBiDiScrollLeft=
geom.fixIeBiDiScrollLeft;dojo.position=geom.position;dojo.marginBox=function marginBox(node,box){return box?geom.setMarginBox(node,box):geom.getMarginBox(node)};dojo.contentBox=function contentBox(node,box){return box?geom.setContentSize(node,box):geom.getContentBox(node)};dojo.coords=function(node,includeScroll){dojo.deprecated("dojo.coords()","Use dojo.position() or dojo.marginBox().");node=dom.byId(node);var s=style.getComputedStyle(node),mb=geom.getMarginBox(node,s);var abs=geom.position(node,
includeScroll);mb.x=abs.x;mb.y=abs.y;return mb};dojo.getProp=prop.get;dojo.setProp=prop.set;dojo.prop=function(node,name,value){if(arguments.length==2)return prop[typeof name=="string"?"get":"set"](node,name);return prop.set(node,name,value)};dojo.getStyle=style.get;dojo.setStyle=style.set;dojo.getComputedStyle=style.getComputedStyle;dojo.__toPixelValue=dojo.toPixelValue=style.toPixelValue;dojo.style=function(node,name,value){switch(arguments.length){case 1:return style.get(node);case 2:return style[typeof name==
"string"?"get":"set"](node,name)}return style.set(node,name,value)};return dojo})},"xfile/views/MouseHandler":function(){define("xfile/views/MouseHandler",["dojo/_base/declare"],function(declare){return declare("xfiles.views.MouseHandler",null,{onMouseEvent:function(evt){},onMouseEventDouble:function(evt){this.openItem(null)}})})},"xapp/manager/DataManager":function(){define("xapp/manager/DataManager",["dojo/request/script","dojo/_base/lang","xapp/utils","xapp/types","dojox/encoding/digests/MD5",
"dojo/has"],function(script,lang,utils,types,MD5,has){return dojo.declare("xapp.manager.DataManager",null,{ctx:null,currentQueueIndex:0,queue:[],dataQueue:null,isLocked:false,dataCache:null,useMemoryCache:false,useHTML5LocalStoreage:false,deviceStorage:null,preventCaching:true,transportType:0,smallCacheThreshold:5,_patchQueueObject:function(queuedObject,url,pageData){var attach=true;if(utils.isTwitterServiceUrl(url)){attach=false;queuedObject.extern=true}if(url.indexOf("customTypeQuery")!=-1){attach=
false;queuedObject.extern=true}if(pageData&&attach){var newUrl=this.attachPageContextToUrl(url,pageData);if(newUrl)queuedObject.url=newUrl}if(attach)queuedObject.url=this.attachApplicationInfoToUrl(queuedObject.url)},loadData:function(url,pageData,cb,owner,options,dsParams){if(!url){this.onError();return null}dsParams=dsParams||{};var urlParams=utils.extractParametersFromDSUrl(url);var isCustom=false;if(owner["isCustom"]!=null&&owner["isCustom"]===true)isCustom=true;else if(urlParams!=null&&urlParams["isCustomType"]!=
null&&urlParams["isCustomType"]===true)isCustom=true;if(dsParams==null)dsParams={};if(isCustom&&owner&&urlParams)if(ctx.getConnectManager()&&ctx.getConnectManager().getTypeRegistry())if(ctx.getConnectManager().getTypeRegistry().hasUrlSchema(urlParams.dsUid,urlParams.dsType)){var cbOut=function(res){cb(owner,res)};var coptions={};if(options!=null&&options.appendUrl&&options.appendUrl.indexOf("\x26preventCache\x3dtrue")!=-1)coptions["preventCache"]=true;ctx.getConnectManager().openUrl(url,cbOut,null,
coptions);return}options=options||{};if(url&&this.preventCaching&&url.indexOf("rss")==-1&&url.indexOf("CMAC")==-1)var appendUrl=options["appendUrl"]||"";var transportType=this.transportType;if(options&&options.transportType)transportType=options.transportType;switch(transportType){case types.TransportType.REST:return this.loadJSONData(url,pageData,cb,owner,options,dsParams);case types.TransportType.REST_PROXY:return this.loadJSONData(url,pageData,cb,owner,options,dsParams);case types.TransportType.JSONP:return this.loadJSONP(url,
pageData,cb,owner,options,dsParams)}return null},getLocalStorage:function(){return win.global.localStorage||null},loadFromStorage:function(name){try{if(this.getLocalStorage())return this.getLocalStorage().getItem(name);else return""}catch(e){console.error("storage problem ");return null}},saveToStorage:function(name,val){if(this.getLocalStorage())this.getLocalStorage().setItem(name,val)},attachApplicationInfoToUrl:function(url){var newUrl=url;if(newUrl.indexOf("uuid")==-1&&this.ctx)newUrl+="\x26uuid\x3d"+
this.ctx.getSession().getUUID();if(newUrl.indexOf("appIdentifier")==-1&&this.ctx)newUrl+="\x26appIdentifier\x3d"+this.ctx.getSession().getAppId();return newUrl},attachCIContextToUrl:function(url,ci){var newUrl=url;var dataSource=utils.toString(ci.dataSource);if(dataSource)newUrl+="\x26dataSource\x3d"+dataSource;else;return newUrl},attachPageContextToUrl:function(url,pageData){var newUrl=url;var contentSourceCI=utils.getInputCIByName(pageData,types.CIName.ContentSource);if(contentSourceCI){var dataSource=
utils.toString(contentSourceCI.dataSource);if(dataSource)newUrl+="\x26dataSource\x3d"+dataSource}else console.error("---------HAVE NO DATACI");var pageUID=utils.toInt(pageData.uid);if(pageUID)newUrl+="\x26pageUid\x3d"+pageUID;return newUrl},loadJSONDataWithTypeAndDataCI:function(url,ci,callback,dst){var queuedObject={pageData:ci,owner:dst,url:url,status:0,callback:callback,queueIndex:this.currentQueueIndex};var newUrl=this.attachCIContextToUrl(url,ci);if(newUrl)queuedObject.url=newUrl;queuedObject.url=
this.attachApplicationInfoToUrl(queuedObject.url);this.dataQueue.push(queuedObject);this.processNextJSON();this.currentQueueIndex++;return queuedObject.url},loadJSONDataWithDSUrlEx:function(url,dsUID,pageData,callback,dst,dsParams){url+="\x26dataSource\x3d"+dsUID;url=this.attachApplicationInfoToUrl(url);return this.loadData(url,pageData,callback,dst,null,dsParams)},loadJSONDataWithDSUrl:function(url,dsUrl,pageData,callback,dst,dsParams){var queuedObject={pageData:pageData,owner:dst,url:url,status:0,
callback:callback,queueIndex:this.currentQueueIndex,clear:true,dsParams:dsParams||null};if(dsUrl){var splitted=dsUrl.split("/");if(splitted&&splitted.length>=4)url+="\x26dataSource\x3d"+splitted[2];var newUrl=this.attachPageContextToUrl(url,pageData);if(newUrl)queuedObject.url=newUrl}queuedObject.url=this.attachApplicationInfoToUrl(queuedObject.url);this.dataQueue.push(queuedObject);this.processNextJSON();this.currentQueueIndex++;return queuedObject.url},loadJSONData:function(url,pageData,callback,
dst,options,dsParams){var queuedObject={pageData:pageData,owner:dst,url:url,status:0,extern:false,callback:callback,queueIndex:this.currentQueueIndex,clear:true,options:options,dsParams:dsParams||null};var attach=true;if(options)if(options.attachAppId!=null)attach=options.attachAppId;if(pageData&&attach){var newUrl=this.attachPageContextToUrl(url,pageData);if(newUrl)queuedObject.url=newUrl}if(attach)queuedObject.url=this.attachApplicationInfoToUrl(queuedObject.url);this.dataQueue.push(queuedObject);
this.processNextJSON();this.currentQueueIndex++;return queuedObject.url},dataRecievedJSONP:function(result){var resO=result;try{resO=utils.getJson(result)}catch(e){resO=result}if(!lang.isArray||!lang.isObject)debugger;var job=this.getCurrentJob();if(job){if(job.callback&&job.owner){if(job.url)resO["serviceUrl"]=job.url;job.callback(job.owner,resO)}var idx=this.dataQueue.indexOf(job);if(idx!=-1)this.dataQueue.splice(idx,1)}this.isLocked=false;this.processNext()},getCurrentJob:function(){for(var i=
0;i<this.dataQueue.length;i++)if(this.dataQueue[i].status==1)return this.dataQueue[i];return null},getNextJob:function(){for(var i=0;i<this.dataQueue.length;i++)if(this.dataQueue[i].status==0)return this.dataQueue[i];return null},_getCachePriority:function(url){if(url)if(url.indexOf("getAppBundle"))return types.CACHE_PRIORITY.SYSTEM;return types.CACHE_PRIORITY.CONTENT},_getCacheSize:function(){if(typeof localStorage!="undefined"){0&&console.dir(localStorage);return localStorage.length}return 0},cacheResponse:function(url,
data){if(ctx.hybridDelegate!=null){ctx.hybridDelegate.cacheData(url,data);return}try{if(this.dataCache)this.dataCache.put(url,data);if(typeof localStorage!="undefined"){var _data={time:(new Date).getTime(),data:JSON.stringify(data)};localStorage.setItem("xapp-data"+MD5(url,1),JSON.stringify(_data))}}catch(e){if(typeof localStorage!="undefined")localStorage.clear();console.error("store full or invalid")}},getCachedResponseEx:function(url,maxAge){if(has("xas"))return null;var result=null;if(typeof localStorage!=
"undefined"){var _data=localStorage.getItem("xapp-data"+MD5(url,1));if(_data)_data=dojo.fromJson(_data);if(_data&&_data.data){var _result=dojo.fromJson(_data.data);if(maxAge){var now=new Date;var date=new Date(parseInt(_data.time));var one_minute=1E3*60;var mdiff=(now.getTime()-date.getTime())/one_minute;if(mdiff<maxAge)result=_result}else result=_result}}return result},dataRecievedJSON:function(result){var thiz=this;var job=this.getCurrentJob();var _kDSParams=xapp.K_DSPRAMS;if(result==null)result=
this.ctx.getConnectManager()._return404(null,job[_kDSParams]);if(job){if(job.callback&&job.owner){if(result&&job.url)result["serviceUrl"]=job.url;if(result["dsParams"]==null&&job[_kDSParams]==null){var _dsParms=utils.getDSParamsByData(result);if(_dsParms)job[_kDSParams]=_dsParms}if(job["dsParams"]!=null&&result["dsParams"]==null)result["dsParams"]=job.dsParams;job.callback(job.owner,result);var dstUrl=""+job.url;if(job.options&&job.options.appendUrl)dstUrl+=job.options.appendUrl;if(xapp.useCache)thiz.cacheResponse(dstUrl,
result)}var idx=this.dataQueue.indexOf(job);if(idx!=-1)this.dataQueue.splice(idx,1)}this.isLocked=false;this.processNextJSON()},_removeJob:function(job){if(job){var idx=this.dataQueue.indexOf(job);if(idx!=-1)this.dataQueue.splice(idx,1);this.isLocked=false;this.processNextJSON()}},onError:function(job){if(job){console.error("couldn`t load "+job.url+" trying from cache !");var _cachedResponse=this.getCachedResponseEx(job.url,null);if(_cachedResponse==null&&this.ctx.getConnectManager&&this.ctx.getConnectManager())_cachedResponse=
this.ctx.getConnectManager()._return404(null,job[xapp.K_DSPRAMS]);if(_cachedResponse){job.callback(job.owner,_cachedResponse);this._removeJob(job);return}}if(this.ctx&&this.ctx.getUrlHandler&&this.ctx.getUrlHandler()){this.ctx.getUrlHandler().onDataError();this.ctx.getViewManager().onDataError()}},processNextJSON:function(){var thiz=this;if(this.isLocked)return;var job=this.getNextJob();if(job){if(job.extern){this.processNext();return}if(!this.isLocked)job.status=1;var urlDst=job.url;if(job.options&&
job.options.appendUrl)urlDst+=job.options.appendUrl;var _allowCache=false;if(job.url.indexOf("preventCache")!=-1||job.options&&job.options.preventCache)_allowCache=false;if(_allowCache){var _cachedResponse=this.getCachedResponseEx(urlDst,this.smallCacheThreshold);if(_cachedResponse){job.callback(job.owner,_cachedResponse);this._removeJob(job);return}}var xhrArgs={url:urlDst,handleAs:"json",load:dojo.hitch(this,"dataRecievedJSON"),headers:null,error:function(){thiz.onError(job)}};if(job.options&&job.options.headers)xhrArgs.headers=
job.options.headers;if(job.options&&job.options.handleAs){console.error("handle as "+job.options.handleAs);xhrArgs.handleAs=job.options.handleAs}dojo.xhrGet(xhrArgs)}},getJobByUrl:function(url){for(var i=0;i<this.dataQueue.length;i++)if(this.dataQueue[i].url==url)return this.dataQueue[i];return null},processNext:function(){var thiz=this;var job=this.getNextJob();if(job){if(!this.isLocked)job.status=1;var def=script.get(job.url,{url:job.url,jsonp:"callback",preventCache:xapp.preventCache}).then(function(data){if(data==
null)data=this.ctx.getConnectManager()._return404(null,job[xapp.K_DSPRAMS]);thiz.dataRecievedJSONP(data)},function(err){})}},loadJSONP:function(url,pageData,callback,dst,dsParams){var queuedObject={url:url,status:0,owner:dst,callback:callback,queueIndex:this.currentQueueIndex,dsParams:dsParams||null};this._patchQueueObject(queuedObject,url,pageData);this.dataQueue.push(queuedObject);this.processNext();this.currentQueueIndex++;return url},constructor:function(){this.dataQueue=[]}})})},"xfile/views/FileOperationDialog":function(){define("xfile/views/FileOperationDialog",
["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-style","dojo/dom-class","dojo/on","xapp/utils","dojo/dom-attr","xide/widgets/_InsertionMixin","./FileOperationView","./ActionDialog","dojo/dom-geometry","xide/views/TitlePane","xide/utils","xide/widgets/FlagsWidget","xfile/factory"],function(array,declare,html,domStyle,domClass,on,utils,domAttr,InsertionMixin,FileOperationView,ActionDialog,domGeometry,TitlePane,xUtils,FlagsWidget,factory){return declare("xfile.views.FileOperationDialog",
[ActionDialog],{value:null,fileOperationView:null,item:null,src:null,maskPane:null,optionPane:null,flags:4,getValue:function(){return this.fileOperationView.getValue()},getOptions:function(){var result={includes:[],excludes:[],mode:1501};if(this.maskPane&&this.maskPane.treeView){result.includes=this.maskPane.treeView.getSelected();result.excludes=this.maskPane.treeView.getUnselected()}var a=1<<16;var b=1<<4;switch(this.flags){case 1<<2:result.mode=1502;break;case 1<<4:result.mode=1501;break;case 1<<
8:result.mode=1504;break;case 1<<16:result.mode=1503;break}return result},_createTreeView:function(parent){var url=".";var name=".";if(this.src&&this.src[0]&&this.src[0].path){url=this.src[0].path;name=this.src[0].name}var treeView=factory.createTreeView("Files",this.config,parent.containerNode,this,this.ctx,this.owner.store,this.owner.model,true,url,name);return treeView},onShowTitlePane:function(panel){if(!panel.treeView)panel.treeView=this._createTreeView(panel)},onHideTitlePane:function(panel){this.onResized()},
onResized:function(){this._resizeToContent();this.resize()},_createMaskPanel:function(title,where){var thiz=this;var maskPane=xUtils.addWidget(TitlePane,{title:title,open:false,onShow:function(){thiz.onShowTitlePane(this)},onHide:function(){thiz.onHideTitlePane(this)}},this,where,true);this.maskPane=maskPane},_createOptionPanel:function(title,where){var thiz=this;var optionPanel=xUtils.addWidget(TitlePane,{title:title,open:false},this,where,true);var flags=[{value:2,label:"All"},{value:4,label:"None"},
{value:8,label:"If newer"},{value:16,label:"If size differs"}];this.wFlags=xUtils.addWidget(FlagsWidget,{value:4,data:flags,lineBreak:false,title:"",single:true,flagClass:"flagItem",isChecked:function(val,itemVal){return val==itemVal},setValue:function(value){thiz.flags=value},getValue:function(){return thiz.flags}},this,optionPanel,true,"ui-state-default")},_createFileOperationView:function(src,dst,operation){this.fileOperationView=new FileOperationView({className:"fileOperationView",delegate:this,
src:src,dst:dst,operation:operation,owner:this.owner,ctx:this.ctx},dojo.doc.createElement("div"));this.containerNode.appendChild(this.fileOperationView.domNode);this.fileOperationView.startup()},initWithFileOoperation:function(src,dst,operation){this.src=src;this._createFileOperationView(src,dst,operation);if(this.src&&this.src.length==1&&this.src[0].directory===true){this._createMaskPanel("Mask",this.containerNode);this._createOptionPanel("Overwrite",this.containerNode)}if(this.src&&this.src.length==
1&&!this.src[0].directory===true);this.addActionButtons();domStyle.set(this.containerNode,{height:"inherit"});this.fixHeight();this.resize()},startup:function(){this.inherited(arguments);if(this.didLoad)return;this.didLoad=true}})})},"dojo/_base/event":function(){define("dojo/_base/event",["./kernel","../on","../has","../dom-geometry"],function(dojo,on,has,dom){if(on._fixEvent){var fixEvent=on._fixEvent;on._fixEvent=function(evt,se){evt=fixEvent(evt,se);if(evt)dom.normalizeEvent(evt);return evt}}var ret=
{fix:function(evt,sender){if(on._fixEvent)return on._fixEvent(evt,sender);return evt},stop:function(evt){if(has("dom-addeventlistener")||evt&&evt.preventDefault){evt.preventDefault();evt.stopPropagation()}else{evt=evt||window.event;evt.cancelBubble=true;on._preventDefault.call(evt)}}};if(1){dojo.fixEvent=ret.fix;dojo.stopEvent=ret.stop}return ret})},"dgrid/_StoreMixin":function(){define(["dojo/_base/kernel","dojo/_base/declare","dojo/_base/lang","dojo/_base/Deferred","dojo/on","dojo/aspect","put-selector/put"],
function(kernel,declare,lang,Deferred,listen,aspect,put){function noop(value){return value}function emitError(err){if(typeof err!=="object")err=new Error(err);else if(err.dojoType==="cancel")return;err.grid=this;if(listen.emit(this.domNode,"dgrid-error",{grid:this,error:err,cancelable:true,bubbles:true}))console.error(err)}return declare(null,{store:null,query:null,queryOptions:null,getBeforePut:true,noDataMessage:"",loadingMessage:"",constructor:function(){this.query={};this.queryOptions={};this.dirty=
{};this._updating={};this._columnsWithSet={};aspect.before(this,"configStructure",lang.hitch(this,function(){this._columnsWithSet={}}))},postCreate:function(){this.inherited(arguments);if(this.store)this._updateNotifyHandle(this.store)},destroy:function(){this.inherited(arguments);if(this._notifyHandle)this._notifyHandle.remove()},_configColumn:function(column){if(column.set)this._columnsWithSet[column.field]=column;this.inherited(arguments)},_updateNotifyHandle:function(store){if(this._notifyHandle){this._notifyHandle.remove();
delete this._notifyHandle}if(store&&typeof store.notify==="function"){this._notifyHandle=aspect.after(store,"notify",lang.hitch(this,"_onNotify"),true);var sort=this.get("sort");if(!sort||!sort.length)0&&console.warn("Observable store detected, but no sort order specified. "+"You may experience quirks when adding/updating items.  "+"These can be resolved by setting a sort order on the list or grid.")}},_setStore:function(store,query,queryOptions){this._updateNotifyHandle(store);this.store=store;this.dirty=
{};this.set("query",query,queryOptions)},_setQuery:function(query,queryOptions){var sort=queryOptions&&queryOptions.sort;this.query=query!==undefined?query:this.query;this.queryOptions=queryOptions||this.queryOptions;sort?this.set("sort",sort):this.refresh()},setStore:function(store,query,queryOptions){kernel.deprecated("setStore(...)",'use set("store", ...) instead',"dgrid 0.4");this.set("store",store,query,queryOptions)},setQuery:function(query,queryOptions){kernel.deprecated("setQuery(...)",'use set("query", ...) instead',
"dgrid 0.4");this.set("query",query,queryOptions)},_getQueryOptions:function(){var options=lang.delegate(this.queryOptions,{});if(typeof this._sort==="function"||this._sort.length)options.sort=this._sort;return options},_getQuery:function(){var q=this.query;return typeof q=="object"&&q!=null?lang.delegate(q,{}):q},_setSort:function(property,descending){if(this.store)this._lastCollection=null;this.inherited(arguments)},_onNotify:function(object,existingId){this.inherited(arguments);if(object&&this._numObservers<
1)this.refresh({keepScrollPosition:true})},insertRow:function(object,parent,beforeNode,i,options){var store=this.store,dirty=this.dirty,id=store&&store.getIdentity(object),dirtyObj;if(id in dirty&&!(id in this._updating))dirtyObj=dirty[id];if(dirtyObj)object=lang.delegate(object,dirtyObj);return this.inherited(arguments)},updateDirty:function(id,field,value){var dirty=this.dirty,dirtyObj=dirty[id];if(!dirtyObj)dirtyObj=dirty[id]={};dirtyObj[field]=value},setDirty:function(id,field,value){kernel.deprecated("setDirty(...)",
"use updateDirty() instead","dgrid 0.4");this.updateDirty(id,field,value)},save:function(){var self=this,store=this.store,dirty=this.dirty,dfd=new Deferred,promise=dfd.promise,getFunc=function(id){var data;return self.getBeforePut||!(data=self.row(id).data)?function(){return store.get(id)}:function(){return data}};function putter(id,dirtyObj){return function(object){var colsWithSet=self._columnsWithSet,updating=self._updating,key,data;if(typeof object.set==="function")object.set(dirtyObj);else for(key in dirtyObj)object[key]=
dirtyObj[key];for(key in colsWithSet){data=colsWithSet[key].set(object);if(data!==undefined)object[key]=data}updating[id]=true;return Deferred.when(store.put(object),function(){delete dirty[id];delete updating[id]})}}for(var id in dirty){var put=putter(id,dirty[id]);promise=promise.then(getFunc(id)).then(put)}dfd.resolve();return promise},revert:function(){this.dirty={};this.refresh()},_trackError:function(func){var result;if(typeof func=="string")func=lang.hitch(this,func);try{result=func()}catch(err){emitError.call(this,
err)}return Deferred.when(result,noop,lang.hitch(this,emitError))},newRow:function(){var row=this.inherited(arguments);if(this.noDataNode){put(this.noDataNode,"!");delete this.noDataNode}return row},removeRow:function(rowElement,justCleanup){var row={element:rowElement};if(!justCleanup&&this.noDataMessage&&this.up(row).element===rowElement&&this.down(row).element===rowElement){this.noDataNode=put(this.contentNode,"div.dgrid-no-data");this.noDataNode.innerHTML=this.noDataMessage}return this.inherited(arguments)}})})},
"dijit/a11yclick":function(){define("dijit/a11yclick",["dojo/keys","dojo/mouse","dojo/on","dojo/touch"],function(keys,mouse,on,touch){function clickKey(e){if((e.keyCode===keys.ENTER||e.keyCode===keys.SPACE)&&!/input|button/i.test(e.target.nodeName))for(var node=e.target;node;node=node.parentNode)if(node.dojoClick)return true}var lastKeyDownNode;on(document,"keydown",function(e){if(clickKey(e)){lastKeyDownNode=e.target;e.preventDefault()}else lastKeyDownNode=null});on(document,"keyup",function(e){if(clickKey(e)&&
e.target==lastKeyDownNode){lastKeyDownNode=null;on.emit(e.target,"click",{cancelable:true,bubbles:true,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,metaKey:e.metaKey,altKey:e.altKey,_origType:e.type})}});var click=function(node,listener){node.dojoClick=true;return on(node,"click",listener)};click.click=click;click.press=function(node,listener){var touchListener=on(node,touch.press,function(evt){if(evt.type=="mousedown"&&!mouse.isLeft(evt))return;listener(evt)}),keyListener=on(node,"keydown",function(evt){if(evt.keyCode===
keys.ENTER||evt.keyCode===keys.SPACE)listener(evt)});return{remove:function(){touchListener.remove();keyListener.remove()}}};click.release=function(node,listener){var touchListener=on(node,touch.release,function(evt){if(evt.type=="mouseup"&&!mouse.isLeft(evt))return;listener(evt)}),keyListener=on(node,"keyup",function(evt){if(evt.keyCode===keys.ENTER||evt.keyCode===keys.SPACE)listener(evt)});return{remove:function(){touchListener.remove();keyListener.remove()}}};click.move=touch.move;return click})},
"dojo/dnd/Moveable":function(){define("dojo/dnd/Moveable",["../_base/array","../_base/declare","../_base/lang","../dom","../dom-class","../Evented","../on","../topic","../touch","./common","./Mover","../_base/window"],function(array,declare,lang,dom,domClass,Evented,on,topic,touch,dnd,Mover,win){var Moveable=declare("dojo.dnd.Moveable",[Evented],{handle:"",delay:0,skip:false,constructor:function(node,params){this.node=dom.byId(node);if(!params)params={};this.handle=params.handle?dom.byId(params.handle):
null;if(!this.handle)this.handle=this.node;this.delay=params.delay>0?params.delay:0;this.skip=params.skip;this.mover=params.mover?params.mover:Mover;this.events=[on(this.handle,touch.press,lang.hitch(this,"onMouseDown")),on(this.handle,"dragstart",lang.hitch(this,"onSelectStart")),on(this.handle,"selectstart",lang.hitch(this,"onSelectStart"))]},markupFactory:function(params,node,Ctor){return new Ctor(node,params)},destroy:function(){array.forEach(this.events,function(handle){handle.remove()});this.events=
this.node=this.handle=null},onMouseDown:function(e){if(this.skip&&dnd.isFormElement(e))return;if(this.delay){this.events.push(on(this.handle,touch.move,lang.hitch(this,"onMouseMove")),on(this.handle,touch.release,lang.hitch(this,"onMouseUp")));this._lastX=e.pageX;this._lastY=e.pageY}else this.onDragDetected(e);e.stopPropagation();e.preventDefault()},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e)}e.stopPropagation();
e.preventDefault()},onMouseUp:function(e){for(var i=0;i<2;++i)this.events.pop().remove();e.stopPropagation();e.preventDefault()},onSelectStart:function(e){if(!this.skip||!dnd.isFormElement(e)){e.stopPropagation();e.preventDefault()}},onDragDetected:function(e){new this.mover(this.node,e,this)},onMoveStart:function(mover){topic.publish("/dnd/move/start",mover);domClass.add(win.body(),"dojoMove");domClass.add(this.node,"dojoMoveItem")},onMoveStop:function(mover){topic.publish("/dnd/move/stop",mover);
domClass.remove(win.body(),"dojoMove");domClass.remove(this.node,"dojoMoveItem")},onFirstMove:function(){},onMove:function(mover,leftTop){this.onMoving(mover,leftTop);var s=mover.node.style;s.left=leftTop.l+"px";s.top=leftTop.t+"px";this.onMoved(mover,leftTop)},onMoving:function(){},onMoved:function(){}});return Moveable})},"dojo/dom-style":function(){define("dojo/dom-style",["./sniff","./dom"],function(has,dom){var getComputedStyle,style={};if(has("webkit"))getComputedStyle=function(node){var s;
if(node.nodeType==1){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null)}}return s||{}};else if(has("ie")&&(has("ie")<9||has("quirks")))getComputedStyle=function(node){return node.nodeType==1&&node.currentStyle?node.currentStyle:{}};else getComputedStyle=function(node){if(!node)debugger;return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{}};style.getComputedStyle=getComputedStyle;
var toPixel;if(!has("ie"))toPixel=function(element,value){return parseFloat(value)||0};else toPixel=function(element,avalue){if(!avalue)return 0;if(avalue=="medium")return 4;if(avalue.slice&&avalue.slice(-2)=="px")return parseFloat(avalue);var s=element.style,rs=element.runtimeStyle,cs=element.currentStyle,sLeft=s.left,rsLeft=rs.left;rs.left=cs.left;try{s.left=avalue;avalue=s.pixelLeft}catch(e){avalue=0}s.left=sLeft;rs.left=rsLeft;return avalue};style.toPixelValue=toPixel;var astr="DXImageTransform.Microsoft.Alpha";
var af=function(n,f){try{return n.filters.item(astr)}catch(e){return f?{}:null}};var _getOpacity=has("ie")<9||has("ie")<10&&has("quirks")?function(node){try{return af(node).Opacity/100}catch(e){return 1}}:function(node){return getComputedStyle(node).opacity};var _setOpacity=has("ie")<9||has("ie")<10&&has("quirks")?function(node,opacity){if(opacity==="")opacity=1;var ov=opacity*100,fullyOpaque=opacity===1;if(fullyOpaque){node.style.zoom="";if(af(node))node.style.filter=node.style.filter.replace(new RegExp("\\s*progid:"+
astr+"\\([^\\)]+?\\)","i"),"")}else{node.style.zoom=1;if(af(node))af(node,1).Opacity=ov;else node.style.filter+=" progid:"+astr+"(Opacity\x3d"+ov+")";af(node,1).Enabled=true}if(node.tagName.toLowerCase()=="tr")for(var td=node.firstChild;td;td=td.nextSibling)if(td.tagName.toLowerCase()=="td")_setOpacity(td,opacity);return opacity}:function(node,opacity){return node.style.opacity=opacity};var _pixelNamesCache={left:true,top:true};var _pixelRegExp=/margin|padding|width|height|max|min|offset/;function _toStyleValue(node,
type,value){type=type.toLowerCase();if(has("ie")){if(value=="auto"){if(type=="height")return node.offsetHeight;if(type=="width")return node.offsetWidth}if(type=="fontweight")switch(value){case 700:return"bold";case 400:default:return"normal"}}if(!(type in _pixelNamesCache))_pixelNamesCache[type]=_pixelRegExp.test(type);return _pixelNamesCache[type]?toPixel(node,value):value}var _floatAliases={cssFloat:1,styleFloat:1,"float":1};style.get=function getStyle(node,name){var n=dom.byId(node),l=arguments.length,
op=name=="opacity";if(l==2&&op)return _getOpacity(n);name=_floatAliases[name]?"cssFloat"in n.style?"cssFloat":"styleFloat":name;var s=style.getComputedStyle(n);return l==1?s:_toStyleValue(n,name,s[name]||n.style[name])};style.set=function setStyle(node,name,value){var n=dom.byId(node),l=arguments.length,op=name=="opacity";name=_floatAliases[name]?"cssFloat"in n.style?"cssFloat":"styleFloat":name;if(l==3)return op?_setOpacity(n,value):n.style[name]=value;for(var x in name)style.set(node,x,name[x]);
return style.getComputedStyle(n)};return style})},"xfile/manager/PluginManager":function(){define("xfile/manager/PluginManager",["dojo/_base/declare"],function(declare){return declare("xfile.manager.PluginManager",null,{ctx:null,pluginResources:null,loadPlugins:function(pluginResources){this.pluginResources=pluginResources;if(this.pluginResources)for(var i=0;i<this.pluginResources.length;i++){var plug=this.pluginResources[i];if(plug.type&&plug.type=="JS-PLUGIN"&&plug.path)require([plug.path],function(_moduleIn){plug["loaded"]=
true})}}})})},"dojo/ready":function(){define("dojo/ready",["./_base/kernel","./has","require","./domReady","./_base/lang"],function(dojo,has,require,domReady,lang){var isDomReady=0,loadQ=[],onLoadRecursiveGuard=0,handleDomReady=function(){isDomReady=1;dojo._postLoad=dojo.config.afterOnLoad=true;onEvent()},onEvent=function(){if(onLoadRecursiveGuard)return;onLoadRecursiveGuard=1;while(isDomReady&&(!domReady||domReady._Q.length==0)&&(require.idle?require.idle():true)&&loadQ.length){var f=loadQ.shift();
try{f()}catch(e){e.info=e.message;if(require.signal)require.signal("error",e);else throw e;}}onLoadRecursiveGuard=0};require.on&&require.on("idle",onEvent);if(domReady)domReady._onQEmpty=onEvent;var ready=dojo.ready=dojo.addOnLoad=function(priority,context,callback){var hitchArgs=lang._toArray(arguments);if(typeof priority!="number"){callback=context;context=priority;priority=1E3}else hitchArgs.shift();callback=callback?lang.hitch.apply(dojo,hitchArgs):function(){context()};callback.priority=priority;
for(var i=0;i<loadQ.length&&priority>=loadQ[i].priority;i++);loadQ.splice(i,0,callback);onEvent()};1||has.add("dojo-config-addOnLoad",1);if(1){var dca=dojo.config.addOnLoad;if(dca)ready[lang.isArray(dca)?"apply":"call"](dojo,dca)}if(0&&dojo.config.parseOnLoad&&!dojo.isAsync)ready(99,function(){if(!dojo.parser){dojo.deprecated("Add explicit require(['dojo/parser']);","","2.0");require(["dojo/parser"])}});if(domReady)domReady(handleDomReady);else handleDomReady();return ready})},"dijit/form/RangeBoundTextBox":function(){define("dijit/form/RangeBoundTextBox",
["dojo/_base/declare","dojo/i18n","./MappedTextBox"],function(declare,i18n,MappedTextBox){var RangeBoundTextBox=declare("dijit.form.RangeBoundTextBox",MappedTextBox,{rangeMessage:"",rangeCheck:function(primitive,constraints){return("min"in constraints?this.compare(primitive,constraints.min)>=0:true)&&("max"in constraints?this.compare(primitive,constraints.max)<=0:true)},isInRange:function(){return this.rangeCheck(this.get("value"),this.constraints)},_isDefinitelyOutOfRange:function(){var val=this.get("value");
if(val==null)return false;var outOfRange=false;if("min"in this.constraints){var min=this.constraints.min;outOfRange=this.compare(val,typeof min=="number"&&min>=0&&val!=0?0:min)<0}if(!outOfRange&&"max"in this.constraints){var max=this.constraints.max;outOfRange=this.compare(val,typeof max!="number"||max>0?max:0)>0}return outOfRange},_isValidSubset:function(){return this.inherited(arguments)&&!this._isDefinitelyOutOfRange()},isValid:function(isFocused){return this.inherited(arguments)&&(this._isEmpty(this.textbox.value)&&
!this.required||this.isInRange(isFocused))},getErrorMessage:function(isFocused){var v=this.get("value");if(v!=null&&v!==""&&(typeof v!="number"||!isNaN(v))&&!this.isInRange(isFocused))return this.rangeMessage;return this.inherited(arguments)},postMixInProperties:function(){this.inherited(arguments);if(!this.rangeMessage){this.messages=i18n.getLocalization("dijit.form","validate",this.lang);this.rangeMessage=this.messages.rangeMessage}}});return RangeBoundTextBox})},"dojo/dnd/Container":function(){define("dojo/dnd/Container",
["../_base/array","../_base/declare","../_base/kernel","../_base/lang","../_base/window","../dom","../dom-class","../dom-construct","../Evented","../has","../on","../query","../touch","./common"],function(array,declare,kernel,lang,win,dom,domClass,domConstruct,Evented,has,on,query,touch,dnd){var Container=declare("dojo.dnd.Container",Evented,{skipForm:false,allowNested:false,constructor:function(node,params){this.node=dom.byId(node);if(!params)params={};this.creator=params.creator||null;this.skipForm=
params.skipForm;this.parent=params.dropParent&&dom.byId(params.dropParent);this.map={};this.current=null;this.containerState="";domClass.add(this.node,"dojoDndContainer");if(!(params&&params._skipStartup))this.startup();this.events=[on(this.node,touch.over,lang.hitch(this,"onMouseOver")),on(this.node,touch.out,lang.hitch(this,"onMouseOut")),on(this.node,"dragstart",lang.hitch(this,"onSelectStart")),on(this.node,"selectstart",lang.hitch(this,"onSelectStart"))]},creator:function(){},getItem:function(key){return this.map[key]},
setItem:function(key,data){this.map[key]=data},delItem:function(key){delete this.map[key]},forInItems:function(f,o){o=o||kernel.global;var m=this.map,e=dnd._empty;for(var i in m){if(i in e)continue;f.call(o,m[i],i,this)}return o},clearItems:function(){this.map={}},getAllNodes:function(){return query((this.allowNested?"":"\x3e ")+".dojoDndItem",this.parent)},sync:function(){var map={};this.getAllNodes().forEach(function(node){if(node.id){var item=this.getItem(node.id);if(item){map[node.id]=item;return}}else node.id=
dnd.getUniqueId();var type=node.getAttribute("dndType"),data=node.getAttribute("dndData");map[node.id]={data:data||node.innerHTML,type:type?type.split(/\s*,\s*/):["text"]}},this);this.map=map;return this},insertNodes:function(data,before,anchor){if(!this.parent.firstChild)anchor=null;else if(before){if(!anchor)anchor=this.parent.firstChild}else if(anchor)anchor=anchor.nextSibling;var i,t;if(anchor)for(i=0;i<data.length;++i){t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});
anchor.parentNode.insertBefore(t.node,anchor)}else for(i=0;i<data.length;++i){t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.appendChild(t.node)}return this},destroy:function(){array.forEach(this.events,function(handle){handle.remove()});this.clearItems();this.node=this.parent=this.current=null},markupFactory:function(params,node,Ctor){params._skipStartup=true;return new Ctor(node,params)},startup:function(){if(!this.parent){this.parent=this.node;
if(this.parent.tagName.toLowerCase()=="table"){var c=this.parent.getElementsByTagName("tbody");if(c&&c.length)this.parent=c[0]}}this.defaultCreator=dnd._defaultCreator(this.parent);this.sync()},onMouseOver:function(e){var n=e.relatedTarget;while(n){if(n==this.node)break;try{n=n.parentNode}catch(x){n=null}}if(!n){this._changeState("Container","Over");this.onOverEvent()}n=this._getChildByEvent(e);if(this.current==n)return;if(this.current)this._removeItemClass(this.current,"Over");if(n)this._addItemClass(n,
"Over");this.current=n},onMouseOut:function(e){for(var n=e.relatedTarget;n;){if(n==this.node)return;try{n=n.parentNode}catch(x){n=null}}if(this.current){this._removeItemClass(this.current,"Over");this.current=null}this._changeState("Container","");this.onOutEvent()},onSelectStart:function(e){if(!this.skipForm||!dnd.isFormElement(e)){e.stopPropagation();e.preventDefault()}},onOverEvent:function(){},onOutEvent:function(){},_changeState:function(type,newState){var prefix="dojoDnd"+type;var state=type.toLowerCase()+
"State";domClass.replace(this.node,prefix+newState,prefix+this[state]);this[state]=newState},_addItemClass:function(node,type){domClass.add(node,"dojoDndItem"+type)},_removeItemClass:function(node,type){domClass.remove(node,"dojoDndItem"+type)},_getChildByEvent:function(e){var node=e.target;if(node)for(var parent=node.parentNode;parent;node=parent,parent=node.parentNode)if((parent==this.parent||this.allowNested)&&domClass.contains(node,"dojoDndItem"))return node;return null},_normalizedCreator:function(item,
hint){var t=(this.creator||this.defaultCreator).call(this,item,hint);if(!lang.isArray(t.type))t.type=["text"];if(!t.node.id)t.node.id=dnd.getUniqueId();domClass.add(t.node,"dojoDndItem");return t}});dnd._createNode=function(tag){if(!tag)return dnd._createSpan;return function(text){return domConstruct.create(tag,{innerHTML:text})}};dnd._createTrTd=function(text){var tr=domConstruct.create("tr");domConstruct.create("td",{innerHTML:text},tr);return tr};dnd._createSpan=function(text){return domConstruct.create("span",
{innerHTML:text})};dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};dnd._defaultCreator=function(node){var tag=node.tagName.toLowerCase();var c=tag=="tbody"||tag=="thead"?dnd._createTrTd:dnd._createNode(dnd._defaultCreatorNodes[tag]);return function(item,hint){var isObj=item&&lang.isObject(item),data,type,n;if(isObj&&item.tagName&&item.nodeType&&item.getAttribute){data=item.getAttribute("dndData")||item.innerHTML;type=item.getAttribute("dndType");type=type?type.split(/\s*,\s*/):["text"];
n=item}else{data=isObj&&item.data?item.data:item;type=isObj&&item.type?item.type:["text"];n=(hint=="avatar"?dnd._createSpan:c)(String(data))}if(!n.id)n.id=dnd.getUniqueId();return{node:n,data:data,type:type}}};return Container})},"xide/widgets/ArgumentsWidget":function(){define(["dojo/_base/declare","dojo/_base/lang","xide/widgets/WidgetBase","xide/factory","xide/utils","xide/views/CIActionDialog"],function(declare,lang,WidgetBase,factory,utils,CIActionDialog){return declare("xide.widgets.ArgumentsWidget",
[WidgetBase],{wContentSelectorButton:null,lastUploadedFileName:null,oriPath:null,minHeight:"400px;",value:"",options:null,templateString:"\x3cdiv class\x3d'widgetContainer widgetBorder widgetTable' style\x3d''\x3e"+"\x3ctable border\x3d'0' cellpadding\x3d'5px' width\x3d'100%' \x3e"+"\x3ctbody\x3e"+"\x3ctr data-dojo-attach-point\x3d'extensionRoot'\x3e"+"\x3ctd width\x3d'15%' class\x3d'widgetTitle'\x3e\x3cspan\x3e\x3cb\x3e${!title}\x3c/b\x3e\x3cspan\x3e\x3c/td\x3e"+"\x3ctd width\x3d'100px' class\x3d'widgetValue2' valign\x3d'middle' data-dojo-attach-point\x3d'previewNode'\x3e\x3c/td\x3e"+
"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button0'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button1'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button2'\x3e\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e"+"\x3cdiv data-dojo-attach-point\x3d'expander' onclick\x3d'' style\x3d'width:100%;'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'last'\x3e\x3c/div\x3e"+"\x3c/div\x3e",
filePathValidator:function(value,constraints){return true;var thiz=this;var result=false;var reg=new RegExp(/^[0-9a-zA-Z ..._/ ]+$/);if(value&&reg.test(value)){var doExistCheck=false;if(doExistCheck){result=false;thiz.promptMessage="Item already exists";thiz.message="Item already exists"}else{result=true;thiz.message="Enter a list of comma seperated arguments"}}else{thiz.promptMessage="This is not a valid path, try without special characters!";thiz.message="This is not a path filename, try without special characters!";
result=false}this.fileNameValid=result;if(this.owner&&this.owner.onValidated)this.owner.onValidated(result);return result},onSelect:function(){var thiz=this;var _defaultOptions={};if(this.options)lang.mixin(_defaultOptions,this.options);var value=utils.toString(this.userData["value"]);var actionDialog=new CIActionDialog({title:"Arguments",style:"width:400px;height:400px;",resizeable:true,delegate:{onOk:function(dlg,data){var expression=utils.getCIInputValueByName(data,"Arguments");thiz.userData.changed=
true;thiz.userData.active=true;utils.setCIValueByField(thiz.userData,"value",expression);thiz.editBox.set("value",expression)}},cis:[utils.createCI("Arguments",28,value,{group:"Arguments"})]});actionDialog.show()},fillTemplate:function(){var thiz=this;var value=utils.toString(this.userData["value"]);this.editBox=factory.createValidationTextBox(this.previewNode,"","",value,this.filePathValidator,this.delegate,"Not a path!","I need some input");dojo.connect(this.editBox,"onChange",function(item){thiz.userData.changed=
true;thiz.userData.active=true;utils.setCIValueByField(thiz.userData,"value",item)});this.selectButton=factory.createButton(this.button0,"el-icon-magic","elusiveButton","","",this.onSelect,this)},startup:function(){this.inherited(arguments);this.fillTemplate();this.onReady()}})})},"xwordpress/Imports/DijitImports":function(){define("xwordpress/Imports/DijitImports",["dojo/_base/declare","dijit/Dialog","dijit/layout/BorderContainer","dijit/layout/AccordionContainer","dijit/layout/TabContainer","dijit/layout/LayoutContainer",
"dijit/layout/StackContainer","dijit/Toolbar","dijit/_editor/plugins/FontChoice","dijit/ToolbarSeparator","dijit/_Widget","dijit/_TemplatedMixin","dijit/_WidgetsInTemplateMixin","dijit/form/Button","dijit/form/ComboButton","dijit/form/TextBox","dijit/form/ValidationTextBox","dijit/form/CheckBox","dijit/form/Select","dijit/form/DropDownButton","dijit/form/NumberSpinner","dijit/form/RadioButton","dijit/InlineEditBox","dijit/TooltipDialog","dijit/form/HorizontalSlider","dijit/ProgressBar","dijit/PopupMenuItem"],
function(declare,Dialog,BorderContainer,AccordionContainer,TabContainer,LayoutContainer,StackContainer,Toolbar,FontChoice,ToolbarSeparator,Widget,_TemplatedMixin,_WidgetsInTemplateMixin,Button,ComboButton,TextBox,ValidationTextBox,Checkbox,Select,DropDownButton,NumberSpinner,RadioButton,InlineEditBox,TooltipDialog,HorizontalSlider,ProgressBar,PopupMenuItem){return declare("xwordpress.Imports.DijitImports",null,{constructor:function(){}})})},"xfile/views/FileRenameDialog":function(){define("xfile/views/FileRenameDialog",
["dojo/_base/declare","xide/factory","xfile/views/ActionDialog"],function(declare,factory,ActionDialog){return declare("xfile.views.FileRenameDialog",[ActionDialog],{value:null,fileNameValid:true,onValidated:function(valid){if(this.okButton)this.okButton.set("disabled",!valid)},onNormalKey:function(){if(this.editBox)this.editBox._refreshState(true)},fileNameValidator:function(value,constraints){var thiz=this;var result=false;var reg=new RegExp(/^[0-9a-zA-Z ...\-_ ]+$/);if(value&&reg.test(value))if(thiz.delegate&&
thiz.delegate.hasItem(value)){result=false;thiz.promptMessage="Item already exists";thiz.message="Item already exists"}else{result=true;thiz.message="Enter new file name"}else{thiz.promptMessage="This is not a valid filename, try without special characters!";thiz.message="This is not a valid filename, try without special characters!";result=false}this.fileNameValid=result;if(this.owner&&this.owner.onValidated)this.owner.onValidated(result);return result},getValue:function(){return this.editBox.getValue()},
initWithFileOoperation:function(src){this.value=src.name;this.editBox=factory.createValidationTextBox(this.containerNode,"float:left;","New Name",src.name,this.fileNameValidator,this.delegate.delegate,"Not a filename!","I need some input");this.editBox.owner=this;this.addActionButtons();this.fixHeight();this.resize()}})})},"dojo/dnd/common":function(){define("dojo/dnd/common",["../sniff","../_base/kernel","../_base/lang","../dom"],function(has,kernel,lang,dom){var exports=lang.getObject("dojo.dnd",
true);exports.getCopyKeyState=function(evt){return evt[has("mac")?"metaKey":"ctrlKey"]};exports._uniqueId=0;exports.getUniqueId=function(){var id;do id=kernel._scopeName+"Unique"+ ++exports._uniqueId;while(dom.byId(id));return id};exports._empty={};exports.isFormElement=function(e){var t=e.target;if(t.nodeType==3)t=t.parentNode;return" a button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0};return exports})},"dojo/data/ObjectStore":function(){define("dojo/data/ObjectStore",
["../_base/lang","../Evented","../_base/declare","../_base/Deferred","../_base/array","../_base/connect","../regexp"],function(lang,Evented,declare,Deferred,array,connect,regexp){function convertRegex(character){return character=="*"?".*":character=="?"?".":character}return declare("dojo.data.ObjectStore",[Evented],{objectStore:null,constructor:function(options){this._dirtyObjects=[];if(options.labelAttribute)options.labelProperty=options.labelAttribute;lang.mixin(this,options)},labelProperty:"label",
getValue:function(item,property,defaultValue){return typeof item.get==="function"?item.get(property):property in item?item[property]:defaultValue},getValues:function(item,property){var val=this.getValue(item,property);return val instanceof Array?val:val===undefined?[]:[val]},getAttributes:function(item){var res=[];for(var i in item)if(item.hasOwnProperty(i)&&!(i.charAt(0)=="_"&&i.charAt(1)=="_"))res.push(i);return res},hasAttribute:function(item,attribute){return attribute in item},containsValue:function(item,
attribute,value){return array.indexOf(this.getValues(item,attribute),value)>-1},isItem:function(item){return typeof item=="object"&&item&&!(item instanceof Date)},isItemLoaded:function(item){return item&&typeof item.load!=="function"},loadItem:function(args){var item;if(typeof args.item.load==="function")Deferred.when(args.item.load(),function(result){item=result;var func=result instanceof Error?args.onError:args.onItem;if(func)func.call(args.scope,result)});else if(args.onItem)args.onItem.call(args.scope,
args.item);return item},close:function(request){return request&&request.abort&&request.abort()},fetch:function(args){args=lang.delegate(args,args&&args.queryOptions);var self=this;var scope=args.scope||self;var query=args.query;if(typeof query=="object"){query=lang.delegate(query);for(var i in query){var required=query[i];if(typeof required=="string"){query[i]=RegExp("^"+regexp.escapeString(required,"*?\\").replace(/\\.|\*|\?/g,convertRegex)+"$",args.ignoreCase?"mi":"m");query[i].toString=function(original){return function(){return original}}(required)}}}var results=
this.objectStore.query(query,args);Deferred.when(results.total,function(totalCount){Deferred.when(results,function(results){if(args.onBegin)args.onBegin.call(scope,totalCount||results.length,args);if(args.onItem)for(var i=0;i<results.length;i++)args.onItem.call(scope,results[i],args);if(args.onComplete)args.onComplete.call(scope,args.onItem?null:results,args);return results},errorHandler)},errorHandler);function errorHandler(error){if(args.onError)args.onError.call(scope,error,args)}args.abort=function(){if(results.cancel)results.cancel()};
if(results.observe){if(this.observing)this.observing.cancel();this.observing=results.observe(function(object,removedFrom,insertedInto){if(array.indexOf(self._dirtyObjects,object)==-1)if(removedFrom==-1)self.onNew(object);else if(insertedInto==-1)self.onDelete(object);else for(var i in object)if(i!=self.objectStore.idProperty)self.onSet(object,i,null,object[i])},true)}this.onFetch(results);args.store=this;return args},getFeatures:function(){return{"dojo.data.api.Read":!!this.objectStore.get,"dojo.data.api.Identity":true,
"dojo.data.api.Write":!!this.objectStore.put,"dojo.data.api.Notification":true}},getLabel:function(item){if(this.isItem(item))return this.getValue(item,this.labelProperty);return undefined},getLabelAttributes:function(item){return[this.labelProperty]},getIdentity:function(item){return this.objectStore.getIdentity?this.objectStore.getIdentity(item):item[this.objectStore.idProperty||"id"]},getIdentityAttributes:function(item){return[this.objectStore.idProperty]},fetchItemByIdentity:function(args){var item;
Deferred.when(this.objectStore.get(args.identity),function(result){item=result;args.onItem.call(args.scope,result)},function(error){args.onError.call(args.scope,error)});return item},newItem:function(data,parentInfo){if(parentInfo){var values=this.getValue(parentInfo.parent,parentInfo.attribute,[]);values=values.concat([data]);data.__parent=values;this.setValue(parentInfo.parent,parentInfo.attribute,values)}this._dirtyObjects.push({object:data,save:true});this.onNew(data);return data},deleteItem:function(item){this.changing(item,
true);this.onDelete(item)},setValue:function(item,attribute,value){var old=item[attribute];this.changing(item);item[attribute]=value;this.onSet(item,attribute,old,value)},setValues:function(item,attribute,values){if(!lang.isArray(values))throw new Error("setValues expects to be passed an Array object as its value");this.setValue(item,attribute,values)},unsetAttribute:function(item,attribute){this.changing(item);var old=item[attribute];delete item[attribute];this.onSet(item,attribute,old,undefined)},
changing:function(object,_deleting){object.__isDirty=true;for(var i=0;i<this._dirtyObjects.length;i++){var dirty=this._dirtyObjects[i];if(object==dirty.object){if(_deleting){dirty.object=false;if(!this._saveNotNeeded)dirty.save=true}return}}var old=object instanceof Array?[]:{};for(i in object)if(object.hasOwnProperty(i))old[i]=object[i];this._dirtyObjects.push({object:!_deleting&&object,old:old,save:!this._saveNotNeeded})},save:function(kwArgs){kwArgs=kwArgs||{};var result,actions=[];var savingObjects=
[];var self=this;var dirtyObjects=this._dirtyObjects;var left=dirtyObjects.length;try{connect.connect(kwArgs,"onError",function(){if(kwArgs.revertOnError!==false){var postCommitDirtyObjects=dirtyObjects;dirtyObjects=savingObjects;self.revert();self._dirtyObjects=postCommitDirtyObjects}else self._dirtyObjects=dirtyObjects.concat(savingObjects)});if(this.objectStore.transaction)var transaction=this.objectStore.transaction();for(var i=0;i<dirtyObjects.length;i++){var dirty=dirtyObjects[i];var object=
dirty.object;var old=dirty.old;delete object.__isDirty;if(object)result=this.objectStore.put(object,{overwrite:!!old});else if(typeof old!="undefined")result=this.objectStore.remove(this.getIdentity(old));savingObjects.push(dirty);dirtyObjects.splice(i--,1);Deferred.when(result,function(value){if(!--left)if(kwArgs.onComplete)kwArgs.onComplete.call(kwArgs.scope,actions)},function(value){left=-1;kwArgs.onError.call(kwArgs.scope,value)})}if(transaction)transaction.commit()}catch(e){kwArgs.onError.call(kwArgs.scope,
value)}},revert:function(){var dirtyObjects=this._dirtyObjects;for(var i=dirtyObjects.length;i>0;){i--;var dirty=dirtyObjects[i];var object=dirty.object;var old=dirty.old;if(object&&old){for(var j in old)if(old.hasOwnProperty(j)&&object[j]!==old[j]){this.onSet(object,j,object[j],old[j]);object[j]=old[j]}for(j in object)if(!old.hasOwnProperty(j)){this.onSet(object,j,object[j]);delete object[j]}}else if(!old)this.onDelete(object);else this.onNew(old);delete (object||old).__isDirty;dirtyObjects.splice(i,
1)}},isDirty:function(item){if(!item)return!!this._dirtyObjects.length;return item.__isDirty},onSet:function(){},onNew:function(){},onDelete:function(){},onFetch:function(results){}})})},"cbtree/model/_base/BaseStoreModel":function(){define("cbtree/model/_base/BaseStoreModel",["module","dojo/_base/declare","dojo/_base/lang","dojo/aspect","dojo/Deferred","dojo/promise/all","dojo/promise/Promise","dojo/Stateful","dojo/when","./Parents","./Prologue","../../Evented","../../errors/createError!../../errors/CBTErrors.json",
"../../util/shim/Array"],function(module,declare,lang,aspect,Deferred,all,Promise,Stateful,when,Parents,Prologue,Evented,createError){var CBTError=createError(module.id);var undef;function returnTrue(){return true}var BaseStoreModel=declare([Evented,Stateful],{iconAttr:"",labelAttr:"name",labelType:"text",parentProperty:"parent",query:null,options:null,rootLabel:null,store:null,state:"created",root:null,_forest:false,_loadRequested:false,constructor:function(kwArgs){this._childrenCache={};this._objectCache=
{};this._obsHandles={};this._methods={};this._eventable=false;this._forest=false;this._loadOptions=null;this._loadRequested=false;this._monitored=false;this._observable=false;this._resetPending=false;this._writeEnabled=true;this._evtHandles={remove:function(){}};this._modelReady=new Deferred;this._storeReady=new Deferred;declare.safeMixin(this,kwArgs);var props=["add","put","get","load","hasChildren","getChildren","getParents","addParent","query","removeParent","queryEngine","notify","emit","dispatchEvent",
"isItem","ready"];var store=this.store;if(!store)throw new CBTError("ParameterMissing","constructor","Store parameter is required");if(store.parentProperty)this.parentProperty=store.parentProperty;else store.parentProperty=this.parentProperty;props.forEach(function(prop){if(typeof store[prop]=="function"){this._methods[prop]=store[prop];switch(prop){case "add":if(store.hierarchical!==true)aspect.before(store,"add",Prologue);break;case "dispatchEvent":case "emit":if(store.eventable===true){this._evtHandles=
store.on("change, delete, new",lang.hitch(this,this._onStoreEvent));this._observable=false;this._eventable=true}break;case "notify":if(!this._eventable)this._observable=true;break;case "put":if(store.hierarchical!==true)aspect.before(store,"put",Prologue);break}}else switch(prop){case "getChildren":if(typeof store["query"]=="function"){var funcBody="return this.query({"+this.parentProperty+": this.getIdentity(object)}, options);";store.getChildren=new Function(["object","options"],funcBody)}else throw new CBTError("MethodMissing",
"constructor","store MUST support getChildren()"+" or query() method");break;case "isItem":store.isItem=function(object){if(object&&typeof object=="object")return object==this.get(this.getIdentity(object));return false};break;case "get":throw new CBTError("MethodMissing","constructor","store MUST support the get() method");case "hasChildren":case "load":case "ready":this._methods[prop]=returnTrue;break;case "put":this._writeEnabled=false;break}},this);this._monitored=this._eventable||this._observable;
aspect.after(store,"onClose",lang.hitch(this,"_onStoreClosed"),true)},postscript:function(){this.inherited(arguments);this._loadStore(this._loadOptions)},_parentPropertySetter:function(name){if(typeof name=="string"){if(/\./.test(name))throw new CBTError("InvalidType","set","parentProperty can not be a dot separated string");}else throw new CBTError("InvalidType","set","parentProperty value must be a string");return this.checkedAttr},destroy:function(){for(var id in this._childrenCache)this._deleteCacheEntry(id);
this._evtHandles.remove();this._childrenCache={};this._objectCache={};this.store=undef},getChildren:function(parent,onComplete,onError){throw new CBTError("AbstractOnly","getChildren");},getIcon:function(item){if(this.iconAttr)return this._getProp(this.iconAttr,item)},getIdentity:function(item){return this.store.getIdentity(item)},getLabel:function(item){if(item===this.root&&this.rootLabel)return this.rootLabel;return this._getProp(this.labelAttr,item)},getParents:function(storeItem){var deferred=
new Deferred;var parents=[];if(storeItem)if(this._methods.getParents)when(this.store.getParents(storeItem),function(parents){deferred.resolve(parents||[])},deferred.reject);else{var parentIds=new Parents(storeItem,this.parentProperty);var promises=[];parentIds.forEach(function(id){var parent=this.store.get(id);if(parent){when(parent,function(parent){if(parent)parents.push(parent)});promises.push(parent)}},this);all(promises).always(function(){deferred.resolve(parents)})}else deferred.resolve(parents);
return deferred.promise},getRoot:function(onItem,onError){var self=this;if(this.root)when(this._storeReady,function(){onItem(self.root)});else if(this._methods.query)when(this._storeReady,function(){var result=self.store.query(self.query,self.options);when(result,function(items){if(items.length!=1)throw new CBTError("InvalidResponse","getRoot","Root query returned %{0} items, but must return exactly one",items.length);self.root=items[0];if(result.observe)result.observe(function(obj,removedFrom,insertedInto){if(removedFrom==
insertedInto)self._onChange(obj,null)},true);onItem(self.root)},onError)},onError);else throw new CBTError("MethodMissing","getRoot","store has no query() method");},isItem:function(something){return this.store.isItem(something)},mayHaveChildren:function(item){var method=this._methods["hasChildren"];var itemId=this.getIdentity(item);var result=this._childrenCache[itemId];if(result&&!(result instanceof Promise))return!!result.length;return method.call(this.store,item)},isChildOf:function(item,parent){if(parent&&
item){var parents=new Parents(item,this.parentProperty);return parents.contains(this.getIdentity(parent))}return false},deleteItem:function(items,recursive){var items=items instanceof Array?items:[items];var self=this;function getDescendants(item){var itemId=self.getIdentity(item);if(itemId){if(recursive)self.getChildren(item,function(children){children.forEach(getDescendants)});if(self._forest&&item==self.root)self._onDeleteItem(item);else{var result=self.store.remove(itemId);if(!self._monitored)when(result,
function(){self._onDeleteItem(item)})}if(item==self.root)self.root=null}}items.forEach(getDescendants)},ready:function(callback,errback,scope){if(callback||errback)return this._modelReady.then(callback?lang.hitch(scope||this,callback):null,errback?lang.hitch(scope||this,errback):null);return this._modelReady.promise},newItem:function(args,parent,insertIndex,before){var mpStore=parent[this.parentProperty]instanceof Array;var itemId=this.getIdentity(args);var self=this;var result;parent=this._forest&&
parent==this.root?undef:parent;if(itemId!=undef){result=when(this.store.get(itemId),function(item){if(item){var parentIds=new Parents(item,self.parentProperty);if(mpStore){parentIds.add(self.getIdentity(parent),true);item[self.parentProperty]=parentIds.toValue();itemId=self.store.put(item);if(!self._monitored)when(itemId,function(){self._childrenChanged(parent)})}else self.getParents(item).then(function(oldParents){if(oldParents.length)self.pasteItem(item,oldParents[0],parent,false,insertIndex,before)});
return item}else{result=self.store.put(args,{parent:parent,before:before});return when(result,function(itemId){return when(self.store.get(itemId),function(item){if(item)if(!self._monitored)when(result,function(){self._onNewItem(item)});return item})})}});return result}result=this.store.put(args,{parent:parent,before:before});return when(result,function(itemId){return when(self.store.get(itemId),function(item){if(item){if(parent==this.root)self.onRootChange(item,"new");if(!this._monitored)when(result,
function(){self._onNewItem(item)})}return item})})},pasteItem:function(childItem,oldParentItem,newParentItem,bCopy,insertIndex,before){var parentIds=new Parents(childItem,this.parentProperty);var newParentId=this.getIdentity(newParentItem);var oldParentId=this.getIdentity(oldParentItem);var updParents=[newParentItem];var model=this;if(oldParentId!=newParentId){var wasRoot=oldParentItem==this.root;var isRoot=newParentItem==this.root;if(!bCopy){updParents.push(oldParentItem);parentIds.remove(oldParentId)}if(isRoot||
wasRoot)this.onRootChange(childItem,isRoot?"attach":"detach");if(!this._forest||!isRoot)parentIds.add(newParentId)}childItem[this.parentProperty]=parentIds.toValue();var itemId=this.store.put(childItem,{before:before});if(!this._monitored||this._eventable&&before)when(itemId,function(){model._childrenChanged(updParents)});this.onPasteItem(childItem,insertIndex,before)},_onChange:function(newItem,oldItem){var itemId=this.getIdentity(newItem);oldItem=oldItem||this._objectCache[itemId];if(oldItem){var key;
for(key in oldItem)if(key in newItem){if(oldItem[key]!=newItem[key])this._onSetItem(newItem,key,oldItem[key],newItem[key])}else this._onSetItem(newItem,key,oldItem[key],undef);for(key in newItem)if(!(key in oldItem))this._onSetItem(newItem,key,undef,newItem[key])}this._objectCache[itemId]=lang.mixin(null,newItem)},_onChildrenChange:function(parent,newChildrenList){this.onChildrenChange(parent,newChildrenList)},_onDeleteItem:function(item){var id=this.getIdentity(item);var self=this;when(this.store.get(id),
function(exists){if(!exists)delete self._objectCache[id]},function(err){delete self._objectCache[id]});this._deleteCacheEntry(id);this.onDelete(item);this.getParents(item).then(function(parents){if(self.isChildOf(item,self.root))self.onRootChange(item,"delete");self._childrenChanged(parents)})},_onNewItem:function(item){var self=this;this.getParents(item).then(function(parents){if(self.isChildOf(item,self.root))self.onRootChange(item,"new");self._childrenChanged(parents)})},_onSetItem:function(storeItem,
property,oldValue,newValue){var parentProp=this.parentProperty;if(property===parentProp){var np=new Parents(newValue,parentProp);var op=new Parents(oldValue,parentProp);var self=this;var dp=[];np.forEach(function(parent){var a=self;var b=op;if(!op.contains(parent)&&self._objectCache[parent])dp.push(self._objectCache[parent])});op.forEach(function(parent){if(!np.contains(parent)&&self._objectCache[parent])dp.push(self._objectCache[parent])});if(dp.length){self._childrenChanged(dp);this.onChange(storeItem,
property,newValue,oldValue)}}else this.onChange(storeItem,property,newValue,oldValue);return true},_onStoreClosed:function(cleared,count){if(!this._resetPending){var reset=!(count&&cleared);if(reset){for(var id in this._childrenCache)this._deleteCacheEntry(id);this._childrenCache={};this._objectCache={}}if(cleared){var model=this;if(!this._modelReady.isFulfilled())this._modelReady.cancel(new CBTError("RequestCancel","_onStoreClosed"));this._modelReady=new Deferred;this._storeReady=new Deferred;this._loadRequested=
false;this._resetPending=true;this.state="reset";this.onReset();if(!this._forest)this.root=null;this._loadStore().then(function(){model._resetPending=false})}}},_onStoreEvent:function(event){var detail=event;if(event.detail)detail=event.detail;switch(event.type){case "change":this._onChange(detail.item,null);if(detail.from&&detail.from!=detail.at)when(this.getParents(detail.item),lang.hitch(this,"_childrenChanged"));break;case "close":this._onStoreClose(detail.count,detail.cleared);break;case "delete":this._onDeleteItem(detail.item);
break;case "new":this._onNewItem(detail.item);break}},onChange:function(item,property,newValue,oldValue){},onChildrenChange:function(parent,newChildrenList){},onPasteItem:function(storeItem,insertIndex,before){},onDelete:function(storeItem){},onReset:function(){},onRootChange:function(storeItem,action){},_childrenChanged:function(parents){var parentId,self=this;parents=parents instanceof Array?parents:[parents];if(parents&&parents.length)parents.forEach(function(parent){parentId=self.getIdentity(parent);
self._deleteCacheEntry(parentId);self.getChildren(parent,function(children){self._onChildrenChange(parent,children.slice(0))},function(err){console.error(err)})})},_deleteCacheEntry:function(id){if(this._childrenCache[id]){var handle=this._obsHandles[id];handle&&handle.remove();delete this._childrenCache[id];delete this._obsHandles[id]}},_getChildren:function(parent,method,onComplete,onError){var id=this.getIdentity(parent);var self=this;var result=null;if(parent&&id!=undef){if(this._observable&&
this._childrenCache[id]){when(this._childrenCache[id],onComplete,onError);return}self._childrenCache[id]=result=method.call(self,parent,id);if(!this._objectCache[id])this._objectCache[id]=lang.mixin(null,parent);when(result,function(queryResult){queryResult.forEach(function(child){self._objectCache[self.getIdentity(child)]=lang.mixin(null,child)});self._childrenCache[id]=queryResult});if(this._observable&&result.observe){var handle=result.observe(function(obj,removedFrom,insertedInto){if(insertedInto==
-1)when(result,lang.hitch(self,"_onDeleteItem",obj));else if(removedFrom==-1)when(result,lang.hitch(self,"_onNewItem",obj));else if(removedFrom==insertedInto)when(result,lang.hitch(self,"_onChange",obj,null));else when(result,function(children){children=Array.prototype.slice.call(children)})},true);this._obsHandles[id]=handle}}else{result=new Deferred;result.reject(new CBTError("ParameterMissing","_getChildren","No parent object or Id"))}when(result,onComplete,onError)},_getProp:function(propPath,
item){var segm=propPath.split(".");var p,i=0;while(item&&(p=segm[i++]))item=p in item?item[p]:undefined;return item},_loadStore:function(options){if(!this._loadRequested){var ready=this._methods.ready;var loader=this._methods.load;var promList,model=this;this._loadRequested=true;this.state="loading";promList=[loader.call(this.store,options),ready.call(this.store)];this._loadPromise=all(promList).always(function(){return when(ready.call(model.store),function(){model._storeReady.resolve();model._validateStore().then(function(){model._modelReady.resolve();
model.state="active"},function(err){model._modelReady.reject(err);model.state="in-active"});return true},function(err){model._modelReady.reject(err);model._storeReady.reject(err)})})}return this._loadPromise},_setProp:function(propPath,item,value){var segm=propPath.split(".");var prop=segm.pop();if(segm.length){var p,i=0;while(item&&(p=segm[i++]))item=p in item?item[p]:item[p]={}}item[prop]=value;return value},_setValue:function(item,property,value){if(item[property]!==value)if(this._writeEnabled){var orgItem=
lang.mixin(null,item);var result=null;var self=this;this._setProp(property,item,value);result=this.store.put(item,{overwrite:true});if(!this._monitored)when(result,function(){self._onChange(item,orgItem)})}else throw new CBTError("AccessError","_setValue","store is not writable.");return value},_updateChildrenCache:function(operation,parent,child){var parentId=this.getIdentity(parent);var self=this;return when(this._childrenCache[parentId],function(children){var childCache=children||[];var index=
childCache.indexOf(child);var total=childCache.total||0;if(operation=="add"||operation=="attach"){if(index==-1){childCache.push(child);total++}}else if(index>-1){childCache.splice(index,1);total--}childCache["total"]=total;self._childrenCache[parentId]=childCache;return childCache})},_validateStore:function(){var defer=new Deferred;return defer.resolve()}});return BaseStoreModel})},"xapp/types":function(){define("xapp/types",["dojo/_base/declare"],function(declare){return declare("xapp.types",null,
{})})},"dijit/tree/_dndContainer":function(){define("dijit/tree/_dndContainer",["dojo/aspect","dojo/_base/declare","dojo/dom-class","dojo/_base/lang","dojo/on","dojo/touch"],function(aspect,declare,domClass,lang,on,touch){return declare("dijit.tree._dndContainer",null,{constructor:function(tree,params){this.tree=tree;this.node=tree.domNode;lang.mixin(this,params);this.containerState="";domClass.add(this.node,"dojoDndContainer");this.events=[on(this.node,touch.enter,lang.hitch(this,"onOverEvent")),
on(this.node,touch.leave,lang.hitch(this,"onOutEvent")),aspect.after(this.tree,"_onNodeMouseEnter",lang.hitch(this,"onMouseOver"),true),aspect.after(this.tree,"_onNodeMouseLeave",lang.hitch(this,"onMouseOut"),true),on(this.node,"dragstart, selectstart",function(evt){evt.preventDefault()})]},destroy:function(){var h;while(h=this.events.pop())h.remove();this.node=this.parent=null},onMouseOver:function(widget){this.current=widget},onMouseOut:function(){this.current=null},_changeState:function(type,newState){var prefix=
"dojoDnd"+type;var state=type.toLowerCase()+"State";domClass.replace(this.node,prefix+newState,prefix+this[state]);this[state]=newState},_addItemClass:function(node,type){domClass.add(node,"dojoDndItem"+type)},_removeItemClass:function(node,type){domClass.remove(node,"dojoDndItem"+type)},onOverEvent:function(){this._changeState("Container","Over")},onOutEvent:function(){this._changeState("Container","")}})})},"xide/factory/Widgets":function(){define(["dojo/dom-class","dojo/_base/lang","xide/factory",
"xide/types","xide/utils","xide/widgets/Button","xide/widgets/ToggleButton","xide/widgets/ImageWidget","xide/widgets/FileWidget","xide/widgets/SelectWidget","xide/widgets/Expression","xide/widgets/ArgumentsWidget","xide/widgets/RichTextWidget","xide/widgets/JSONEditorWidget","xide/widgets/ExpressionEditor"],function(domClass,lang,factory,types,utils,Button,ToggleButton,ImageWidget,FileWidget,SelectWidget,Expression,ArgumentsWidget,RichTextWidget,JSONEditorWidget,ExpressionEditor){factory.createDijit=
function(json,onChangeHander,storeItem,ci){if(!json.type){0&&console.warn("type is missing for : "+json.title);return null}var _ctrArgs={delegate:onChangeHander,intermediateChanges:true,vertical:ci.vertical!=null?ci.vertical:false,userData:ci};if(ci.widget!=null)lang.mixin(_ctrArgs,ci.widget);if(json.type=="DataWidget"){_ctrArgs=lang.mixin(_ctrArgs,{preload:true,title:"Content Source",value:json.props.value,oriValue:json.props.oriValue,storeItem:storeItem,href:"templates/DataWidget.html"});return new xas.widgets.DataWidget(_ctrArgs)}if(json.type==
"ImageWidget"){_ctrArgs=lang.mixin(_ctrArgs,{preload:true,title:json.title,storeItem:storeItem,href:"templates/ImageWidget.html"});return new ImageWidget(_ctrArgs)}if(json.type=="FileWidget"){_ctrArgs=lang.mixin(_ctrArgs,{preload:true,title:json.props.title||"File",value:json.props.value,oriValue:json.props.oriValue,storeItem:storeItem,href:"templates/DataWidget.html"});return new xide.widgets.FileWidget(_ctrArgs)}if(json.type=="Expression"){_ctrArgs=lang.mixin(_ctrArgs,{preload:true,title:json.props.title||
"Expression",value:json.props.value,oriValue:json.props.oriValue,storeItem:storeItem});return new xide.widgets.Expression(_ctrArgs)}if(json.type=="ExpressionEditor"){_ctrArgs=lang.mixin(_ctrArgs,{preload:true,title:json.props.title||"ExpressionEditor",value:json.props.value,oriValue:json.props.oriValue,storeItem:storeItem});return new xide.widgets.ExpressionEditor(_ctrArgs)}if(json.type=="Arguments"){_ctrArgs=lang.mixin(_ctrArgs,{preload:true,title:json.props.title||"Arguments",value:json.props.value,
oriValue:json.props.oriValue,storeItem:storeItem});return new xide.widgets.ArgumentsWidget(_ctrArgs)}if(json.type=="IconWidget"){_ctrArgs=lang.mixin(_ctrArgs,{preload:true,title:json.title,storeItem:storeItem,href:"templates/IconWidget.html"});return new xas.widgets.IconWidget(_ctrArgs)}var type=json.type;if(json.nativeType){json.props.intermediateChanges=true;type=json.nativeType}var cls=dojo.getObject(type,false,dijit.form);if(!cls){cls=dojo.getObject(type,false,dijit);if(!cls)cls=dojo.getObject(type,
false)}if(!cls)cls=dojo.getObject(type,false,xide.widgets);if(!cls)throw new Error("cannot find your widget type!");var myDijit=null;if(ci.widget!=null)lang.mixin(json.props,ci.widget);try{myDijit=new cls(json.props,json.node)}catch(e){console.error("constructing dijit widget failed : "+e.message);return null}var resultWidget=myDijit;if(json.type=="SelectWidget"){_ctrArgs=lang.mixin(_ctrArgs,{title:json.title,nativeWidget:myDijit});resultWidget=new xide.widgets.SelectWidget(_ctrArgs)}if(json.type==
"TextWidget"){_ctrArgs=lang.mixin(_ctrArgs,{title:json.title,nativeWidget:myDijit});resultWidget=new xide.widgets.SelectWidget(_ctrArgs)}var changeWidget=myDijit;if(resultWidget.nativeWidget)changeWidget=null;if(changeWidget)if(!myDijit instanceof dijit.form.CheckBox)dojo.connect(changeWidget,"onChange",function(item){if(onChangeHander&&onChangeHander.widgetChanged)onChangeHander.widgetChanged(this)});if(!myDijit instanceof dijit.form.CheckBox&&myDijit instanceof dijit.form.Button)dojo.connect(resultWidget,
"onClick",function(item){if(onChangeHander&&onChangeHander.widgetChanged)onChangeHander.widgetChanged(this)});return resultWidget};factory.createWidgetData=function(data,value){var res={type:"",nativeType:null,props:{options:data.options||[]},title:"NoTitle",node:null,autocomplete:true,vertical:data.vertical!=null?data.vertical:false};res.type=utils.getWidgetType(data.type);var name=utils.toString(data.name);var _title=utils.toString(data.title);if(utils.isValidString(_title)&&_title.length>0&&_title[0].length>
0)name=_title;if(data.type==types.ECIType.ENUMERATION){if(!data.options){var options=types.resolveEnumeration(data.enumType);if(options&&options.length>0)res.props.options=options}res.props.value=data.value;res.props.prevValue=data.value;res.type="SelectWidget";res.nativeType="xide.form.Select";res.autocomplete=true}if(data.type==types.ECIType.STRING){res.props.value=data.value;res.props.prevValue=data.value;res.type="TextWidget";res.nativeType="TextBox";res.autocomplete=true}if(data.type==types.ECIType.SCHEMAS){res.props.valueStr=
data.value;res.type="JSONEditorWidget";res.props.newEntryTemplate={isRoot:true,id:"root",schema:"{class:'pmedia.types.CList',items:%query_categories::schema_categories%}"};res.props.initialTemplate=[];res.props.aceEditorOptions={region:"center",value:"",style:"margin: 0; padding: 0; overflow: auto;position:relative;height:100%;width:100%;",theme:"twilight",mode:"json",readOnly:false,tabSize:8,softTabs:true,wordWrap:false,printMargin:120,showPrintMargin:true,highlightActiveLine:true,fontSize:"12px",
showGutter:true}}if(data.type==types.ECIType.JSON_DATA){res.props.valueStr=data.value;res.type="JSONEditorWidget";res.props.newEntryTemplate={isRoot:true,id:"root",schema:"{}"};res.props.initialTemplate=[];res.props.aceEditorOptions={region:"center",value:"",style:"margin: 0; padding: 0; overflow: auto;position:relative;height:100%;width:100%;",theme:"twilight",mode:"json",readOnly:false,tabSize:8,softTabs:true,wordWrap:false,printMargin:120,showPrintMargin:true,highlightActiveLine:true,fontSize:"12px",
showGutter:true}}if(data.type==types.ECIType.QUERIES){res.props.valueStr=data.value;res.type="JSONEditorWidget";res.props.newEntryTemplate={id:"query_categories",query:" SELECT jos_mt_cats.cat_id refId, "+"jos_mt_cats.cat_name res_title, "+"jos_mt_cats.cat_published res_published, "+"jos_mt_cats.cat_parent res_groupId, "+"jos_mt_cats.cat_image res_image "+"FROM jos_mt_cats "};res.props.initialTemplate=[];res.props.aceEditorOptions={region:"center",value:"",style:"margin: 0; padding: 0; overflow: auto;position:relative;height:100%;width:100%;",
theme:"twilight",mode:"sql",readOnly:false,tabSize:4,softTabs:false,wordWrap:true,showPrintMargin:false,highlightActiveLine:false,fontSize:"12px",showGutter:true}}if(data.type==types.ECIType.RELATIONS){res.props.valueStr=data.value;res.type="JSONEditorWidget";res.props.newEntryTemplate={order:-1,type:"ebCategoryDetail"};res.props.initialTemplate=[];res.props.aceEditorOptions={region:"center",value:"",style:"margin: 0; padding: 0; overflow: auto;position:relative;height:100%;width:100%;",theme:"twilight",
mode:"json",readOnly:false,tabSize:4,softTabs:false,wordWrap:true,showPrintMargin:false,highlightActiveLine:false,fontSize:"12px",showGutter:true}}if(data.type==types.ECIType.BOOL){res.props["checked"]=utils.toBoolean(data.value);res.props.value=data.value;res.props.prevValue=data.value;res.type="SelectWidget";res.nativeType="CheckBox"}if(data.type==types.ECIType.IMAGE){res.props.value=data.value;res.type="ImageWidget";if(name=="BACKGROUND")name="Background"}if(data.type==types.ECIType.FILE){res.props.value=
data.value;res.type="FileWidget"}if(data.type==types.ECIType.SCRIPT){res.props.value=data.value;res.type="ScriptWidget"}if(data.type==types.ECIType.RICHTEXT){res.props.value=data.value;res.type="RichTextWidget"}if(data.type==types.ECIType.ICON){res.props.value=data.value;res.type="IconWidget"}if(data.type==types.ECIType.REFERENCE){res.props.disabled=!data.enabled;res.props.innerHTML="Select"}if(res.type===null||res.type==""){var _type=types.resolveWidgetMapping(data.type);if(_type)res.type=_type}res.title=
name;if(res.title==undefined);return res};factory.checkForCustomTypes=function(cis){var addedCIS=[];var removedCIs=[];for(var i=0;i<cis.length;i++){var ci=cis[i];var ciType=utils.toInt(ci.type);if(ciType>types.ECIType.END){var resolved=types.resolveType(ciType);if(resolved){lang.mixin(addedCIS,resolved);removedCIs.push(ci)}}}if(addedCIS.length>0)cis=cis.concat(addedCIS);if(removedCIs)for(var i in removedCIs)cis.remove(removedCIs[i]);return cis};factory.createWidgetsFromArray=function(data,changeHandler,
storeItem,showInvisible){if(data==null)return null;var res=[];data=factory.checkForCustomTypes(data);for(var i=0;i<data.length;i++){var inDef=data[i];if(!inDef)continue;if(showInvisible==false&&utils.toBoolean(inDef.visible)==false)continue;var wData=factory.createWidgetData(inDef,inDef.value);if(!wData)continue;var widget=factory.createDijit(wData,changeHandler,storeItem,inDef);if(!widget)continue;widget["userData"]=inDef;widget["owner"]=changeHandler;widget["storeItem"]=storeItem;widget["order"]=
i;factory.publish(types.EVENTS.ON_CREATED_WIDGET,{ci:inDef,widget:widget,storeItem:storeItem,owner:changeHandler});if(widget.nativeWidget){widget.nativeWidget["userData"]=inDef;widget.nativeWidget["storeItem"]=storeItem}res.push(widget)}res.sort(function(a,b){var orderA=utils.toInt(a.userData.order);var orderB=utils.toInt(b.userData.order);return orderA-orderB});return res};factory.createButton=function(dstNode,iconClass,buttonClass,style,label,onClickCB,delegate){var anchor=dojo.doc.createElement("DIV",
{});var wButton=new xide.widgets.Button({role:"button",showLabel:label?true:false,label:label?label:"",checked:true,iconClass:""+iconClass||"",cssClass:buttonClass,style:""+style||""},anchor);dstNode.appendChild(wButton.domNode);if(onClickCB&&delegate)dojo.connect(wButton,"onClick",lang.hitch(delegate,onClickCB));wButton.startup();if(buttonClass&&buttonClass.length>0&&lang.isString(buttonClass))domClass.add(wButton.domNode,buttonClass);return wButton};factory.createToggleButton=function(dstNode,iconClass,
buttonClass,style,label,onClickCB,delegate,checked){var anchor=dojo.doc.createElement("DIV",{});var wButton=new xide.widgets.ToggleButton({role:"button",showLabel:label?true:false,label:label?label:"",checked:checked,iconClass:""+iconClass||"",cssClass:buttonClass,style:""+style||""},anchor);dstNode.appendChild(wButton.domNode);if(onClickCB&&delegate)dojo.connect(wButton,"onClick",function(item){onClickCB(delegate,wButton)});wButton.startup();if(buttonClass&&buttonClass.length>0)domClass.add(wButton.domNode,
buttonClass);return wButton};factory.createEditBox=function(dstNode,style,labelText,value,onClickCB,delegate){var anchor=dojo.doc.createElement("DIV",{"className":"labelRoot"});var label=null;if(labelText!=null)label=dojo.create("LABEL",{innerHTML:labelText+"",style:""+style||""},anchor);var wButton=new dijit.form.TextBox({value:value?value:"",style:""+style||""},dojo.doc.createElement("DIV"));anchor.appendChild(wButton.domNode);dstNode.appendChild(anchor);domClass.add(anchor,"labelRoot");if(label)wButton["labelNode"]=
label;if(onClickCB&&delegate)dojo.connect(wButton,"onClick",function(item){onClickCB(delegate,wButton)});return wButton};factory.createValidationTextBox=function(dstNode,style,labelText,value,validator,delegate,invalidMessage,missingMessage,toolTipPosition){var anchor=dojo.doc.createElement("DIV",{"className":"labelRoot"});var label=dojo.create("LABEL",{innerHTML:labelText+"",style:""+style||""},anchor);var wButton=new dijit.form.ValidationTextBox({value:value?value:"",style:""+style||"",promptMessage:"Enter new file name",
validator:validator,required:true,delegate:delegate,toolTipPosition:toolTipPosition||["after-centered","before-centered"]},dojo.doc.createElement("DIV"));anchor.appendChild(wButton.domNode);dstNode.appendChild(anchor);domClass.add(anchor,"labelRoot");return wButton};factory.createToolbarButton=function(dstNode,iconClass,buttonClass,style,label,onClickCB,delegate){var anchor=dojo.doc.createElement("DIV",{});var wButton=new dijit.form.Button({role:"button",showLabel:label?true:false,label:label?label:
"",checked:true,iconClass:""+iconClass||"",style:""+style||""},anchor);dstNode.appendChild(wButton.domNode);if(onClickCB&&delegate)dojo.connect(wButton,"onClick",function(item){onClickCB(delegate,wButton)});wButton.startup();if(buttonClass&&buttonClass.length>0)domClass.add(wButton.domNode,buttonClass);return wButton};factory.createCheckBox=function(dstNode,style,labelText,value,onClickCB,delegate,checked,toolTipText,className){var anchor=dojo.doc.createElement("DIV",{});var wButton=new dijit.form.CheckBox({value:value?
value:"",style:""+style||"",checked:checked!=null?checked:false},dojo.doc.createElement("DIV"));anchor.appendChild(wButton.domNode);var label=dojo.create("LABEL",{innerHTML:labelText+"",style:""+style+"margin-right:3px;"||"",id:""+wButton.id+"Label"});anchor.appendChild(label);dstNode.appendChild(anchor);if(onClickCB&&delegate)dojo.connect(wButton,"onClick",function(item){onClickCB(delegate,wButton)});if(toolTipText)var tt=new dijit.Tooltip({innerHTML:toolTipText,showDelay:500,connectId:[""+wButton.id+
"Label"]});if(className)domClass.add(anchor,className);return wButton};return factory})},"dijit/Tree":function(){require({cache:{"url:dijit/templates/TreeNode.html":'\x3cdiv class\x3d"dijitTreeNode" role\x3d"presentation"\n\t\x3e\x3cdiv data-dojo-attach-point\x3d"rowNode" class\x3d"dijitTreeRow" role\x3d"presentation"\n\t\t\x3e\x3cspan data-dojo-attach-point\x3d"expandoNode" class\x3d"dijitInline dijitTreeExpando" role\x3d"presentation"\x3e\x3c/span\n\t\t\x3e\x3cspan data-dojo-attach-point\x3d"expandoNodeText" class\x3d"dijitExpandoText" role\x3d"presentation"\x3e\x3c/span\n\t\t\x3e\x3cspan data-dojo-attach-point\x3d"contentNode"\n\t\t\tclass\x3d"dijitTreeContent" role\x3d"presentation"\x3e\n\t\t\t\x3cspan role\x3d"presentation" class\x3d"dijitInline dijitIcon dijitTreeIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\n\t\t\t\x3e\x3cspan data-dojo-attach-point\x3d"labelNode,focusNode" class\x3d"dijitTreeLabel" role\x3d"treeitem" tabindex\x3d"-1" aria-selected\x3d"false"\x3e\x3c/span\x3e\n\t\t\x3c/span\n\t\x3e\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"containerNode" class\x3d"dijitTreeNodeContainer" role\x3d"presentation" style\x3d"display: none;"\x3e\x3c/div\x3e\n\x3c/div\x3e\n',
"url:dijit/templates/Tree.html":'\x3cdiv role\x3d"tree"\x3e\n\t\x3cdiv class\x3d"dijitInline dijitTreeIndent" style\x3d"position: absolute; top: -9999px" data-dojo-attach-point\x3d"indentDetector"\x3e\x3c/div\x3e\n\t\x3cdiv class\x3d"dijitTreeExpando dijitTreeExpandoLoading" data-dojo-attach-point\x3d"rootLoadingIndicator"\x3e\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"containerNode" class\x3d"dijitTreeContainer" role\x3d"presentation"\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e\n'}});define("dijit/Tree",
["dojo/_base/array","dojo/aspect","dojo/_base/connect","dojo/cookie","dojo/_base/declare","dojo/Deferred","dojo/promise/all","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/errors/create","dojo/fx","dojo/has","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/topic","dojo/touch","dojo/when","./a11yclick","./focus","./registry","./_base/manager","./_Widget","./_TemplatedMixin","./_Container","./_Contained","./_CssStateMixin","./_KeyNavMixin","dojo/text!./templates/TreeNode.html",
"dojo/text!./templates/Tree.html","./tree/TreeStoreModel","./tree/ForestStoreModel","./tree/_dndSelector","dojo/query!css2"],function(array,aspect,connect,cookie,declare,Deferred,all,dom,domClass,domGeometry,domStyle,createError,fxUtils,has,kernel,keys,lang,on,topic,touch,when,a11yclick,focus,registry,manager,_Widget,_TemplatedMixin,_Container,_Contained,_CssStateMixin,_KeyNavMixin,treeNodeTemplate,treeTemplate,TreeStoreModel,ForestStoreModel,_dndSelector){function shimmedPromise(d){return lang.delegate(d.promise||
d,{addCallback:function(callback){this.then(callback)},addErrback:function(errback){this.otherwise(errback)}})}var TreeNode=declare("dijit._TreeNode",[_Widget,_TemplatedMixin,_Container,_Contained,_CssStateMixin],{item:null,isTreeNode:true,label:"",_setLabelAttr:function(val){this.labelNode[this.labelType=="html"?"innerHTML":"innerText"in this.labelNode?"innerText":"textContent"]=val;this._set("label",val)},labelType:"text",isExpandable:null,isExpanded:false,state:"NotLoaded",templateString:treeNodeTemplate,
baseClass:"dijitTreeNode",cssStateNodes:{rowNode:"dijitTreeRow"},_setTooltipAttr:{node:"rowNode",type:"attribute",attribute:"title"},buildRendering:function(){this.inherited(arguments);this._setExpando();this._updateItemClasses(this.item);if(this.isExpandable)this.labelNode.setAttribute("aria-expanded",this.isExpanded);this.setSelected(false)},_setIndentAttr:function(indent){var pixels=Math.max(indent,0)*this.tree._nodePixelIndent+"px";domStyle.set(this.domNode,"backgroundPosition",pixels+" 0px");
domStyle.set(this.rowNode,this.isLeftToRight()?"paddingLeft":"paddingRight",pixels);array.forEach(this.getChildren(),function(child){child.set("indent",indent+1)});this._set("indent",indent)},markProcessing:function(){this.state="Loading";this._setExpando(true)},unmarkProcessing:function(){this._setExpando(false)},_updateItemClasses:function(item){var tree=this.tree,model=tree.model;if(tree._v10Compat&&item===model.root)item=null;this._applyClassAndStyle(item,"icon","Icon");this._applyClassAndStyle(item,
"label","Label");this._applyClassAndStyle(item,"row","Row");this.tree._startPaint(true)},_applyClassAndStyle:function(item,lower,upper){var clsName="_"+lower+"Class";var nodeName=lower+"Node";var oldCls=this[clsName];this[clsName]=this.tree["get"+upper+"Class"](item,this.isExpanded);domClass.replace(this[nodeName],this[clsName]||"",oldCls||"");domStyle.set(this[nodeName],this.tree["get"+upper+"Style"](item,this.isExpanded)||{})},_updateLayout:function(){var parent=this.getParent();if(!parent||!parent.rowNode||
parent.rowNode.style.display=="none")domClass.add(this.domNode,"dijitTreeIsRoot");else domClass.toggle(this.domNode,"dijitTreeIsLast",!this.getNextSibling())},_setExpando:function(processing){var styles=["dijitTreeExpandoLoading","dijitTreeExpandoOpened","dijitTreeExpandoClosed","dijitTreeExpandoLeaf"],_a11yStates=["*","-","+","*"],idx=processing?0:this.isExpandable?this.isExpanded?1:2:3;domClass.replace(this.expandoNode,styles[idx],styles);this.expandoNodeText.innerHTML=_a11yStates[idx]},expand:function(){if(this._expandDeferred)return shimmedPromise(this._expandDeferred);
if(this._collapseDeferred){this._collapseDeferred.cancel();delete this._collapseDeferred}this.isExpanded=true;this.labelNode.setAttribute("aria-expanded","true");if(this.tree.showRoot||this!==this.tree.rootNode)this.containerNode.setAttribute("role","group");domClass.add(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(this==this.tree.rootNode&&this.tree.showRoot)this.tree.domNode.setAttribute("aria-expanded","true");var wipeIn=fxUtils.wipeIn({node:this.containerNode,
duration:manager.defaultDuration});var def=this._expandDeferred=new Deferred(function(){wipeIn.stop()});aspect.after(wipeIn,"onEnd",function(){def.resolve(true)},true);wipeIn.play();return shimmedPromise(def)},collapse:function(){if(this._collapseDeferred)return shimmedPromise(this._collapseDeferred);if(this._expandDeferred){this._expandDeferred.cancel();delete this._expandDeferred}this.isExpanded=false;this.labelNode.setAttribute("aria-expanded","false");if(this==this.tree.rootNode&&this.tree.showRoot)this.tree.domNode.setAttribute("aria-expanded",
"false");domClass.remove(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);var wipeOut=fxUtils.wipeOut({node:this.containerNode,duration:manager.defaultDuration});var def=this._collapseDeferred=new Deferred(function(){wipeOut.stop()});aspect.after(wipeOut,"onEnd",function(){def.resolve(true)},true);wipeOut.play();return shimmedPromise(def)},indent:0,setChildItems:function(items){var tree=this.tree,model=tree.model,defs=[];var oldChildren=this.getChildren();
array.forEach(oldChildren,function(child){_Container.prototype.removeChild.call(this,child)},this);this.defer(function(){array.forEach(oldChildren,function(node){if(!node._destroyed&&!node.getParent()){tree.dndController.removeTreeNode(node);function remove(node){var id=model.getIdentity(node.item),ary=tree._itemNodesMap[id];if(ary.length==1)delete tree._itemNodesMap[id];else{var index=array.indexOf(ary,node);if(index!=-1)ary.splice(index,1)}array.forEach(node.getChildren(),remove)}remove(node);if(tree.persist){var destroyedPath=
array.map(node.getTreePath(),function(item){return tree.model.getIdentity(item)}).join("/");for(var path in tree._openedNodes)if(path.substr(0,destroyedPath.length)==destroyedPath)delete tree._openedNodes[path];tree._saveExpandedNodes()}node.destroyRecursive()}})});this.state="Loaded";if(items&&items.length>0){this.isExpandable=true;array.forEach(items,function(item){var id=model.getIdentity(item),existingNodes=tree._itemNodesMap[id],node;if(existingNodes)for(var i=0;i<existingNodes.length;i++)if(existingNodes[i]&&
!existingNodes[i].getParent()){node=existingNodes[i];node.set("indent",this.indent+1);break}if(!node){node=this.tree._createTreeNode({item:item,tree:tree,isExpandable:model.mayHaveChildren(item),label:tree.getLabel(item),labelType:tree.model&&tree.model.labelType||"text",tooltip:tree.getTooltip(item),ownerDocument:tree.ownerDocument,dir:tree.dir,lang:tree.lang,textDir:tree.textDir,indent:this.indent+1});if(existingNodes)existingNodes.push(node);else tree._itemNodesMap[id]=[node]}this.addChild(node);
if(this.tree.autoExpand||this.tree._state(node))defs.push(tree._expandNode(node))},this);array.forEach(this.getChildren(),function(child){child._updateLayout()})}else this.isExpandable=false;if(this._setExpando)this._setExpando(false);this._updateItemClasses(this.item);var def=all(defs);this.tree._startPaint(def);return shimmedPromise(def)},getTreePath:function(){var node=this;var path=[];while(node&&node!==this.tree.rootNode){path.unshift(node.item);node=node.getParent()}path.unshift(this.tree.rootNode.item);
return path},getIdentity:function(){return this.tree.model.getIdentity(this.item)},removeChild:function(node){this.inherited(arguments);var children=this.getChildren();if(children.length==0){this.isExpandable=false;this.collapse()}array.forEach(children,function(child){child._updateLayout()})},makeExpandable:function(){this.isExpandable=true;this._setExpando(false)},setSelected:function(selected){this.labelNode.setAttribute("aria-selected",selected?"true":"false");domClass.toggle(this.rowNode,"dijitTreeRowSelected",
selected)},focus:function(){focus.focus(this.focusNode)}});if(0)TreeNode.extend({_setTextDirAttr:function(textDir){if(textDir&&(this.textDir!=textDir||!this._created)){this._set("textDir",textDir);this.applyTextDir(this.labelNode);array.forEach(this.getChildren(),function(childNode){childNode.set("textDir",textDir)},this)}}});var Tree=declare("dijit.Tree",[_Widget,_KeyNavMixin,_TemplatedMixin,_CssStateMixin],{baseClass:"dijitTree",store:null,model:null,query:null,label:"",showRoot:true,childrenAttr:["children"],
paths:[],path:[],selectedItems:null,selectedItem:null,openOnClick:false,openOnDblClick:false,templateString:treeTemplate,persist:false,autoExpand:false,dndController:_dndSelector,dndParams:["onDndDrop","itemCreator","onDndCancel","checkAcceptance","checkItemAcceptance","dragThreshold","betweenThreshold"],onDndDrop:null,itemCreator:null,onDndCancel:null,checkAcceptance:null,checkItemAcceptance:null,dragThreshold:5,betweenThreshold:0,_nodePixelIndent:19,_publish:function(topicName,message){topic.publish(this.id,
lang.mixin({tree:this,event:topicName},message||{}))},postMixInProperties:function(){this.tree=this;if(this.autoExpand)this.persist=false;this._itemNodesMap={};if(!this.cookieName&&this.id)this.cookieName=this.id+"SaveStateCookie";this.expandChildrenDeferred=new Deferred;this.pendingCommandsPromise=this.expandChildrenDeferred.promise;this.inherited(arguments)},postCreate:function(){this._initState();var self=this;this.own(on(this.containerNode,on.selector(".dijitTreeNode",touch.enter),function(evt){self._onNodeMouseEnter(registry.byNode(this),
evt)}),on(this.containerNode,on.selector(".dijitTreeNode",touch.leave),function(evt){self._onNodeMouseLeave(registry.byNode(this),evt)}),on(this.containerNode,a11yclick,function(evt){var node=registry.getEnclosingWidget(evt.target);if(node.isInstanceOf(TreeNode))self._onClick(node,evt)}),on(this.containerNode,on.selector(".dijitTreeNode","dblclick"),function(evt){self._onDblClick(registry.byNode(this),evt)}));if(!this.model)this._store2model();this.own(aspect.after(this.model,"onChange",lang.hitch(this,
"_onItemChange"),true),aspect.after(this.model,"onChildrenChange",lang.hitch(this,"_onItemChildrenChange"),true),aspect.after(this.model,"onDelete",lang.hitch(this,"_onItemDelete"),true));this.inherited(arguments);if(this.dndController){if(lang.isString(this.dndController))this.dndController=lang.getObject(this.dndController);var params={};for(var i=0;i<this.dndParams.length;i++)if(this[this.dndParams[i]])params[this.dndParams[i]]=this[this.dndParams[i]];this.dndController=new this.dndController(this,
params)}this._load();this.onLoadDeferred=shimmedPromise(this.pendingCommandsPromise);this.onLoadDeferred.then(lang.hitch(this,"onLoad"))},_store2model:function(){this._v10Compat=true;kernel.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query");var modelParams={id:this.id+"_ForestStoreModel",store:this.store,query:this.query,childrenAttrs:this.childrenAttr};if(this.params.mayHaveChildren)modelParams.mayHaveChildren=lang.hitch(this,"mayHaveChildren");if(this.params.getItemChildren)modelParams.getChildren=
lang.hitch(this,function(item,onComplete,onError){this.getItemChildren(this._v10Compat&&item===this.model.root?null:item,onComplete,onError)});this.model=new ForestStoreModel(modelParams);this.showRoot=Boolean(this.label)},onLoad:function(){},_load:function(){this.model.getRoot(lang.hitch(this,function(item){var rn=this.rootNode=this.tree._createTreeNode({item:item,tree:this,isExpandable:true,label:this.label||this.getLabel(item),labelType:this.model.labelType||"text",textDir:this.textDir,indent:this.showRoot?
0:-1});if(!this.showRoot){rn.rowNode.style.display="none";this.domNode.setAttribute("role","presentation");this.domNode.removeAttribute("aria-expanded");this.domNode.removeAttribute("aria-multiselectable");if(this["aria-label"]){rn.containerNode.setAttribute("aria-label",this["aria-label"]);this.domNode.removeAttribute("aria-label")}else if(this["aria-labelledby"]){rn.containerNode.setAttribute("aria-labelledby",this["aria-labelledby"]);this.domNode.removeAttribute("aria-labelledby")}rn.labelNode.setAttribute("role",
"presentation");rn.containerNode.setAttribute("role","tree");rn.containerNode.setAttribute("aria-expanded","true");rn.containerNode.setAttribute("aria-multiselectable",!this.dndController.singular)}else{this.domNode.setAttribute("aria-multiselectable",!this.dndController.singular);this.rootLoadingIndicator.style.display="none"}this.containerNode.appendChild(rn.domNode);var identity=this.model.getIdentity(item);if(this._itemNodesMap[identity])this._itemNodesMap[identity].push(rn);else this._itemNodesMap[identity]=
[rn];rn._updateLayout();this._expandNode(rn).then(lang.hitch(this,function(){this.rootLoadingIndicator.style.display="none";this.expandChildrenDeferred.resolve(true)}))}),lang.hitch(this,function(err){console.error(this,": error loading root: ",err)}))},getNodesByItem:function(item){if(!item)return[];var identity=lang.isString(item)?item:this.model.getIdentity(item);return[].concat(this._itemNodesMap[identity])},_setSelectedItemAttr:function(item){this.set("selectedItems",[item])},_setSelectedItemsAttr:function(items){var tree=
this;return this.pendingCommandsPromise=this.pendingCommandsPromise.always(lang.hitch(this,function(){var identities=array.map(items,function(item){return!item||lang.isString(item)?item:tree.model.getIdentity(item)});var nodes=[];array.forEach(identities,function(id){nodes=nodes.concat(tree._itemNodesMap[id]||[])});this.set("selectedNodes",nodes)}))},_setPathAttr:function(path){if(path.length)return shimmedPromise(this.set("paths",[path]).then(function(paths){return paths[0]}));else return shimmedPromise(this.set("paths",
[]).then(function(paths){return paths[0]}))},_setPathsAttr:function(paths){var tree=this;function selectPath(path,nodes){var nextPath=path.shift();var nextNode=array.filter(nodes,function(node){return node.getIdentity()==nextPath})[0];if(!!nextNode)if(path.length)return tree._expandNode(nextNode).then(function(){return selectPath(path,nextNode.getChildren())});else return nextNode;else throw new Tree.PathError("Could not expand path at "+nextPath);}return shimmedPromise(this.pendingCommandsPromise=
this.pendingCommandsPromise.always(function(){return all(array.map(paths,function(path){path=array.map(path,function(item){return lang.isString(item)?item:tree.model.getIdentity(item)});if(path.length)return selectPath(path,[tree.rootNode]);else throw new Tree.PathError("Empty path");}))}).then(function setNodes(newNodes){tree.set("selectedNodes",newNodes);return tree.paths}))},_setSelectedNodeAttr:function(node){this.set("selectedNodes",[node])},_setSelectedNodesAttr:function(nodes){this.dndController.setSelection(nodes)},
expandAll:function(){var _this=this;function expand(node){return _this._expandNode(node).then(function(){var childBranches=array.filter(node.getChildren()||[],function(node){return node.isExpandable});return all(array.map(childBranches,expand))})}return shimmedPromise(expand(this.rootNode))},collapseAll:function(){var _this=this;function collapse(node){var childBranches=array.filter(node.getChildren()||[],function(node){return node.isExpandable}),defs=all(array.map(childBranches,collapse));if(!node.isExpanded||
node==_this.rootNode&&!_this.showRoot)return defs;else return defs.then(function(){return _this._collapseNode(node)})}return shimmedPromise(collapse(this.rootNode))},mayHaveChildren:function(){},getItemChildren:function(){},getLabel:function(item){return this.model.getLabel(item)},getIconClass:function(item,opened){return!item||this.model.mayHaveChildren(item)?opened?"dijitFolderOpened":"dijitFolderClosed":"dijitLeaf"},getLabelClass:function(){},getRowClass:function(){},getIconStyle:function(){},
getLabelStyle:function(){},getRowStyle:function(){},getTooltip:function(){return""},_onDownArrow:function(evt,node){var nextNode=this._getNext(node);if(nextNode&&nextNode.isTreeNode)this.focusNode(nextNode)},_onUpArrow:function(evt,node){var previousSibling=node.getPreviousSibling();if(previousSibling){node=previousSibling;while(node.isExpandable&&node.isExpanded&&node.hasChildren()){var children=node.getChildren();node=children[children.length-1]}}else{var parent=node.getParent();if(!(!this.showRoot&&
parent===this.rootNode))node=parent}if(node&&node.isTreeNode)this.focusNode(node)},_onRightArrow:function(evt,node){if(node.isExpandable&&!node.isExpanded)this._expandNode(node);else if(node.hasChildren()){node=node.getChildren()[0];if(node&&node.isTreeNode)this.focusNode(node)}},_onLeftArrow:function(evt,node){if(node.isExpandable&&node.isExpanded)this._collapseNode(node);else{var parent=node.getParent();if(parent&&parent.isTreeNode&&!(!this.showRoot&&parent===this.rootNode))this.focusNode(parent)}},
focusLastChild:function(){var node=this._getLast();if(node&&node.isTreeNode)this.focusNode(node)},_getFirst:function(){return this.showRoot?this.rootNode:this.rootNode.getChildren()[0]},_getLast:function(){var node=this.rootNode;while(node.isExpanded){var c=node.getChildren();if(!c.length)break;node=c[c.length-1]}return node},_getNext:function(node){if(node.isExpandable&&node.isExpanded&&node.hasChildren())return node.getChildren()[0];else{while(node&&node.isTreeNode){var returnNode=node.getNextSibling();
if(returnNode)return returnNode;node=node.getParent()}return null}},childSelector:".dijitTreeRow",isExpandoNode:function(node,widget){return dom.isDescendant(node,widget.expandoNode)||dom.isDescendant(node,widget.expandoNodeText)},_onClick:function(nodeWidget,e){var domElement=e.target,isExpandoClick=this.isExpandoNode(domElement,nodeWidget);if(this.openOnClick&&nodeWidget.isExpandable||isExpandoClick){if(nodeWidget.isExpandable)this._onExpandoClick({node:nodeWidget})}else{this._publish("execute",
{item:nodeWidget.item,node:nodeWidget,evt:e});this.onClick(nodeWidget.item,nodeWidget,e);this.focusNode(nodeWidget)}e.stopPropagation();e.preventDefault()},_onDblClick:function(nodeWidget,e){var domElement=e.target,isExpandoClick=domElement==nodeWidget.expandoNode||domElement==nodeWidget.expandoNodeText;if(this.openOnDblClick&&nodeWidget.isExpandable||isExpandoClick){if(nodeWidget.isExpandable)this._onExpandoClick({node:nodeWidget})}else{this._publish("execute",{item:nodeWidget.item,node:nodeWidget,
evt:e});this.onDblClick(nodeWidget.item,nodeWidget,e);this.focusNode(nodeWidget)}e.stopPropagation();e.preventDefault()},_onExpandoClick:function(message){var node=message.node;this.focusNode(node);if(node.isExpanded)this._collapseNode(node);else this._expandNode(node)},onClick:function(){},onDblClick:function(){},onOpen:function(){},onClose:function(){},_getNextNode:function(node){kernel.deprecated(this.declaredClass+"::_getNextNode(node) is deprecated. Use _getNext(node) instead.","","2.0");return this._getNext(node)},
_getRootOrFirstNode:function(){kernel.deprecated(this.declaredClass+"::_getRootOrFirstNode() is deprecated. Use _getFirst() instead.","","2.0");return this._getFirst()},_collapseNode:function(node){if(node._expandNodeDeferred)delete node._expandNodeDeferred;if(node.state=="Loading")return;if(node.isExpanded){var ret=node.collapse();this.onClose(node.item,node);this._state(node,false);this._startPaint(ret);return ret}},_expandNode:function(node){if(node._expandNodeDeferred)return node._expandNodeDeferred;
var model=this.model,item=node.item,_this=this;if(!node._loadDeferred){node.markProcessing();node._loadDeferred=new Deferred;model.getChildren(item,function(items){node.unmarkProcessing();node.setChildItems(items).then(function(){node._loadDeferred.resolve(items)})},function(err){console.error(_this,": error loading "+node.label+" children: ",err);node._loadDeferred.reject(err)})}var def=node._loadDeferred.then(lang.hitch(this,function(){var def2=node.expand();this.onOpen(node.item,node);this._state(node,
true);return def2}));this._startPaint(def);return def},focusNode:function(node){this.focusChild(node)},_onNodeMouseEnter:function(){},_onNodeMouseLeave:function(){},_onItemChange:function(item){var model=this.model,identity=model.getIdentity(item),nodes=this._itemNodesMap[identity];if(nodes){var label=this.getLabel(item),tooltip=this.getTooltip(item);array.forEach(nodes,function(node){node.set({item:item,label:label,tooltip:tooltip});node._updateItemClasses(item)})}},_onItemChildrenChange:function(parent,
newChildrenList){var model=this.model,identity=model.getIdentity(parent),parentNodes=this._itemNodesMap[identity];if(parentNodes)array.forEach(parentNodes,function(parentNode){parentNode.setChildItems(newChildrenList)})},_onItemDelete:function(item){var model=this.model,identity=model.getIdentity(item),nodes=this._itemNodesMap[identity];if(nodes){array.forEach(nodes,function(node){this.dndController.removeTreeNode(node);var parent=node.getParent();if(parent)parent.removeChild(node);node.destroyRecursive()},
this);delete this._itemNodesMap[identity]}},_initState:function(){this._openedNodes={};if(this.persist&&this.cookieName){var oreo=cookie(this.cookieName);if(oreo)array.forEach(oreo.split(","),function(item){this._openedNodes[item]=true},this)}},_state:function(node,expanded){if(!this.persist)return false;var path=array.map(node.getTreePath(),function(item){return this.model.getIdentity(item)},this).join("/");if(arguments.length===1)return this._openedNodes[path];else{if(expanded)this._openedNodes[path]=
true;else delete this._openedNodes[path];this._saveExpandedNodes()}},_saveExpandedNodes:function(){if(this.persist&&this.cookieName){var ary=[];for(var id in this._openedNodes)ary.push(id);cookie(this.cookieName,ary.join(","),{expires:365})}},destroy:function(){if(this._curSearch){this._curSearch.timer.remove();delete this._curSearch}if(this.rootNode)this.rootNode.destroyRecursive();if(this.dndController&&!lang.isString(this.dndController))this.dndController.destroy();this.rootNode=null;this.inherited(arguments)},
destroyRecursive:function(){this.destroy()},resize:function(changeSize){if(changeSize)domGeometry.setMarginBox(this.domNode,changeSize);this._nodePixelIndent=domGeometry.position(this.tree.indentDetector).w||this._nodePixelIndent;this.expandChildrenDeferred.then(lang.hitch(this,function(){this.rootNode.set("indent",this.showRoot?0:-1);this._adjustWidths()}))},_outstandingPaintOperations:0,_startPaint:function(p){this._outstandingPaintOperations++;if(this._adjustWidthsTimer){this._adjustWidthsTimer.remove();
delete this._adjustWidthsTimer}var oc=lang.hitch(this,function(){this._outstandingPaintOperations--;if(this._outstandingPaintOperations<=0&&!this._adjustWidthsTimer&&this._started)this._adjustWidthsTimer=this.defer("_adjustWidths")});when(p,oc,oc)},_adjustWidths:function(){if(this._adjustWidthsTimer){this._adjustWidthsTimer.remove();delete this._adjustWidthsTimer}this.containerNode.style.width="auto";this.containerNode.style.width=this.domNode.scrollWidth>this.domNode.offsetWidth?"auto":"100%"},_createTreeNode:function(args){return new TreeNode(args)},
focus:function(){if(this.lastFocusedChild)this.focusNode(this.lastFocusedChild);else this.focusFirstChild()}});if(0)Tree.extend({_setTextDirAttr:function(textDir){if(textDir&&this.textDir!=textDir){this._set("textDir",textDir);this.rootNode.set("textDir",textDir)}}});Tree.PathError=createError("TreePathError");Tree._TreeNode=TreeNode;return Tree})},"xide/widgets/FlagsWidget":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","xide/widgets/_CSSMixin","xide/widgets/TemplatedWidgetBase",
"xide/factory","xide/utils"],function(array,declare,html,on,_CSSMixin,WidgetBase,factory,utils){return dojo.declare("xide.widgets.FlagsWidget",[WidgetBase,_CSSMixin],{data:null,cssClass:"xasWidget xasFlagsWidget",title:"NoTitle",value:0,minHeight:"25px;",checkboxRoot:null,lineBreak:false,flagClass:"",checkboxes:null,single:false,templateString:"\x3cdiv\x3e\x3ctable border\x3d'0' cellpadding\x3d'0px' width\x3d'100%'  class\x3d''\x3e"+"\x3ctbody align\x3d'left'\x3e"+"\x3ctr valign\x3d'top' style\x3d''\x3e"+
"\x3ctd valign\x3d'top' data-dojo-attach-point\x3d'checkboxRoot' class\x3d'''\x3e\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e"+"\x3c/div\x3e",widgetChanged:function(dst,widget){dst.checkSettings()},_onFlagChange:function(flagWidget){if(this.single){this.setValue(0);for(var i=0;i<this.checkboxes.length;i++)if(this.checkboxes[i]!=flagWidget)this.checkboxes[i].set("checked",false)}var widgetValue=flagWidget.get("value");var userVal=this.getValue();if(widgetValue===false)userVal=utils.disableFlag(userVal,
flagWidget.value);else userVal+=1<<flagWidget.value;this.setValue(userVal)},isChecked:function(val,itemVal){return utils.hasFlag3(val,itemVal)},initWithData:function(items,_val){var thiz=this;this.checkboxes=[];var cb=function(delegate,widget){thiz._onFlagChange(widget)};for(var i=0;i<items.length;i++){var _checked=this.isChecked(_val,items[i].value);var _flag=factory.createCheckBox(this.checkboxRoot,"margin-left:3px;margin-top:2px;",items[i].label,items[i].value,cb,this,_checked,items[i].description,
this.flagClass);this.checkboxes.push(_flag);_flag["bitValue"]=items[i].value;if(this.lineBreak){var br=dojo.doc.createElement("br");this.checkboxRoot.appendChild(br)}}},setupListeners:function(){},startup:function(){this.inherited(arguments);if(this.data)this.initWithData(this.data,this.value)}})})},"dijit/form/_TextBoxMixin":function(){define("dijit/form/_TextBoxMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/has","dojo/keys","dojo/_base/lang","dojo/on","../main"],function(array,
declare,dom,has,keys,lang,on,dijit){var _TextBoxMixin=declare("dijit.form._TextBoxMixin"+(0?"_NoBidi":""),null,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",_getValueAttr:function(){return this.parse(this.get("displayedValue"),this.constraints)},_setValueAttr:function(value,priorityChange,formattedValue){var filteredValue;if(value!==undefined){filteredValue=this.filter(value);if(typeof formattedValue!="string")if(filteredValue!==null&&
(typeof filteredValue!="number"||!isNaN(filteredValue)))formattedValue=this.filter(this.format(filteredValue,this.constraints));else formattedValue=""}if(formattedValue!=null&&(typeof formattedValue!="number"||!isNaN(formattedValue))&&this.textbox.value!=formattedValue){this.textbox.value=formattedValue;this._set("displayedValue",this.get("displayedValue"))}this.inherited(arguments,[filteredValue,priorityChange])},displayedValue:"",_getDisplayedValueAttr:function(){return this.filter(this.textbox.value)},
_setDisplayedValueAttr:function(value){if(value==null)value="";else if(typeof value!="string")value=String(value);this.textbox.value=value;this._setValueAttr(this.get("value"),undefined);this._set("displayedValue",this.get("displayedValue"))},format:function(value){return value==null?"":value.toString?value.toString():value},parse:function(value){return value},_refreshState:function(){},onInput:function(){},__skipInputEvent:false,_onInput:function(evt){this._processInput(evt);if(this.intermediateChanges)this.defer(function(){this._handleOnChange(this.get("value"),
false)})},_processInput:function(evt){this._refreshState();this._set("displayedValue",this.get("displayedValue"))},postCreate:function(){this.textbox.setAttribute("value",this.textbox.value);this.inherited(arguments);var handleEvent=function(e){var charOrCode;if(e.type=="keydown"){charOrCode=e.keyCode;switch(charOrCode){case keys.SHIFT:case keys.ALT:case keys.CTRL:case keys.META:case keys.CAPS_LOCK:case keys.NUM_LOCK:case keys.SCROLL_LOCK:return}if(!e.ctrlKey&&!e.metaKey&&!e.altKey){switch(charOrCode){case keys.NUMPAD_0:case keys.NUMPAD_1:case keys.NUMPAD_2:case keys.NUMPAD_3:case keys.NUMPAD_4:case keys.NUMPAD_5:case keys.NUMPAD_6:case keys.NUMPAD_7:case keys.NUMPAD_8:case keys.NUMPAD_9:case keys.NUMPAD_MULTIPLY:case keys.NUMPAD_PLUS:case keys.NUMPAD_ENTER:case keys.NUMPAD_MINUS:case keys.NUMPAD_PERIOD:case keys.NUMPAD_DIVIDE:return}if(charOrCode>=
65&&charOrCode<=90||charOrCode>=48&&charOrCode<=57||charOrCode==keys.SPACE)return;var named=false;for(var i in keys)if(keys[i]===e.keyCode){named=true;break}if(!named)return}}charOrCode=e.charCode>=32?String.fromCharCode(e.charCode):e.charCode;if(!charOrCode)charOrCode=e.keyCode>=65&&e.keyCode<=90||e.keyCode>=48&&e.keyCode<=57||e.keyCode==keys.SPACE?String.fromCharCode(e.keyCode):e.keyCode;if(!charOrCode)charOrCode=229;if(e.type=="keypress"){if(typeof charOrCode!="string")return;if(charOrCode>="a"&&
charOrCode<="z"||charOrCode>="A"&&charOrCode<="Z"||charOrCode>="0"&&charOrCode<="9"||charOrCode===" ")if(e.ctrlKey||e.metaKey||e.altKey)return}if(e.type=="input"){if(this.__skipInputEvent){this.__skipInputEvent=false;return}}else this.__skipInputEvent=true;var faux={faux:true},attr;for(attr in e)if(attr!="layerX"&&attr!="layerY"){var v=e[attr];if(typeof v!="function"&&typeof v!="undefined")faux[attr]=v}lang.mixin(faux,{charOrCode:charOrCode,_wasConsumed:false,preventDefault:function(){faux._wasConsumed=
true;e.preventDefault()},stopPropagation:function(){e.stopPropagation()}});if(this.onInput(faux)===false){faux.preventDefault();faux.stopPropagation()}if(faux._wasConsumed)return;this.defer(function(){this._onInput(faux)})};this.own(on(this.textbox,"keydown, keypress, paste, cut, input, compositionend",lang.hitch(this,handleEvent)))},_blankValue:"",filter:function(val){if(val===null)return this._blankValue;if(typeof val!="string")return val;if(this.trim)val=lang.trim(val);if(this.uppercase)val=val.toUpperCase();
if(this.lowercase)val=val.toLowerCase();if(this.propercase)val=val.replace(/[^\s]+/g,function(word){return word.substring(0,1).toUpperCase()+word.substring(1)});return val},_setBlurValue:function(){this._setValueAttr(this.get("value"),true)},_onBlur:function(e){if(this.disabled)return;this._setBlurValue();this.inherited(arguments)},_isTextSelected:function(){return this.textbox.selectionStart!=this.textbox.selectionEnd},_onFocus:function(by){if(this.disabled||this.readOnly)return;if(this.selectOnClick&&
by=="mouse"){this._selectOnClickHandle=on.once(this.domNode,"mouseup, touchend",lang.hitch(this,function(evt){if(!this._isTextSelected())_TextBoxMixin.selectInputText(this.textbox)}));this.own(this._selectOnClickHandle);this.defer(function(){if(this._selectOnClickHandle){this._selectOnClickHandle.remove();this._selectOnClickHandle=null}},500)}this.inherited(arguments);this._refreshState()},reset:function(){this.textbox.value="";this.inherited(arguments)}});if(0)_TextBoxMixin=declare("dijit.form._TextBoxMixin",
_TextBoxMixin,{_setValueAttr:function(){this.inherited(arguments);this.applyTextDir(this.focusNode)},_setDisplayedValueAttr:function(){this.inherited(arguments);this.applyTextDir(this.focusNode)},_onInput:function(){this.applyTextDir(this.focusNode);this.inherited(arguments)}});_TextBoxMixin._setSelectionRange=dijit._setSelectionRange=function(element,start,stop){if(element.setSelectionRange)element.setSelectionRange(start,stop)};_TextBoxMixin.selectInputText=dijit.selectInputText=function(element,
start,stop){element=dom.byId(element);if(isNaN(start))start=0;if(isNaN(stop))stop=element.value?element.value.length:0;try{element.focus();_TextBoxMixin._setSelectionRange(element,start,stop)}catch(e){}};return _TextBoxMixin})},"xfile/views/NewItemDialog":function(){define("xfile/views/NewItemDialog",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-style","dojo/on","xapp/utils","dojo/dom-attr","xide/widgets/_InsertionMixin","xfile/views/ActionDialog","dojo/dom-geometry","xide/types",
"xide/factory"],function(array,declare,html,domStyle,on,utils,domAttr,InsertionMixin,ActionDialog,domGeometry,types,factory){return declare("xfile.views.NewItemDialog",[ActionDialog],{value:null,fileNameValid:true,itemLabel:"folder",onValidated:function(valid){if(this.okButton)this.okButton.set("disabled",!valid)},onNormalKey:function(){if(this.editBox)this.editBox._refreshState(true)},fileNameValidator:function(value,constraints){var thiz=this;var result=false;var reg=new RegExp(/^[0-9a-zA-Z ...\-_ ]+$/);
if(value&&reg.test(value))if(thiz.delegate&&thiz.delegate.hasItem&&thiz.delegate.hasItem(value)){result=false;thiz.promptMessage="Item already exists";thiz.message="Item already exists"}else{result=true;thiz.message="Enter new "+thiz.itemLabel+" name"}else{thiz.promptMessage="This is not a valid "+thiz.itemLabel+" name, try without special characters!";thiz.message="This is not a valid "+thiz.itemLabel+" name, try without special characters!";result=false}this.fileNameValid=result;if(this.owner&&
this.owner.onValidated)this.owner.onValidated(result);return result},getValue:function(){return this.editBox.getValue()},initWithFileOoperation:function(src){this.value=src.name;if(src.name=="..")this.value="";this.itemLabel=this.operation==types.OPERATION.NEW_DIRECTORY?"folder":"file";this.editBox=factory.createValidationTextBox(this.containerNode,"float:left;","Name",src.name,this.fileNameValidator,this.delegate.delegate,"Not a filename!","I need some input");this.editBox.owner=this;this.addActionButtons();
this.fixHeight();this.resize()},startup:function(){this.inherited(arguments);if(this.didLoad)return;this.didLoad=true}})})},"dojo/dom":function(){define(["./sniff","./_base/window"],function(has,win){if(has("ie")<=7)try{document.execCommand("BackgroundImageCache",false,true)}catch(e){}var dom={};if(has("ie"))dom.byId=function(id,doc){if(typeof id!="string")return id;var _d=doc||win.doc,te=id&&_d.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id))return te;else{var eles=_d.all[id];if(!eles||
eles.nodeName)eles=[eles];var i=0;while(te=eles[i++])if(te.attributes&&te.attributes.id&&te.attributes.id.value==id||te.id==id)return te}};else dom.byId=function(id,doc){return(typeof id=="string"?(doc||win.doc).getElementById(id):id)||null};dom.isDescendant=function(node,ancestor){try{node=dom.byId(node);ancestor=dom.byId(ancestor);while(node){if(node==ancestor)return true;node=node.parentNode}}catch(e){}return false};has.add("css-user-select",function(global,doc,element){if(!element)return false;
var style=element.style;var prefixes=["Khtml","O","ms","Moz","Webkit"],i=prefixes.length,name="userSelect",prefix;do if(typeof style[name]!=="undefined")return name;while(i--&&(name=prefixes[i]+"UserSelect"));return false});var cssUserSelect=has("css-user-select");dom.setSelectable=cssUserSelect?function(node,selectable){dom.byId(node).style[cssUserSelect]=selectable?"":"none"}:function(node,selectable){node=dom.byId(node);var nodes=node.getElementsByTagName("*"),i=nodes.length;if(selectable){node.removeAttribute("unselectable");
while(i--)nodes[i].removeAttribute("unselectable")}else{node.setAttribute("unselectable","on");while(i--)nodes[i].setAttribute("unselectable","on")}};return dom})},"xide/views/_ProgressIndicatorMixin":function(){define(["dojo/_base/declare","dojo/_base/lang","dojo/dom-class","dojo/_base/window"],function(declare,lang,domClass,win){return declare("xide.views._ProgressIndicatorMixin",null,{hasProgress:true,_progressNode:null,_progressTemplate:"",showStandBy:function(dstNode,show,timeout){if(show){if(!dstNode.standby){var standbyWidget=
new dojox.widget.Standby({target:dstNode,color:"white",opacity:0.5},dojo.doc.createElement("div"));dojo.place(standbyWidget.domNode,win.body(),"last");standbyWidget.startup();dstNode.standby=standbyWidget}else standbyWidget=dstNode.standby;if(timeout>=0)setTimeout(function(){standbyWidget.hide()},timeout);standbyWidget.show();return standbyWidget}else if(dstNode.standby)dstNode.standby.hide();return null},showProgress:function(show,dstNode){if(show===true)domClass.add(dstNode,"loading");else domClass.remove(dstNode,
"loading")},startup:function(){this.inherited(arguments);if(this.hasProgress);}})})},"dijit/form/_ToggleButtonMixin":function(){define("dijit/form/_ToggleButtonMixin",["dojo/_base/declare","dojo/dom-attr"],function(declare,domAttr){return declare("dijit.form._ToggleButtonMixin",null,{checked:false,_aria_attr:"aria-pressed",_onClick:function(evt){var original=this.checked;this._set("checked",!original);var ret=this.inherited(arguments);this.set("checked",ret?this.checked:original);return ret},_setCheckedAttr:function(value,
priorityChange){this._set("checked",value);var node=this.focusNode||this.domNode;if(this._created)if(domAttr.get(node,"checked")!=!!value)domAttr.set(node,"checked",!!value);node.setAttribute(this._aria_attr,String(value));this._handleOnChange(value,priorityChange)},postCreate:function(){this.inherited(arguments);var node=this.focusNode||this.domNode;if(this.checked)node.setAttribute("checked","checked")},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false)}})})},
"dojox/grid/_RowSelector":function(){define("dojox/grid/_RowSelector",["dojo/_base/declare","./_View"],function(declare,_View){return declare("dojox.grid._RowSelector",_View,{defaultWidth:"2em",noscroll:true,padBorderWidth:2,buildRendering:function(){this.inherited("buildRendering",arguments);this.scrollboxNode.style.overflow="hidden";this.headerNode.style.visibility="hidden"},getWidth:function(){return this.viewWidth||this.defaultWidth},buildRowContent:function(inRowIndex,inRowNode){var w=this.contentWidth||
0;inRowNode.innerHTML='\x3ctable class\x3d"dojoxGridRowbarTable" style\x3d"width:'+w+'px;height:1px;" border\x3d"0" cellspacing\x3d"0" cellpadding\x3d"0" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd class\x3d"dojoxGridRowbarInner"\x3e\x26nbsp;\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e'},renderHeader:function(){},updateRow:function(){},resize:function(){this.adaptHeight()},adaptWidth:function(){if(!("contentWidth"in this)&&this.contentNode&&this.contentNode.offsetWidth>0)this.contentWidth=this.contentNode.offsetWidth-
this.padBorderWidth},doStyleRowNode:function(inRowIndex,inRowNode){var n=["dojoxGridRowbar dojoxGridNonNormalizedCell"];if(this.grid.rows.isOver(inRowIndex))n.push("dojoxGridRowbarOver");if(this.grid.selection.isSelected(inRowIndex))n.push("dojoxGridRowbarSelected");inRowNode.className=n.join(" ")},domouseover:function(e){this.grid.onMouseOverRow(e)},domouseout:function(e){if(!this.isIntraRowEvent(e))this.grid.onMouseOutRow(e)}})})},"cbtree/Evented":function(){define("cbtree/Evented",["dojo/aspect",
"dojo/on"],function(aspect,on){function Evented(){this.on=function(type,listener){function onMethod(target,type){var ctor=target.constructor;var onMap=ctor._onMap;if(!onMap){onMap=ctor._onMap={};for(var attr in ctor.prototype)if(/^on/.test(attr))onMap[attr.replace(/^on/,"").toLowerCase()]=attr}var method=onMap[type.toLowerCase()]||"on"+type;return method}return on.parse(this,type,listener,function(target,type){return aspect.after(target,onMethod(target,type),listener,true)})};this.emit=function(type,
event){var args=[this];if(!event.type)event.type=type;args.push.apply(args,arguments);return on.emit.apply(on,args)}}return Evented})},"xide/widgets/ActionToolbar":function(){define(["../../dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","xide/types","xide/factory","xide/widgets/ActionToolbarButton","dijit/Toolbar","xide/widgets/ActionToolbarMixin"],function(declare,html,domClass,on,types,factory,ActionToolbarButton,Toolbar,ActionToolbarMixin){return dojo.declare("xide.widgets.ActionToolbar",
[Toolbar,ActionToolbarMixin],{_createButton:function(operation,item,clickcb,disabled,add,className){var iconClass=this.toIconClass(operation);var title=this.toTitle(operation);if(iconClass&&title){try{var button=new ActionToolbarButton({title:title,iconClass:iconClass,operation:operation,item:item,disabled:disabled},dojo.doc.createElement("div"));this.containerNode.appendChild(button.domNode);domClass.add(button.domNode,className||"actionToolbarButton");button.startup();if(add===false);else this.buttons.push(button);
var thiz=this;button.domNode.onclick=function(){if(clickcb)clickcb(button);else thiz.onButtonClicked(button)}}catch(e){debugger}if(this.useElusive){domClass.remove(button.iconNode,"dijitReset");domClass.add(button.iconNode,"actionToolbarButtonElusive")}return button}},startup:function(){this.inherited(arguments)}})})},"dojox/mobile/Container":function(){define("dojox/mobile/Container",["dojo/_base/declare","dijit/_Container","./Pane"],function(declare,Container,Pane){return declare("dojox.mobile.Container",
[Pane,Container],{baseClass:"mblContainer"})})},"dijit/form/MappedTextBox":function(){define("dijit/form/MappedTextBox",["dojo/_base/declare","dojo/sniff","dojo/dom-construct","./ValidationTextBox"],function(declare,has,domConstruct,ValidationTextBox){return declare("dijit.form.MappedTextBox",ValidationTextBox,{postMixInProperties:function(){this.inherited(arguments);this.nameAttrSetting=""},_setNameAttr:"valueNode",serialize:function(val){return val.toString?val.toString():""},toString:function(){var val=
this.filter(this.get("value"));return val!=null?typeof val=="string"?val:this.serialize(val,this.constraints):""},validate:function(){this.valueNode.value=this.toString();return this.inherited(arguments)},buildRendering:function(){this.inherited(arguments);this.valueNode=domConstruct.place("\x3cinput type\x3d'hidden'"+(this.name&&!has("msapp")?' name\x3d"'+this.name.replace(/"/g,"\x26quot;")+'"':"")+"/\x3e",this.textbox,"after")},reset:function(){this.valueNode.value="";this.inherited(arguments)}})})},
"xfile/views/CKEditor":function(){define("xfile/views/CKEditor",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dojo/_base/lang","dojo/dom-geometry","xide/widgets/TemplatedWidgetBase","xide/utils"],function(array,declare,html,on,lang,domGeometry,TemplatedWidgetBase,utils){return declare("xfile.views.CKEditor",[TemplatedWidgetBase],{wFloatingPane:null,closeable:true,moduleView:null,didStartup:false,ckEditorRoot:null,ckEditor:null,editorControlsRoot:null,btnSave:null,title:null,
dataItem:null,content:null,titleWidget:null,dataRef:null,sourceType:null,dataName:null,saveButton:true,titleEdit:true,editorContent:null,path:null,removePlugins:null,skin:"kama",loadContent:function(filePath){var thiz=this;var _cb=function(content){thiz.ckEditor.setData(content,"");thiz.ckEditor.focus();setTimeout(function(){thiz.ckEditor.focus()},2E3)};this.delegate.getFileContent(filePath,_cb)},setContent:function(content){if(this.ckEditor)this.ckEditor.setData(content)},getContent:function(){if(this.ckEditor)return this.ckEditor.getData();
return null},templateString:"\x3cdiv class\x3d'ckEditorRoot' data-dojo-type\x3d'dijit.layout.ContentPane' title\x3d'${!title}' data-dojo-attach-point\x3d'wFloatingPane' style\x3d'height: 97%;padding: 0px'\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.layout.ContentPane' style\x3d'height: 99%'\x3e"+"\x3cdiv data-dojo-attach-point\x3d'ckEditorRoot' style\x3d'height: 99%'\x3e\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",createEditorControls:function(){},onHide:function(){},onClose:function(){this.ckEditor.destroy();
utils.destroyWidget(this.ckEditor);utils.destroyWidget(this);this.inherited(arguments)},destroy:function(){},attachCKEditor:function(){var thiz=this;this.ckEditorRoot.id=this.id+"_Editor";var rootId=this.ckEditorRoot.id;this.ckEditor=CKEDITOR.replace(rootId,{removePlugins:this.removePlugins!=null?this.removePlugins:"docprops,colordialog,div,link,scayt,showblocks,specialchar,devtools,pastefromword,pastetext,iframe,iframedialog,liststyle,wsc,styles,find,smiley,source,styles,fonts,table,tableresize,templates,flash,iframe,image,link,forms,div,pagebreak,styles,xml,scayt,showblocks,uicolor",
startupFocus:true,height:"100%",on:{instanceReady:function(ev){this.focus()}}});if(this.content!=null)this.ckEditor.setData(this.content,"");else if(this.path)this.loadContent(this.path);this.ckEditor.focus();setTimeout(function(){thiz.ckEditor.focus()},2E3)},saveContentCB:function(thiz,res){},saveContent:function(){var refId=utils.toInt(this.dataItem.uid);var content=this.ckEditor.getData();if(sctx&&sctx.getContentManager&&sctx.getContentManager())var newId=sctx.getContentManager().saveContent(this,
this.saveContentCB,refId,content,"Content",this.titleWidget.value)},startup:function(){if(this.didStartup)return;this.set("closable",true);this.inherited(arguments);this.didStartup=true;this.attachCKEditor()}})})},"xas/manager/ToolTipManager":function(){define(["dojo/_base/declare","xas/manager/ServerActionBase"],function(declare,ServerActionBase){return dojo.declare("xas.manager.ToolTipManager",[ServerActionBase],{serverActionName:"TooltipManager",cache:null,toolTipTrack:null,initCache:function(cache){if(!this.toolTipTrack)this.toolTipTrack=
[];if(!this.cache)if(cache)this.cache=cache;else this.cache=new Hashtable},getToolTipContent:function(key,lang,cb){this.check();key=xapp.utils.toString(key);this.initCache(null);if(!lang)lang="en";var ttip=this.cache.get(key);if(ttip){ttip.counter=ttip.counter+1;if(ttip.counter>3)return null;if(cb)cb(ttip.content);else return ttip.content}else{var thiz=this;var defered=this.serviceObject.getToolTip(key,lang);var cbt=function(res){thiz.cache.put(key,{content:res,counter:0});if(cbt)cb(res)};defered.addCallback(cbt)}return null}})})},
"url:dijit/templates/TreeNode.html":'\x3cdiv class\x3d"dijitTreeNode" role\x3d"presentation"\n\t\x3e\x3cdiv data-dojo-attach-point\x3d"rowNode" class\x3d"dijitTreeRow" role\x3d"presentation"\n\t\t\x3e\x3cspan data-dojo-attach-point\x3d"expandoNode" class\x3d"dijitInline dijitTreeExpando" role\x3d"presentation"\x3e\x3c/span\n\t\t\x3e\x3cspan data-dojo-attach-point\x3d"expandoNodeText" class\x3d"dijitExpandoText" role\x3d"presentation"\x3e\x3c/span\n\t\t\x3e\x3cspan data-dojo-attach-point\x3d"contentNode"\n\t\t\tclass\x3d"dijitTreeContent" role\x3d"presentation"\x3e\n\t\t\t\x3cspan role\x3d"presentation" class\x3d"dijitInline dijitIcon dijitTreeIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\n\t\t\t\x3e\x3cspan data-dojo-attach-point\x3d"labelNode,focusNode" class\x3d"dijitTreeLabel" role\x3d"treeitem" tabindex\x3d"-1" aria-selected\x3d"false"\x3e\x3c/span\x3e\n\t\t\x3c/span\n\t\x3e\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"containerNode" class\x3d"dijitTreeNodeContainer" role\x3d"presentation" style\x3d"display: none;"\x3e\x3c/div\x3e\n\x3c/div\x3e\n',
"xide/views/ActionDialog":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-style","dojo/on","xas/views/Dialog","xide/utils","dojo/dom-attr","xide/widgets/_InsertionMixin","dojo/dom-geometry","./KeyboardHandlerLight","xide/widgets/_CSSMixin","dojo/dom-class","dojo/window","dojox/layout/ResizeHandle","xide/factory","xide/types"],function(array,declare,html,domStyle,on,Dialog,utils,domAttr,InsertionMixin,domGeometry,KeyboardHandler,_CSSMixin,domClass,winUtils,ResizeHandle,
factory,types){return declare("xide.views.ActionDialog",[Dialog,InsertionMixin,KeyboardHandler,_CSSMixin],{ctx:null,model:null,delegate:null,didLoad:false,inserts:null,actionBar:null,autoDestroy:true,autoActionButtons:true,cssClass:"ui-state-default",titleBarClass:null,focusedButton:"ok",autofocus:false,dialogClass:"",resizeable:false,resizeToContent:true,_didOk:false,_size:function(){this._checkIfSingleChild();if(this._singleChild){if(typeof this._singleChildOriginalStyle!="undefined"){this._singleChild.domNode.style.cssText=
this._singleChildOriginalStyle;delete this._singleChildOriginalStyle}}else;var bb=domGeometry.position(this.domNode);var viewport=winUtils.getBox(this.ownerDocument);viewport.w*=this.maxRatio;viewport.h*=this.maxRatio;if(bb.w>=viewport.w||bb.h>=viewport.h){var containerSize=domGeometry.position(this.containerNode),w=Math.min(bb.w,viewport.w)-(bb.w-containerSize.w),h=Math.min(bb.h,viewport.h)-(bb.h-containerSize.h);if(this._singleChild&&this._singleChild.resize){if(typeof this._singleChildOriginalStyle==
"undefined")this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;this._singleChild.resize({w:w,h:h})}else domStyle.set(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"})}else if(this._singleChild&&this._singleChild.resize)this._singleChild.resize()},_resizeToContent:function(){var actionBox=domGeometry.getMarginBox(this.actionBar);var contentBox=domGeometry.getMarginBox(this.containerNode);var titleBox=domGeometry.getMarginBox(this.titleBar);var box=
domGeometry.getMarginBox(this.domNode);var newHeight=actionBox.h+contentBox.h+titleBox.h;domStyle.set(this.domNode,{height:newHeight+"px"})},hide:function(){var thiz=this;if(this.autoDestroy)setTimeout(function(){utils.destroyWidget(thiz)},500)},buildRendering:function(){this.inherited(arguments);domClass.add(this.domNode,this.dialogClass);domClass.add(this.domNode,"resizableDialog")},postMixInProperties:function(){this.inherited(arguments);var ctxo=this.ctx;if(ctxo&&ctxo.getLocals)this._messages=
ctxo.getLocals("dijit","common")||this._messages},openItem:function(){this.onOk()},onOk:function(){if(this._didOk){this.hide();return}this._didOk=true;if(this.delegate&&this.delegate.onOk)try{this.delegate.onOk(this)}catch(e){0&&console.log("crash in action dialog onOk "+e)}try{this.hide()}catch(e){debugger}},onCancel:function(){if(this.delegate&&this.delegate.onCancel)this.delegate.onCancel(this);try{this.hide()}catch(e){}},resize2:function(coords){if(coords){domAttr.set(this.domNode,"height","inherit");
dojo.style(this.domNode,"height","inherit");domAttr.set(this.domNode,"width","inherit");dojo.style(this.domNode,"width","inherit");var computedStyle=domStyle.getComputedStyle(this.containerNode);var output=domGeometry.getPadExtents(this.containerNode,computedStyle);var c={w:coords.w-output.w,h:coords.h-output.h};c.h-=domGeometry.getMarginBox(this.titleBar).h;var contentArea=dojo.query(".dijitDialogPaneContent",this.domNode)[0];var actionArea=dojo.query(".dijitDialogPaneActionBar",this.domNode)[0];
c.h-=domGeometry.getMarginBox(actionArea).h;c.h-=20;if(c.w)dojo.style(contentArea,"width",c.w+"px");if(c.h)dojo.style(contentArea,"height",c.h+"px");dojo.forEach(this.getChildren(),dojo.hitch(this,function(child){if(child.resize)child.resize({w:c.w,h:c.h-27})}));factory.publish(types.EVENTS.RESIZE,{},this)}},addActionButtons:function(){if(this.actionBar)return;var t=this.translate("buttonOk",false);var buttonDiv=dojo.create("div",{className:"ui-widget-content",style:"bottom: 0;left: 0;position: absolute;width: 100%;margin:0px;padding:0px;text-align:right;"});
this.actionBar=buttonDiv;var thiz=this;this.domNode.appendChild(buttonDiv);var buttonOk=new dijit.form.Button({innerHTML:this.translate("buttonOk",false),onClick:function(e){e.preventDefault();thiz.onOk()}});this.okButton=buttonOk;buttonDiv.appendChild(buttonOk.domNode);buttonOk.startup();var buttonCancel=new dijit.form.Button({innerHTML:this.translate("buttonCancel",false),style:this.resizeable===true?"margin-right:15px":"",onClick:function(){thiz.onCancel();thiz.hide();thiz.destroyRecursive()}});
buttonDiv.appendChild(buttonCancel.domNode);buttonCancel.startup();this.cancelButton=buttonCancel;domClass.add(this.okButton.domNode,"ui-button ui-widget-content");domClass.add(this.cancelButton.domNode,"ui-button ui-widget-content");if(this.resizeable){var div=dojo.doc.createElement("div");buttonDiv.appendChild(div);new ResizeHandle({targetId:this.id},div)}domClass.add(this.containerNode,"ui-widget-content")},fixHeight:function(){var actionBox=domGeometry.getMarginBox(this.actionBar);var box=domGeometry.getMarginBox(this.domNode);
var newHeight=box.h+actionBox.h;domStyle.set(this.domNode,{height:newHeight+"px"});var thiz=this;setTimeout(function(){domStyle.set(thiz.containerNode,{height:"inherit"})},1E3)},show:function(){this.inherited(arguments);if(this.resizeToContent)this._resizeToContent();var thiz=this;if(this.focusedButton==="ok"&&this.okButton){thiz.okButton.focus();thiz.okButton.domNode.focus()}},startup:function(){this.inherited(arguments);if(this.didLoad)return;this.didLoad=true;domClass.add(this.titleBar,"ui-widget-content");
var thiz=this;if(this.inserts)this.doInserts(this.inserts);on(this.domNode,"keydown",function(event){thiz.onKey(event)});if(this.autoActionButtons)this.addActionButtons();if(this.titleBarClass)domClass.add(this.titleBar,this.titleBarClass);if(this.focusedButton&&this.okButton)setTimeout(function(){thiz.okButton.domNode.focus()},500)}})})},"dojox/mobile/ProgressIndicator":function(){define("dojox/mobile/ProgressIndicator",["dojo/_base/config","dojo/_base/declare","dojo/_base/lang","dojo/dom-class",
"dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/has","dijit/_Contained","dijit/_WidgetBase","./_css3"],function(config,declare,lang,domClass,domConstruct,domGeometry,domStyle,has,Contained,WidgetBase,css3){var cls=declare("dojox.mobile.ProgressIndicator",[WidgetBase,Contained],{interval:100,size:40,removeOnStop:true,startSpinning:false,center:true,colors:null,baseClass:"mblProgressIndicator",constructor:function(){this.colors=[];this._bars=[]},buildRendering:function(){this.inherited(arguments);
if(this.center)domClass.add(this.domNode,"mblProgressIndicatorCenter");this.containerNode=domConstruct.create("div",{className:"mblProgContainer"},this.domNode);this.spinnerNode=domConstruct.create("div",null,this.containerNode);for(var i=0;i<12;i++){var div=domConstruct.create("div",{className:"mblProg mblProg"+i},this.spinnerNode);this._bars.push(div)}this.scale(this.size);if(this.startSpinning)this.start()},scale:function(size){var scale=size/40;domStyle.set(this.containerNode,css3.add({},{transform:"scale("+
scale+")",transformOrigin:"0 0"}));domGeometry.setMarginBox(this.domNode,{w:size,h:size});domGeometry.setMarginBox(this.containerNode,{w:size/scale,h:size/scale})},start:function(){if(this.imageNode){var img=this.imageNode;var l=Math.round((this.containerNode.offsetWidth-img.offsetWidth)/2);var t=Math.round((this.containerNode.offsetHeight-img.offsetHeight)/2);img.style.margin=t+"px "+l+"px";return}var cntr=0;var _this=this;var n=12;this.timer=setInterval(function(){cntr--;cntr=cntr<0?n-1:cntr;var c=
_this.colors;for(var i=0;i<n;i++){var idx=(cntr+i)%n;if(c[idx])_this._bars[i].style.backgroundColor=c[idx];else domClass.replace(_this._bars[i],"mblProg"+idx+"Color","mblProg"+(idx===n-1?0:idx+1)+"Color")}},this.interval)},stop:function(){if(this.timer)clearInterval(this.timer);this.timer=null;if(this.removeOnStop&&this.domNode&&this.domNode.parentNode)this.domNode.parentNode.removeChild(this.domNode)},setImage:function(file){if(file){this.imageNode=domConstruct.create("img",{src:file},this.containerNode);
this.spinnerNode.style.display="none"}else{if(this.imageNode){this.containerNode.removeChild(this.imageNode);this.imageNode=null}this.spinnerNode.style.display=""}},destroy:function(){this.inherited(arguments);if(this===cls._instance)cls._instance=null}});cls._instance=null;cls.getInstance=function(props){if(!cls._instance)cls._instance=new cls(props);return cls._instance};return cls})},"cbtree/util/QueryEngine":function(){define("cbtree/util/QueryEngine",["module","../errors/createError!../errors/CBTErrors.json",
"./shim/Array"],function(module,createError){var CBTError=createError(module.id);function contains(valueA,valueB,ignoreCase){if(valueB){if(valueB.test)return valueA.some(function(value){return valueB.test(value)});if(valueB instanceof Array)return valueB.every(function(value){value=ignoreCase&&value.toLowerCase?value.toLowerCase():value;return contains(valueA,value,ignoreCase)});if(ignoreCase)return valueA.some(function(value){value=ignoreCase&&value.toLowerCase?value.toLowerCase():value;return value==
valueB});return valueA.indexOf(valueB)!=-1}return false}function getProp(path,object){var segm=path.split(".");var p,i=0;while(object&&(p=segm[i++]))object=p in object?object[p]:undefined;return object}function hasPropertyPath(query){if(query)for(var key in query)if(/\./.test(key))return true;return false}function match(valueA,valueB,ignoreCase){if(ignoreCase&&valueB&&!valueB.test){valueB=valueB.toLowerCase?valueB.toLowerCase():valueB;valueA=valueA.toLowerCase?valueA.toLowerCase():valueA}if(valueB==
valueA)return true;if(valueA instanceof Array)return contains(valueA,valueB,ignoreCase);if(valueB&&valueB.test)return valueB.test(valueA);if(valueB instanceof Array)return anyOf(valueA,valueB,ignoreCase);return false}function anyOf(valueA,valueB,ignoreCase){return valueB.some(function(value){return match(valueA,value,ignoreCase)})}var QueryEngine=function(query,options){var ignoreCase=options&&!!options.ignoreCase;var queryFunc=function(){};var hasDotPath=false;switch(typeof query){case "undefined":case "object":hasDotPath=
hasPropertyPath(query);queryFunc=function(object){var key,value,required;for(key in query){required=query[key];value=hasDotPath?getProp(key,object):object[key];if(!match(value,required,ignoreCase)){if(typeof required=="function")if(required(value,key,object))continue;return false}}return true};break;case "string":if(!this[query]||typeof this[query]!="function")throw new CBTError("MethodMissing","QueryEngine","No filter function "+query+" was found in store");queryFunc=this[query];break;case "function":queryFunc=
query;break;default:throw new CBTError("InvalidType","QueryEngine","Can not query with a "+typeof query);}function execute(objects,noFilter){var objects=objects||[];var sortSet=options&&options.sort;var results=noFilter?objects:objects.filter(queryFunc);var sortFunc=sortSet;if(sortSet){if(typeof sortFunc!="function")sortFunc=function(a,b){var i,sort,prop,valA,valB;for(i=0;sort=sortSet[i];i++){prop=sort.property||sort.attribute;valA=getProp(prop,a);valB=getProp(prop,b);if(sort.ignoreCase){valA=valA&&
valA.toLowerCase?valA.toLowerCase():valA;valB=valB&&valB.toLowerCase?valB.toLowerCase():valB}if(valA!=valB)return!!sort.descending==(valA==null||valA>valB)?-1:1}return 0};results.sort(sortFunc)}if(options&&(options.start||options.count)){var total=results.length;results=results.slice(options.start||0,(options.start||0)+(options.count||Infinity));results.total=total}return results}execute.matches=queryFunc;return execute};return QueryEngine})},"xas/utils":function(){define(["../dojo/_base/declare"],
function(declare){return declare("xas.utils",null,{})})},"dojo/_base/sniff":function(){define(["./kernel","./lang","../sniff"],function(dojo,lang,has){if(!1)return has;dojo._name="browser";lang.mixin(dojo,{isBrowser:true,isFF:has("ff"),isIE:has("ie"),isKhtml:has("khtml"),isWebKit:has("webkit"),isMozilla:has("mozilla"),isMoz:has("mozilla"),isOpera:has("opera"),isSafari:has("safari"),isChrome:has("chrome"),isMac:has("mac"),isIos:has("ios"),isAndroid:has("android"),isWii:has("wii"),isQuirks:has("quirks"),
isAir:has("air")});return has})},"xide/views/TextEditor":function(){define(["dojo/_base/declare","dojo/_base/lang","dijit/_Widget","dijit/layout/_LayoutWidget","dojo/dom-construct","dojo/dom-style","dojo/has"],function(declare,lang,_Widget,_LayoutWidget,domConstruct,domStyle,has){return declare("xide.views.TextEditor",[_Widget],{_aceConfig:null,focus:function(){if(this.editor){this.editor.resize();this.editor.renderer.updateFull();this.editor.focus()}},addAutoCompleter:function(list){var editor=this.getEditor();
var langTools=ace.require("ace/ext/language_tools");var rhymeCompleter={getCompletions:function(editor,session,pos,prefix,callback){if(prefix.length===0){callback(null,[]);return}callback(null,list.map(function(ea){return{name:ea.word,value:ea.word,meta:"optional text"}}))}};langTools.addCompleter(rhymeCompleter)},onEditorReady:function(){var editor=this.getEditor();var config=this._aceConfig;editor.commands.addCommands([{name:"gotoline",bindKey:{win:"Ctrl-L",mac:"Command-L"},exec:function(editor,
line){if(typeof line=="object"){var arg=this.name+" "+editor.getCursorPosition().row;editor.cmdLine.setValue(arg,1);editor.cmdLine.focus();return}line=parseInt(line,10);if(!isNaN(line))editor.gotoLine(line)},readOnly:true},{name:"snippet",bindKey:{win:"Alt-C",mac:"Command-Alt-C"},exec:function(editor,needle){if(typeof needle=="object"){editor.cmdLine.setValue("snippet ",1);editor.cmdLine.focus();return}var s=snippetManager.getSnippetByName(needle,editor);if(s)snippetManager.insertSnippet(editor,s.content)},
readOnly:true},{name:"increaseFontSize",bindKey:"Ctrl-+",exec:function(editor){var size=parseInt(editor.getFontSize(),10)||12;editor.setFontSize(size+1)}},{name:"decreaseFontSize",bindKey:"Ctrl+-",exec:function(editor){var size=parseInt(editor.getFontSize(),10)||12;editor.setFontSize(Math.max(size-1||1))}},{name:"resetFontSize",bindKey:"Ctrl+0",exec:function(editor){editor.setFontSize(12)}}]);this.focus()},setOptions:function(opts){var editor=this.getEditor();this.editor.session.setUseWorker(true);
editor.setOptions({enableBasicAutocompletion:true,enableSnippets:true});editor.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())};this.onEditorReady();return;var that=this;this.options=opts||{mode:"javascript",fontsize:"12",printmargincolumn:80,showprintmargin:false,showinvisibles:false,highlightactiveline:false,wraplimitrange:80,enablesoftwrap:false,keyboard:"textinput",enablesofttabs:true,tabsize:2};this.setMode(this.options.mode);return;ace.config.loadModule(["keybinding",
"ace/keyboard/"+this.options.keyboard],function(binding){if(binding&&binding.handler)that.editor.setKeyboardHandler(binding.handler)});editor.setPrintMarginColumn(this.options.printmargincolumn);editor.setShowPrintMargin(this.options.showprintmargin);editor.setShowInvisibles(this.options.showinvisibles);editor.setHighlightActiveLine(this.options.highlightactiveline);editor.getSession().setUseWrapMode(this.options.enablesoftwrap);editor.getSession().setWrapLimitRange(this.options.wraplimitrange,this.options.wraplimitrange);
editor.getSession().setUseSoftTabs(this.options.enablesofttabs);editor.getSession().setTabSize(this.options.tabsize);return this},getEditor:function(){return this.editor},buildRendering:function(){this.inherited("buildRendering",arguments);var node=domConstruct.create("div");domStyle.set(node,{padding:"0",margin:"0","className":"editor-ace ace_editor ace-codebox-dark ace_dark"});var editor=this.getEditor();var config=ace.require("ace/config");this._aceConfig=config;config.init();ace.require("ace/ext/language_tools");
this.editor=ace.edit(node);this.editorSession=this.editor.getSession();this.domNode=node},set:function(key,value){var self=this;if(key=="value")this.editorSession.setValue(value);else if(key=="theme");else if(key=="mode"){if(typeof value!="string")this.editorSession.setMode(value);try{if(1)ace.require(["ace/mode/"+value],function(modeModule){if(modeModule&&modeModule.Mode)self.editorSession.setMode(new modeModule.Mode);else console.error("ace mode load failed : "+value)})}catch(e){console.error("ace mode failed : "+
value)}}else if(key=="readOnly")this.editor.setReadOnly(value);else if(key=="tabSize")this.editorSession.setTabSize(value);else if(key=="softTabs")this.editorSession.setUseSoftTabs(value);else if(key=="wordWrap")this.editorSession.setUseWrapMode(value);else if(key=="printMargin")this.editor.renderer.setPrintMarginColumn(value);else if(key=="showPrintMargin")this.editor.setShowPrintMargin(value);else if(key=="highlightActiveLine")this.editor.setHighlightActiveLine(value);else if(key=="fontSize")domStyle.set(this.domNode,
key,value);else if(key=="showGutter")this.editor.renderer.setShowGutter(value);return this.inherited("set",arguments)},get:function(key){if(key=="value")return this.editorSession.getValue();return this.inherited("get",arguments)},startup:function(){},resize:function(size){if(size)_LayoutWidget.prototype.resize.apply(this,arguments);var self=this;this._resizer=setTimeout(lang.hitch(self,function(){delete self._resizer;self.editor.resize()}),10)},layout:function(){this._layoutMode=true},destroy:function(){if(this._resizer){clearTimeout(this._resizer);
delete this._resizer}return this.inherited("destroy",arguments)}})})},"dijit/form/_AutoCompleterMixin":function(){define("dijit/form/_AutoCompleterMixin",["dojo/aspect","dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/_base/lang","dojo/query","dojo/regexp","dojo/sniff","./DataList","./_TextBoxMixin","./_SearchMixin"],function(aspect,declare,domAttr,keys,lang,query,regexp,has,DataList,_TextBoxMixin,SearchMixin){var AutoCompleterMixin=declare("dijit.form._AutoCompleterMixin",SearchMixin,{item:null,
autoComplete:true,highlightMatch:"first",labelAttr:"",labelType:"text",maxHeight:-1,_stopClickEvents:false,_getCaretPos:function(element){var pos=0;if(typeof element.selectionStart=="number")pos=element.selectionStart;else if(has("ie")){var tr=element.ownerDocument.selection.createRange().duplicate();var ntr=element.createTextRange();tr.move("character",0);ntr.move("character",0);try{ntr.setEndPoint("EndToEnd",tr);pos=String(ntr.text).replace(/\r/g,"").length}catch(e){}}return pos},_setCaretPos:function(element,
location){location=parseInt(location);_TextBoxMixin.selectInputText(element,location,location)},_setDisabledAttr:function(value){this.inherited(arguments);this.domNode.setAttribute("aria-disabled",value?"true":"false")},_onKey:function(evt){if(evt.charCode>=32)return;var key=evt.charCode||evt.keyCode;if(key==keys.ALT||key==keys.CTRL||key==keys.META||key==keys.SHIFT)return;var pw=this.dropDown;var highlighted=null;this._abortQuery();this.inherited(arguments);if(evt.altKey||evt.ctrlKey||evt.metaKey)return;
if(this._opened)highlighted=pw.getHighlightedOption();switch(key){case keys.PAGE_DOWN:case keys.DOWN_ARROW:case keys.PAGE_UP:case keys.UP_ARROW:if(this._opened)this._announceOption(highlighted);evt.stopPropagation();evt.preventDefault();break;case keys.ENTER:if(highlighted){if(highlighted==pw.nextButton){this._nextSearch(1);evt.stopPropagation();evt.preventDefault();break}else if(highlighted==pw.previousButton){this._nextSearch(-1);evt.stopPropagation();evt.preventDefault();break}evt.stopPropagation();
evt.preventDefault()}else{this._setBlurValue();this._setCaretPos(this.focusNode,this.focusNode.value.length)}case keys.TAB:var newvalue=this.get("displayedValue");if(pw&&(newvalue==pw._messages["previousMessage"]||newvalue==pw._messages["nextMessage"]))break;if(highlighted)this._selectOption(highlighted);case keys.ESCAPE:if(this._opened){this._lastQuery=null;this.closeDropDown()}break}},_autoCompleteText:function(text){var fn=this.focusNode;_TextBoxMixin.selectInputText(fn,fn.value.length);var caseFilter=
this.ignoreCase?"toLowerCase":"substr";if(text[caseFilter](0).indexOf(this.focusNode.value[caseFilter](0))==0){var cpos=this.autoComplete?this._getCaretPos(fn):fn.value.length;if(cpos+1>fn.value.length){fn.value=text;_TextBoxMixin.selectInputText(fn,cpos)}}else{fn.value=text;_TextBoxMixin.selectInputText(fn)}},_openResultList:function(results,query,options){var wasSelected=this.dropDown.getHighlightedOption();this.dropDown.clearResultList();if(!results.length&&options.start==0){this.closeDropDown();
return}this._nextSearch=this.dropDown.onPage=lang.hitch(this,function(direction){results.nextPage(direction!==-1);this.focus()});this.dropDown.createOptions(results,options,lang.hitch(this,"_getMenuLabelFromItem"));this._showResultList();if("direction"in options){if(options.direction)this.dropDown.highlightFirstOption();else if(!options.direction)this.dropDown.highlightLastOption();if(wasSelected)this._announceOption(this.dropDown.getHighlightedOption())}else if(this.autoComplete&&!this._prev_key_backspace&&
!/^[*]+$/.test(query[this.searchAttr].toString()))this._announceOption(this.dropDown.containerNode.firstChild.nextSibling)},_showResultList:function(){this.closeDropDown(true);this.openDropDown();this.domNode.setAttribute("aria-expanded","true")},loadDropDown:function(){this._startSearchAll()},isLoaded:function(){return false},closeDropDown:function(){this._abortQuery();if(this._opened){this.inherited(arguments);this.domNode.setAttribute("aria-expanded","false")}},_setBlurValue:function(){var newvalue=
this.get("displayedValue");var pw=this.dropDown;if(pw&&(newvalue==pw._messages["previousMessage"]||newvalue==pw._messages["nextMessage"]))this._setValueAttr(this._lastValueReported,true);else if(typeof this.item=="undefined"){this.item=null;this.set("displayedValue",newvalue)}else{if(this.value!=this._lastValueReported)this._handleOnChange(this.value,true);this._refreshState()}this.focusNode.removeAttribute("aria-activedescendant")},_setItemAttr:function(item,priorityChange,displayedValue){var value=
"";if(item){if(!displayedValue)displayedValue=this.store._oldAPI?this.store.getValue(item,this.searchAttr):item[this.searchAttr];value=this._getValueField()!=this.searchAttr?this.store.getIdentity(item):displayedValue}this.set("value",value,priorityChange,displayedValue,item)},_announceOption:function(node){if(!node)return;var newValue;if(node==this.dropDown.nextButton||node==this.dropDown.previousButton){newValue=node.innerHTML;this.item=undefined;this.value=""}else{var item=this.dropDown.items[node.getAttribute("item")];
newValue=(this.store._oldAPI?this.store.getValue(item,this.searchAttr):item[this.searchAttr]).toString();this.set("item",item,false,newValue)}this.focusNode.value=this.focusNode.value.substring(0,this._lastInput.length);this.focusNode.setAttribute("aria-activedescendant",domAttr.get(node,"id"));this._autoCompleteText(newValue)},_selectOption:function(target){this.closeDropDown();if(target)this._announceOption(target);this._setCaretPos(this.focusNode,this.focusNode.value.length);this._handleOnChange(this.value,
true);this.focusNode.removeAttribute("aria-activedescendant")},_startSearchAll:function(){this._startSearch("")},_startSearchFromInput:function(){this.item=undefined;this.inherited(arguments)},_startSearch:function(key){if(!this.dropDown){var popupId=this.id+"_popup",dropDownConstructor=lang.isString(this.dropDownClass)?lang.getObject(this.dropDownClass,false):this.dropDownClass;this.dropDown=new dropDownConstructor({onChange:lang.hitch(this,this._selectOption),id:popupId,dir:this.dir,textDir:this.textDir})}this._lastInput=
key;this.inherited(arguments)},_getValueField:function(){return this.searchAttr},postMixInProperties:function(){this.inherited(arguments);if(!this.store){var srcNodeRef=this.srcNodeRef;this.store=new DataList({},srcNodeRef);if(!("value"in this.params)){var item=this.item=this.store.fetchSelectedItem();if(item){var valueField=this._getValueField();this.value=this.store._oldAPI?this.store.getValue(item,valueField):item[valueField]}}}},postCreate:function(){var label=query('label[for\x3d"'+this.id+'"]');
if(label.length){if(!label[0].id)label[0].id=this.id+"_label";this.domNode.setAttribute("aria-labelledby",label[0].id)}this.inherited(arguments);aspect.after(this,"onSearch",lang.hitch(this,"_openResultList"),true)},_getMenuLabelFromItem:function(item){var label=this.labelFunc(item,this.store),labelType=this.labelType;if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){label=this.doHighlight(label,this._lastInput);labelType="html"}return{html:labelType=="html",label:label}},doHighlight:function(label,
find){var modifiers=(this.ignoreCase?"i":"")+(this.highlightMatch=="all"?"g":""),i=this.queryExpr.indexOf("${0}");find=regexp.escapeString(find);return this._escapeHtml(label.replace(new RegExp((i==0?"^":"")+"("+find+")"+(i==this.queryExpr.length-4?"$":""),modifiers),"\uffff$1\uffff")).replace(/\uFFFF([^\uFFFF]+)\uFFFF/g,'\x3cspan class\x3d"dijitComboBoxHighlightMatch"\x3e$1\x3c/span\x3e')},_escapeHtml:function(str){str=String(str).replace(/&/gm,"\x26amp;").replace(/</gm,"\x26lt;").replace(/>/gm,
"\x26gt;").replace(/"/gm,"\x26quot;");return str},reset:function(){this.item=null;this.inherited(arguments)},labelFunc:function(item,store){return(store._oldAPI?store.getValue(item,this.labelAttr||this.searchAttr):item[this.labelAttr||this.searchAttr]).toString()},_setValueAttr:function(value,priorityChange,displayedValue,item){this._set("item",item||null);if(value==null)value="";this.inherited(arguments)}});if(0)AutoCompleterMixin.extend({_setTextDirAttr:function(textDir){this.inherited(arguments);
if(this.dropDown)this.dropDown._set("textDir",textDir)}});return AutoCompleterMixin})},"xfile/types":function(){define("xfile/types",["dojo/_base/declare"],function(declare){return declare("xfile.types",null,{})})},"dijit/layout/StackController":function(){define("dijit/layout/StackController",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/keys","dojo/_base/lang","dojo/on","dojo/topic","../focus","../registry","../_Widget","../_TemplatedMixin","../_Container",
"../form/ToggleButton","dojo/touch","dojo/i18n!../nls/common"],function(array,declare,domClass,domConstruct,keys,lang,on,topic,focus,registry,_Widget,_TemplatedMixin,_Container,ToggleButton){var StackButton=declare("dijit.layout._StackButton",ToggleButton,{tabIndex:"-1",closeButton:false,_aria_attr:"aria-selected",buildRendering:function(evt){this.inherited(arguments);(this.focusNode||this.domNode).setAttribute("role","tab")}});var StackController=declare("dijit.layout.StackController",[_Widget,_TemplatedMixin,
_Container],{baseClass:"dijitStackController",templateString:"\x3cspan role\x3d'tablist' data-dojo-attach-event\x3d'onkeydown'\x3e\x3c/span\x3e",containerId:"",buttonWidget:StackButton,buttonWidgetCloseClass:"dijitStackCloseButton",pane2button:function(id){return registry.byId(this.id+"_"+id)},postCreate:function(){this.inherited(arguments);this.own(topic.subscribe(this.containerId+"-startup",lang.hitch(this,"onStartup")),topic.subscribe(this.containerId+"-addChild",lang.hitch(this,"onAddChild")),
topic.subscribe(this.containerId+"-removeChild",lang.hitch(this,"onRemoveChild")),topic.subscribe(this.containerId+"-selectChild",lang.hitch(this,"onSelectChild")),topic.subscribe(this.containerId+"-containerKeyDown",lang.hitch(this,"onContainerKeyDown")));this.containerNode.dojoClick=true;this.own(on(this.containerNode,"click",lang.hitch(this,function(evt){var button=registry.getEnclosingWidget(evt.target);if(button!=this.containerNode&&!button.disabled&&button.page)for(var target=evt.target;target!==
this.containerNode;target=target.parentNode)if(domClass.contains(target,this.buttonWidgetCloseClass)){this.onCloseButtonClick(button.page);break}else if(target==button.domNode){this.onButtonClick(button.page);break}})))},onStartup:function(info){this.textDir=info.textDir;array.forEach(info.children,this.onAddChild,this);if(info.selected)this.onSelectChild(info.selected);var containerNode=registry.byId(this.containerId).containerNode,pane2button=lang.hitch(this,"pane2button"),paneToButtonAttr={"title":"label",
"showtitle":"showLabel","iconclass":"iconClass","closable":"closeButton","tooltip":"title","disabled":"disabled","textdir":"textdir"},connectFunc=function(attr,buttonAttr){return on(containerNode,"attrmodified-"+attr,function(evt){var button=pane2button(evt.detail&&evt.detail.widget&&evt.detail.widget.id);if(button)button.set(buttonAttr,evt.detail.newValue)})};for(var attr in paneToButtonAttr)this.own(connectFunc(attr,paneToButtonAttr[attr]))},destroy:function(preserveDom){this.destroyDescendants(preserveDom);
this.inherited(arguments)},onAddChild:function(page,insertIndex){var Cls=lang.isString(this.buttonWidget)?lang.getObject(this.buttonWidget):this.buttonWidget;var button=new Cls({id:this.id+"_"+page.id,name:this.id+"_"+page.id,label:page.title,disabled:page.disabled,ownerDocument:this.ownerDocument,dir:page.dir,lang:page.lang,textDir:page.textDir||this.textDir,showLabel:page.showTitle,iconClass:page.iconClass,closeButton:page.closable,title:page.tooltip,page:page});this.addChild(button,insertIndex);
page.controlButton=button;if(!this._currentChild)this.onSelectChild(page);var labelledby=page._wrapper.getAttribute("aria-labelledby")?page._wrapper.getAttribute("aria-labelledby")+" "+button.id:button.id;page._wrapper.removeAttribute("aria-label");page._wrapper.setAttribute("aria-labelledby",labelledby)},onRemoveChild:function(page){if(this._currentChild===page)this._currentChild=null;var button=this.pane2button(page.id);if(button){this.removeChild(button);button.destroy()}delete page.controlButton},
onSelectChild:function(page){if(!page)return;if(this._currentChild){var oldButton=this.pane2button(this._currentChild.id);oldButton.set("checked",false);oldButton.focusNode.setAttribute("tabIndex","-1")}var newButton=this.pane2button(page.id);newButton.set("checked",true);this._currentChild=page;newButton.focusNode.setAttribute("tabIndex","0");var container=registry.byId(this.containerId)},onButtonClick:function(page){var button=this.pane2button(page.id);focus.focus(button.focusNode);if(this._currentChild&&
this._currentChild.id===page.id)button.set("checked",true);var container=registry.byId(this.containerId);container.selectChild(page)},onCloseButtonClick:function(page){var container=registry.byId(this.containerId);container.closeChild(page);if(this._currentChild){var b=this.pane2button(this._currentChild.id);if(b)focus.focus(b.focusNode||b.domNode)}},adjacent:function(forward){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition)))forward=!forward;var children=this.getChildren();
var idx=array.indexOf(children,this.pane2button(this._currentChild.id)),current=children[idx];var child;do{idx=(idx+(forward?1:children.length-1))%children.length;child=children[idx]}while(child.disabled&&child!=current);return child},onkeydown:function(e,fromContainer){if(this.disabled||e.altKey)return;var forward=null;if(e.ctrlKey||!e._djpage){switch(e.keyCode){case keys.LEFT_ARROW:case keys.UP_ARROW:if(!e._djpage)forward=false;break;case keys.PAGE_UP:if(e.ctrlKey)forward=false;break;case keys.RIGHT_ARROW:case keys.DOWN_ARROW:if(!e._djpage)forward=
true;break;case keys.PAGE_DOWN:if(e.ctrlKey)forward=true;break;case keys.HOME:var children=this.getChildren();for(var idx=0;idx<children.length;idx++){var child=children[idx];if(!child.disabled){this.onButtonClick(child.page);break}}e.stopPropagation();e.preventDefault();break;case keys.END:var children=this.getChildren();for(var idx=children.length-1;idx>=0;idx--){var child=children[idx];if(!child.disabled){this.onButtonClick(child.page);break}}e.stopPropagation();e.preventDefault();break;case keys.DELETE:case "W".charCodeAt(0):if(this._currentChild.closable&&
(e.keyCode==keys.DELETE||e.ctrlKey))this.onCloseButtonClick(this._currentChild);e.stopPropagation();e.preventDefault();break;case keys.TAB:if(e.ctrlKey){this.onButtonClick(this.adjacent(!e.shiftKey).page);e.stopPropagation();e.preventDefault()}break}if(forward!==null){this.onButtonClick(this.adjacent(forward).page);e.stopPropagation();e.preventDefault()}}},onContainerKeyDown:function(info){info.e._djpage=info.page;this.onkeydown(info.e)}});StackController.StackButton=StackButton;return StackController})},
"dojo/number":function(){define(["./_base/lang","./i18n","./i18n!./cldr/nls/number","./string","./regexp"],function(lang,i18n,nlsNumber,dstring,dregexp){var number={};lang.setObject("dojo.number",number);number.format=function(value,options){options=lang.mixin({},options||{});var locale=i18n.normalizeLocale(options.locale),bundle=i18n.getLocalization("dojo.cldr","number",locale);options.customs=bundle;var pattern=options.pattern||bundle[(options.type||"decimal")+"Format"];if(isNaN(value)||Math.abs(value)==
Infinity)return null;return number._applyPattern(value,pattern,options)};number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;number._applyPattern=function(value,pattern,options){options=options||{};var group=options.customs.group,decimal=options.customs.decimal,patternList=pattern.split(";"),positivePattern=patternList[0];pattern=patternList[value<0?1:0]||"-"+positivePattern;if(pattern.indexOf("%")!=-1)value*=100;else if(pattern.indexOf("\u2030")!=-1)value*=1E3;else if(pattern.indexOf("\u00a4")!=-1){group=
options.customs.currencyGroup||group;decimal=options.customs.currencyDecimal||decimal;pattern=pattern.replace(/\u00a4{1,3}/,function(match){var prop=["symbol","currency","displayName"][match.length-1];return options[prop]||options.currency||""})}else if(pattern.indexOf("E")!=-1)throw new Error("exponential notation not supported");var numberPatternRE=number._numberPatternRE;var numberPattern=positivePattern.match(numberPatternRE);if(!numberPattern)throw new Error("unable to find a number expression in pattern: "+
pattern);if(options.fractional===false)options.places=0;return pattern.replace(numberPatternRE,number._formatAbsolute(value,numberPattern[0],{decimal:decimal,group:group,places:options.places,round:options.round}))};number.round=function(value,places,increment){var factor=10/(increment||10);return(factor*+value).toFixed(places)/factor};if((0.9).toFixed()==0){var round=number.round;number.round=function(v,p,m){var d=Math.pow(10,-p||0),a=Math.abs(v);if(!v||a>=d)d=0;else{a/=d;if(a<0.5||a>=0.95)d=0}return round(v,
p,m)+(v>0?d:-d)}}number._formatAbsolute=function(value,pattern,options){options=options||{};if(options.places===true)options.places=0;if(options.places===Infinity)options.places=6;var patternParts=pattern.split("."),comma=typeof options.places=="string"&&options.places.indexOf(","),maxPlaces=options.places;if(comma)maxPlaces=options.places.substring(comma+1);else if(!(maxPlaces>=0))maxPlaces=(patternParts[1]||[]).length;if(!(options.round<0))value=number.round(value,maxPlaces,options.round);var valueParts=
String(Math.abs(value)).split("."),fractional=valueParts[1]||"";if(patternParts[1]||options.places){if(comma)options.places=options.places.substring(0,comma);var pad=options.places!==undefined?options.places:patternParts[1]&&patternParts[1].lastIndexOf("0")+1;if(pad>fractional.length)valueParts[1]=dstring.pad(fractional,pad,"0",true);if(maxPlaces<fractional.length)valueParts[1]=fractional.substr(0,maxPlaces)}else if(valueParts[1])valueParts.pop();var patternDigits=patternParts[0].replace(",","");
pad=patternDigits.indexOf("0");if(pad!=-1){pad=patternDigits.length-pad;if(pad>valueParts[0].length)valueParts[0]=dstring.pad(valueParts[0],pad);if(patternDigits.indexOf("#")==-1)valueParts[0]=valueParts[0].substr(valueParts[0].length-pad)}var index=patternParts[0].lastIndexOf(","),groupSize,groupSize2;if(index!=-1){groupSize=patternParts[0].length-index-1;var remainder=patternParts[0].substr(0,index);index=remainder.lastIndexOf(",");if(index!=-1)groupSize2=remainder.length-index-1}var pieces=[];
for(var whole=valueParts[0];whole;){var off=whole.length-groupSize;pieces.push(off>0?whole.substr(off):whole);whole=off>0?whole.slice(0,off):"";if(groupSize2){groupSize=groupSize2;delete groupSize2}}valueParts[0]=pieces.reverse().join(options.group||",");return valueParts.join(options.decimal||".")};number.regexp=function(options){return number._parseInfo(options).regexp};number._parseInfo=function(options){options=options||{};var locale=i18n.normalizeLocale(options.locale),bundle=i18n.getLocalization("dojo.cldr",
"number",locale),pattern=options.pattern||bundle[(options.type||"decimal")+"Format"],group=bundle.group,decimal=bundle.decimal,factor=1;if(pattern.indexOf("%")!=-1)factor/=100;else if(pattern.indexOf("\u2030")!=-1)factor/=1E3;else{var isCurrency=pattern.indexOf("\u00a4")!=-1;if(isCurrency){group=bundle.currencyGroup||group;decimal=bundle.currencyDecimal||decimal}}var patternList=pattern.split(";");if(patternList.length==1)patternList.push("-"+patternList[0]);var re=dregexp.buildGroupRE(patternList,
function(pattern){pattern="(?:"+dregexp.escapeString(pattern,".")+")";return pattern.replace(number._numberPatternRE,function(format){var flags={signed:false,separator:options.strict?group:[group,""],fractional:options.fractional,decimal:decimal,exponent:false},parts=format.split("."),places=options.places;if(parts.length==1&&factor!=1)parts[1]="###";if(parts.length==1||places===0)flags.fractional=false;else{if(places===undefined)places=options.pattern?parts[1].lastIndexOf("0")+1:Infinity;if(places&&
options.fractional==undefined)flags.fractional=true;if(!options.places&&places<parts[1].length)places+=","+parts[1].length;flags.places=places}var groups=parts[0].split(",");if(groups.length>1){flags.groupSize=groups.pop().length;if(groups.length>1)flags.groupSize2=groups.pop().length}return"("+number._realNumberRegexp(flags)+")"})},true);if(isCurrency)re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(match,before,target,after){var prop=["symbol","currency","displayName"][target.length-
1],symbol=dregexp.escapeString(options[prop]||options.currency||"");before=before?"[\\s\\xa0]":"";after=after?"[\\s\\xa0]":"";if(!options.strict){if(before)before+="*";if(after)after+="*";return"(?:"+before+symbol+after+")?"}return before+symbol+after});return{regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:group,decimal:decimal,factor:factor}};number.parse=function(expression,options){var info=number._parseInfo(options),results=(new RegExp("^"+info.regexp+"$")).exec(expression);if(!results)return NaN;
var absoluteMatch=results[1];if(!results[1]){if(!results[2])return NaN;absoluteMatch=results[2];info.factor*=-1}absoluteMatch=absoluteMatch.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");return absoluteMatch*info.factor};number._realNumberRegexp=function(flags){flags=flags||{};if(!("places"in flags))flags.places=Infinity;if(typeof flags.decimal!="string")flags.decimal=".";if(!("fractional"in flags)||/^0/.test(flags.places))flags.fractional=[true,false];if(!("exponent"in
flags))flags.exponent=[true,false];if(!("eSigned"in flags))flags.eSigned=[true,false];var integerRE=number._integerRegexp(flags),decimalRE=dregexp.buildGroupRE(flags.fractional,function(q){var re="";if(q&&flags.places!==0){re="\\"+flags.decimal;if(flags.places==Infinity)re="(?:"+re+"\\d+)?";else re+="\\d{"+flags.places+"}"}return re},true);var exponentRE=dregexp.buildGroupRE(flags.exponent,function(q){if(q)return"([eE]"+number._integerRegexp({signed:flags.eSigned})+")";return""});var realRE=integerRE+
decimalRE;if(decimalRE)realRE="(?:(?:"+realRE+")|(?:"+decimalRE+"))";return realRE+exponentRE};number._integerRegexp=function(flags){flags=flags||{};if(!("signed"in flags))flags.signed=[true,false];if(!("separator"in flags))flags.separator="";else if(!("groupSize"in flags))flags.groupSize=3;var signRE=dregexp.buildGroupRE(flags.signed,function(q){return q?"[-+]":""},true);var numberRE=dregexp.buildGroupRE(flags.separator,function(sep){if(!sep)return"(?:\\d+)";sep=dregexp.escapeString(sep);if(sep==
" ")sep="\\s";else if(sep=="\u00a0")sep="\\s\\xa0";var grp=flags.groupSize,grp2=flags.groupSize2;if(grp2){var grp2RE="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";return grp-grp2>0?"(?:"+grp2RE+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":grp2RE}return"(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)"},true);return signRE+numberRE};return number})},"dijit/DialogUnderlay":function(){define("dijit/DialogUnderlay",["dojo/_base/declare","dojo/_base/lang","dojo/aspect","dojo/dom-attr",
"dojo/dom-style","dojo/on","dojo/window","./_Widget","./_TemplatedMixin","./BackgroundIframe","./Viewport","./main"],function(declare,lang,aspect,domAttr,domStyle,on,winUtils,_Widget,_TemplatedMixin,BackgroundIframe,Viewport,dijit){var DialogUnderlay=declare("dijit.DialogUnderlay",[_Widget,_TemplatedMixin],{templateString:"\x3cdiv class\x3d'dijitDialogUnderlayWrapper'\x3e\x3cdiv class\x3d'dijitDialogUnderlay' tabIndex\x3d'-1' data-dojo-attach-point\x3d'node'\x3e\x3c/div\x3e\x3c/div\x3e",dialogId:"",
"class":"",_modalConnects:[],_setDialogIdAttr:function(id){domAttr.set(this.node,"id",id+"_underlay");this._set("dialogId",id)},_setClassAttr:function(clazz){this.node.className="dijitDialogUnderlay "+clazz;this._set("class",clazz)},postCreate:function(){this.ownerDocumentBody.appendChild(this.domNode);this.own(on(this.domNode,"keydown",lang.hitch(this,"_onKeyDown")));this.inherited(arguments)},layout:function(){var is=this.node.style,os=this.domNode.style;os.display="none";var viewport=winUtils.getBox(this.ownerDocument);
os.top=viewport.t+"px";os.left=viewport.l+"px";is.width=viewport.w+"px";is.height=viewport.h+"px";os.display="block"},show:function(){this.domNode.style.display="block";this.open=true;this.layout();this.bgIframe=new BackgroundIframe(this.domNode,true);var win=winUtils.get(this.ownerDocument);this._modalConnects=[Viewport.on("resize",lang.hitch(this,"layout")),on(win,"scroll",lang.hitch(this,"layout"))]},hide:function(){this.bgIframe.destroy();delete this.bgIframe;this.domNode.style.display="none";
while(this._modalConnects.length)this._modalConnects.pop().remove();this.open=false},destroy:function(){while(this._modalConnects.length)this._modalConnects.pop().remove();this.inherited(arguments)},_onKeyDown:function(){}});DialogUnderlay.show=function(attrs,zIndex){var underlay=DialogUnderlay._singleton;if(!underlay||underlay._destroyed)underlay=dijit._underlay=DialogUnderlay._singleton=new DialogUnderlay(attrs);else if(attrs)underlay.set(attrs);domStyle.set(underlay.domNode,"zIndex",zIndex);if(!underlay.open)underlay.show()};
DialogUnderlay.hide=function(){var underlay=DialogUnderlay._singleton;if(underlay&&!underlay._destroyed)underlay.hide()};return DialogUnderlay})},"xfile/widgets/ActionToolbarEmbedded":function(){define("xfile/widgets/ActionToolbarEmbedded",["../../dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","xide/types","xapp/factory","xfile/widgets/ActionToolbarButtonEmbedded","xfile/widgets/NewItemSelector","dijit/Toolbar","xfile/widgets/ActionToolbarMixin","xfile/views/EditorPluginMixin"],
function(declare,html,domClass,on,types,eventFactory,ActionToolbarButton,NewItemSelector,Toolbar,ActionToolbarMixin,EditorPluginMixin){return dojo.declare("xfile.widgets.ActionToolbarEmbedded",[Toolbar,ActionToolbarMixin,EditorPluginMixin],{_createDefaultItems:function(){var allowedActions=this.inherited(arguments);var opsInt=types.OPERATION_INT;try{if(allowedActions[opsInt.NEW_FILE]||allowedActions[opsInt.NEW_DIRECTORY]){var button=new NewItemSelector({title:"New",delegate:this,allowedActions:allowedActions},
dojo.doc.createElement("div"));this.containerNode.appendChild(button.domNode);dojo.place(button.domNode,this.containerNode,"last");button.startup()}}catch(e){debugger}},_createButton:function(operation,item,clickcb,disabled,add,className){var iconClass=this.toIconClass(operation);var title=this.toTitle(operation);if(iconClass&&title){try{var button=new ActionToolbarButton({title:title,iconClass:iconClass,operation:operation,item:item,disabled:disabled},dojo.doc.createElement("div"));this.containerNode.appendChild(button.domNode);
domClass.add(button.domNode,className||"actionToolbarButton");button.startup();if(add===false);else this.buttons.push(button);var thiz=this;button.domNode.onclick=function(){if(clickcb)clickcb(button);else thiz.onButtonClicked(button)}}catch(e){debugger}if(this.useElusive){domClass.remove(button.iconNode,"dijitReset");domClass.add(button.iconNode,"actionToolbarButtonElusive")}return button}},startup:function(){this.inherited(arguments);if(this.config){if(this.config.MEDIA_PICKER&&this.config.MEDIA_PICKER.showPreview)var previewButton=
this._createButton(types.OPERATION.PREVIEW,{empty:true},null,false,false,"actionToolbarButtonLeft");if(this.config.MEDIA_PICKER&&this.config.MEDIA_PICKER.showPreview)this._createButton(types.OPERATION.INSERT_IMAGE,{empty:true},null,false,true,"actionToolbarButtonLeft")}}})})},"dijit/_WidgetsInTemplateMixin":function(){define("dijit/_WidgetsInTemplateMixin",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/lang","dojo/parser"],function(array,aspect,declare,lang,parser){return declare("dijit._WidgetsInTemplateMixin",
null,{_earlyTemplatedStartup:false,widgetsInTemplate:true,contextRequire:null,_beforeFillContent:function(){if(this.widgetsInTemplate){var node=this.domNode;if(this.containerNode&&!this.searchContainerNode)this.containerNode.stopParser=true;parser.parse(node,{noStart:!this._earlyTemplatedStartup,template:true,inherited:{dir:this.dir,lang:this.lang,textDir:this.textDir},propsThis:this,contextRequire:this.contextRequire,scope:"dojo"}).then(lang.hitch(this,function(widgets){this._startupWidgets=widgets;
for(var i=0;i<widgets.length;i++)this._processTemplateNode(widgets[i],function(n,p){return n[p]},function(widget,type,callback){if(type in widget)return aspect.after(widget,type,callback,true);else return widget.on(type,callback,true)});if(this.containerNode&&this.containerNode.stopParser)delete this.containerNode.stopParser}));if(!this._startupWidgets)throw new Error(this.declaredClass+": parser returned unfilled promise (probably waiting for module auto-load), "+"unsupported by _WidgetsInTemplateMixin.   Must pre-load all supporting widgets before instantiation.");
}},_processTemplateNode:function(baseNode,getAttrFunc,attachFunc){if(getAttrFunc(baseNode,"dojoType")||getAttrFunc(baseNode,"data-dojo-type"))return true;return this.inherited(arguments)},startup:function(){array.forEach(this._startupWidgets,function(w){if(w&&!w._started&&w.startup)w.startup()});this._startupWidgets=null;this.inherited(arguments)}})})},"url:dijit/form/templates/TextBox.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline dijitLeft" id\x3d"widget_${id}" role\x3d"presentation"\n\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitInputContainer"\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputInner" data-dojo-attach-point\x3d\'textbox,focusNode\' autocomplete\x3d"off"\n\t\t\t${!nameAttrSetting} type\x3d\'${type}\'\n\t/\x3e\x3c/div\n\x3e\x3c/div\x3e\n',
"dojo/promise/Promise":function(){define(["../_base/lang"],function(lang){function throwAbstract(){throw new TypeError("abstract");}return lang.extend(function Promise(){},{then:function(callback,errback,progback){throwAbstract()},cancel:function(reason,strict){throwAbstract()},isResolved:function(){throwAbstract()},isRejected:function(){throwAbstract()},isFulfilled:function(){throwAbstract()},isCanceled:function(){throwAbstract()},always:function(callbackOrErrback){return this.then(callbackOrErrback,
callbackOrErrback)},otherwise:function(errback){return this.then(null,errback)},trace:function(){return this},traceRejected:function(){return this},toString:function(){return"[object Promise]"}})})},"xwordpress/manager/FileManager":function(){define("xwordpress/manager/FileManager",["dojo/_base/declare","xfile/manager/FileManager"],function(declare,FileManager){return declare("xwordpress.manager.FileManager",[FileManager],{serviceUrl:"../../admin.php?page\x3dxcommander\x26view\x3drpc",getUploadUrl:function(){var downloadUrl=
""+this.serverActionName;downloadUrl=downloadUrl.replace("view\x3drpc","view\x3dupload");downloadUrl=downloadUrl.replace("../../","./");downloadUrl+=(downloadUrl.indexOf("?")>=0?"\x26":"?")+"service\x3dXapp_FileService.upload\x26view\x3dupload";return downloadUrl},constructor:function(){if(typeof xFileConfig!="undefined")if(xFileConfig.FILE_SERVICE)this.serverActionName=xFileConfig.FILE_SERVICE}})})},"dojo/_base/url":function(){define(["./kernel"],function(dojo){var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),
ire=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"),_Url=function(){var n=null,_a=arguments,uri=[_a[0]];for(var i=1;i<_a.length;i++){if(!_a[i])continue;var relobj=new _Url(_a[i]+""),uriobj=new _Url(uri[0]+"");if(relobj.path==""&&!relobj.scheme&&!relobj.authority&&!relobj.query){if(relobj.fragment!=n)uriobj.fragment=relobj.fragment;relobj=uriobj}else if(!relobj.scheme){relobj.scheme=uriobj.scheme;if(!relobj.authority){relobj.authority=uriobj.authority;if(relobj.path.charAt(0)!=
"/"){var path=uriobj.path.substring(0,uriobj.path.lastIndexOf("/")+1)+relobj.path;var segs=path.split("/");for(var j=0;j<segs.length;j++)if(segs[j]==".")if(j==segs.length-1)segs[j]="";else{segs.splice(j,1);j--}else if(j>0&&!(j==1&&segs[0]=="")&&segs[j]==".."&&segs[j-1]!="..")if(j==segs.length-1){segs.splice(j,1);segs[j-1]=""}else{segs.splice(j-1,2);j-=2}relobj.path=segs.join("/")}}}uri=[];if(relobj.scheme)uri.push(relobj.scheme,":");if(relobj.authority)uri.push("//",relobj.authority);uri.push(relobj.path);
if(relobj.query)uri.push("?",relobj.query);if(relobj.fragment)uri.push("#",relobj.fragment)}this.uri=uri.join("");var r=this.uri.match(ore);this.scheme=r[2]||(r[1]?"":n);this.authority=r[4]||(r[3]?"":n);this.path=r[5];this.query=r[7]||(r[6]?"":n);this.fragment=r[9]||(r[8]?"":n);if(this.authority!=n){r=this.authority.match(ire);this.user=r[3]||n;this.password=r[4]||n;this.host=r[6]||r[7];this.port=r[9]||n}};_Url.prototype.toString=function(){return this.uri};return dojo._Url=_Url})},"dojo/_base/browser":function(){if(require.has)require.has.add("config-selectorEngine",
"acme");define(["../ready","./kernel","./connect","./unload","./window","./event","./html","./NodeList","../query","./xhr","./fx"],function(dojo){return dojo})},"xwordpress/Views":function(){define("xwordpress/Views",["dojo/_base/declare","xas/views/GroupedSettingsView","xas/views/GroupedMetaSettingsView","xas/views/EditorBase","xas/views/SettingsTreeView","xide/views/SettingsTreeView","xwordpress/views/SettingsTreeView","xfile/views/FileTreeView","xwordpress/views/FileTreeView","xwordpress/views/MainView",
"xfile/views/FileGridView","xide/views/CodeMirrorEditor","xide/views/OkCancelDialog","xide/views/ACEEditor","xide/views/TextEditor","xide/layout/ContentPane","xfile/views/FileDeleteDialog","xfile/layout/BorderContainer","xfile/views/RemoteEditor","xfile/views/NewItemDialog","xfile/views/EditorPluginMixin","xfile/views/CKEditor","dgrid/OnDemandGrid","dgrid/Selection","dgrid/Keyboard","dgrid/extensions/ColumnResizer","put-selector/put"],function(declare){return declare("xwordpress.Views",null,{})})},
"dojox/layout/ResizeHandle":function(){define("dojox/layout/ResizeHandle",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/connect","dojo/_base/array","dojo/_base/event","dojo/_base/fx","dojo/_base/window","dojo/fx","dojo/window","dojo/dom","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dijit/_base/manager","dijit/_Widget","dijit/_TemplatedMixin","dojo/_base/declare"],function(kernel,lang,connect,arrayUtil,eventUtil,fxBase,windowBase,fxUtil,windowUtil,domUtil,domClass,domGeometry,domStyle,
manager,Widget,TemplatedMixin,declare){kernel.experimental("dojox.layout.ResizeHandle");var ResizeHandle=declare("dojox.layout.ResizeHandle",[Widget,TemplatedMixin],{targetId:"",targetContainer:null,resizeAxis:"xy",activeResize:false,activeResizeClass:"dojoxResizeHandleClone",animateSizing:true,animateMethod:"chain",animateDuration:225,minHeight:100,minWidth:100,constrainMax:false,maxHeight:0,maxWidth:0,fixedAspect:false,intermediateChanges:false,startTopic:"/dojo/resize/start",endTopic:"/dojo/resize/stop",
templateString:'\x3cdiv dojoAttachPoint\x3d"resizeHandle" class\x3d"dojoxResizeHandle"\x3e\x3cdiv\x3e\x3c/div\x3e\x3c/div\x3e',postCreate:function(){this.connect(this.resizeHandle,"onmousedown","_beginSizing");if(!this.activeResize){this._resizeHelper=manager.byId("dojoxGlobalResizeHelper");if(!this._resizeHelper){this._resizeHelper=(new _ResizeHelper({id:"dojoxGlobalResizeHelper"})).placeAt(windowBase.body());domClass.add(this._resizeHelper.domNode,this.activeResizeClass)}}else this.animateSizing=
false;if(!this.minSize)this.minSize={w:this.minWidth,h:this.minHeight};if(this.constrainMax)this.maxSize={w:this.maxWidth,h:this.maxHeight};this._resizeX=this._resizeY=false;var addClass=lang.partial(domClass.add,this.resizeHandle);switch(this.resizeAxis.toLowerCase()){case "xy":this._resizeX=this._resizeY=true;addClass("dojoxResizeNW");break;case "x":this._resizeX=true;addClass("dojoxResizeW");break;case "y":this._resizeY=true;addClass("dojoxResizeN");break}},_beginSizing:function(e){if(this._isSizing)return;
connect.publish(this.startTopic,[this]);this.targetWidget=manager.byId(this.targetId);this.targetDomNode=this.targetWidget?this.targetWidget.domNode:domUtil.byId(this.targetId);if(this.targetContainer)this.targetDomNode=this.targetContainer;if(!this.targetDomNode)return;if(!this.activeResize){var c=domGeometry.position(this.targetDomNode,true);this._resizeHelper.resize({l:c.x,t:c.y,w:c.w,h:c.h});this._resizeHelper.show();if(!this.isLeftToRight())this._resizeHelper.startPosition={l:c.x,t:c.y}}this._isSizing=
true;this.startPoint={x:e.clientX,y:e.clientY};var style=domStyle.getComputedStyle(this.targetDomNode),borderModel=domGeometry.boxModel==="border-model",padborder=borderModel?{w:0,h:0}:domGeometry.getPadBorderExtents(this.targetDomNode,style),margin=domGeometry.getMarginExtents(this.targetDomNode,style),mb;mb=this.startSize={w:domStyle.get(this.targetDomNode,"width",style),h:domStyle.get(this.targetDomNode,"height",style),pbw:padborder.w,pbh:padborder.h,mw:margin.w,mh:margin.h};if(!this.isLeftToRight()&&
dojo.style(this.targetDomNode,"position")=="absolute"){var p=domGeometry.position(this.targetDomNode,true);this.startPosition={l:p.x,t:p.y}}this._pconnects=[connect.connect(windowBase.doc,"onmousemove",this,"_updateSizing"),connect.connect(windowBase.doc,"onmouseup",this,"_endSizing")];eventUtil.stop(e)},_updateSizing:function(e){if(this.activeResize)this._changeSizing(e);else{var tmp=this._getNewCoords(e,"border",this._resizeHelper.startPosition);if(tmp===false)return;this._resizeHelper.resize(tmp)}e.preventDefault()},
_getNewCoords:function(e,box,startPosition){try{if(!e.clientX||!e.clientY)return false}catch(e){return false}this._activeResizeLastEvent=e;var dx=(this.isLeftToRight()?1:-1)*(this.startPoint.x-e.clientX),dy=this.startPoint.y-e.clientY,newW=this.startSize.w-(this._resizeX?dx:0),newH=this.startSize.h-(this._resizeY?dy:0),r=this._checkConstraints(newW,newH);startPosition=startPosition||this.startPosition;if(startPosition&&this._resizeX){r.l=startPosition.l+dx;if(r.w!=newW)r.l+=newW-r.w;r.t=startPosition.t}switch(box){case "margin":r.w+=
this.startSize.mw;r.h+=this.startSize.mh;case "border":r.w+=this.startSize.pbw;r.h+=this.startSize.pbh;break}return r},_checkConstraints:function(newW,newH){if(this.minSize){var tm=this.minSize;if(newW<tm.w)newW=tm.w;if(newH<tm.h)newH=tm.h}if(this.constrainMax&&this.maxSize){var ms=this.maxSize;if(newW>ms.w)newW=ms.w;if(newH>ms.h)newH=ms.h}if(this.fixedAspect){var w=this.startSize.w,h=this.startSize.h,delta=w*newH-h*newW;if(delta<0)newW=newH*w/h;else if(delta>0)newH=newW*h/w}return{w:newW,h:newH}},
_changeSizing:function(e){var isWidget=this.targetWidget&&lang.isFunction(this.targetWidget.resize),tmp=this._getNewCoords(e,isWidget&&"margin");if(tmp===false)return;if(isWidget)this.targetWidget.resize(tmp);else if(this.animateSizing){var anim=fxUtil[this.animateMethod]([fxBase.animateProperty({node:this.targetDomNode,properties:{width:{start:this.startSize.w,end:tmp.w}},duration:this.animateDuration}),fxBase.animateProperty({node:this.targetDomNode,properties:{height:{start:this.startSize.h,end:tmp.h}},
duration:this.animateDuration})]);anim.play()}else domStyle.set(this.targetDomNode,{width:tmp.w+"px",height:tmp.h+"px"});if(this.intermediateChanges)this.onResize(e)},_endSizing:function(e){arrayUtil.forEach(this._pconnects,connect.disconnect);var pub=lang.partial(connect.publish,this.endTopic,[this]);if(!this.activeResize){this._resizeHelper.hide();this._changeSizing(e);setTimeout(pub,this.animateDuration+15)}else pub();this._isSizing=false;this.onResize(e)},onResize:function(e){}});var _ResizeHelper=
dojo.declare("dojox.layout._ResizeHelper",Widget,{show:function(){domStyle.set(this.domNode,"display","")},hide:function(){domStyle.set(this.domNode,"display","none")},resize:function(dim){domGeometry.setMarginBox(this.domNode,dim)}});return ResizeHandle})},"xide/widgets/Expression":function(){define(["dojo/_base/declare","dojo/_base/lang","xide/widgets/WidgetBase","xide/factory","xide/utils","xide/types","xide/views/CIActionDialog"],function(declare,lang,WidgetBase,factory,utils,types,CIActionDialog){return declare("xide.widgets.Expression",
[WidgetBase],{wContentSelectorButton:null,lastUploadedFileName:null,oriPath:null,minHeight:"400px;",value:"",options:null,templateString:"\x3cdiv class\x3d'widgetContainer widgetBorder widgetTable' style\x3d''\x3e"+"\x3ctable border\x3d'0' cellpadding\x3d'5px' width\x3d'100%' \x3e"+"\x3ctbody\x3e"+"\x3ctr data-dojo-attach-point\x3d'extensionRoot'\x3e"+"\x3ctd width\x3d'15%' class\x3d'widgetTitle'\x3e\x3cspan\x3e\x3cb\x3e${!title}\x3c/b\x3e\x3cspan\x3e\x3c/td\x3e"+"\x3ctd width\x3d'100px' class\x3d'widgetValue2' valign\x3d'middle' data-dojo-attach-point\x3d'previewNode'\x3e\x3c/td\x3e"+
"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button0'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button1'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button2'\x3e\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e"+"\x3cdiv data-dojo-attach-point\x3d'expander' onclick\x3d'' style\x3d'width:100%;'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'last'\x3e\x3c/div\x3e"+"\x3c/div\x3e",
filePathValidator:function(value,constraints){return true;var thiz=this;var result=false;var reg=new RegExp(/^[0-9a-zA-Z ..._/ ]+$/);if(value&&reg.test(value)){var doExistCheck=false;if(doExistCheck){result=false;thiz.promptMessage="Item already exists";thiz.message="Item already exists"}else{result=true;thiz.message="Enter new file name"}}else{thiz.promptMessage="This is not a valid path, try without special characters!";thiz.message="This is not a path filename, try without special characters!";
result=false}this.fileNameValid=result;if(this.owner&&this.owner.onValidated)this.owner.onValidated(result);return result},postMixInProperties:function(){this.inherited(arguments);if(this.userData&&this.userData.title)this.title=this.userData.title;if(this.userData&&this.userData.vertical===true||this.vertical===true)this.templateString="\x3cdiv class\x3d'widgetContainer widgetBorder widgetTable' style\x3d''\x3e"+"\x3ctable border\x3d'0' cellpadding\x3d'5px' width\x3d'100%' \x3e"+"\x3ctbody\x3e"+
"\x3ctr data-dojo-attach-point\x3d'extensionRoot'\x3e"+"\x3ctd width\x3d'100%' class\x3d'widgetTitle'\x3e\x3cspan\x3e\x3cb\x3e${!title}\x3c/b\x3e\x3cspan\x3e\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr data-dojo-attach-point\x3d'extensionRoot'\x3e"+"\x3ctd width\x3d'100px' class\x3d'widgetValue2' valign\x3d'middle' data-dojo-attach-point\x3d'previewNode'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button0'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button1'\x3e\x3c/td\x3e"+
"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button2'\x3e\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e"+"\x3cdiv data-dojo-attach-point\x3d'expander' onclick\x3d'' style\x3d'width:100%;'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'last'\x3e\x3c/div\x3e"+"\x3c/div\x3e"},onFileSelected:function(path){this.editBox.set("value",path);this.value=path;this.setValue(path)},onSelect:function(){var thiz=this;var _defaultOptions={};if(this.options)lang.mixin(_defaultOptions,
this.options);var value=utils.toString(this.userData["value"]);var actionDialog=new CIActionDialog({title:"Expression",style:"width:600px;height:500px;",resizeable:true,delegate:{onOk:function(dlg,data){var expression=utils.getCIInputValueByName(data,"Expression");thiz.userData.changed=true;thiz.userData.active=true;utils.setCIValueByField(thiz.userData,"value",expression);thiz.editBox.set("value",expression)}},cis:[utils.createCI("Expression",29,value,{group:"Expression",delegate:this.userData.delegate})]});
actionDialog.show()},fillTemplate:function(){var thiz=this;var value=utils.toString(this.userData["value"]);this.editBox=factory.createValidationTextBox(this.previewNode,"","",value,this.filePathValidator,this.delegate,"Not a path!","I need some input");dojo.connect(this.editBox,"onChange",function(item){thiz.userData.changed=true;thiz.userData.active=true;utils.setCIValueByField(thiz.userData,"value",item);factory.publish(types.EVENTS.ON_CI_UPDATE,{owner:thiz.delegate||thiz.owner,ci:thiz.userData,
newValue:value,storeItem:this.storeItem},this)});this.selectButton=factory.createButton(this.button0,"el-icon-magic","elusiveButton","","",this.onSelect,this)},startup:function(){this.inherited(arguments);this.fillTemplate();this.onReady()}})})},"xapp/widgets/TemplatedWidgetBase":function(){define("xapp/widgets/TemplatedWidgetBase",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dijit/_Widget","dijit/_WidgetBase","dijit/_TemplatedMixin","dijit/_WidgetsInTemplateMixin","dojo/i18n",
"dojo/i18n!./nls/TemplatedWidgetBase","xapp/utils"],function(array,declare,html,on,_Widget,_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,utils){return dojo.declare("xapp.widgets.TemplatedWidgetBase",[_Widget,_TemplatedMixin,_WidgetsInTemplateMixin],{data:null,delegate:null,didLoad:false,templateString:null,initWithDataItem:function(data){this.empty()},fillTemplate:function(){var thiz=this},startup:function(){this.inherited(arguments);if(this.fillTemplate)this.fillTemplate()},translate:function(value){if(this._messages==
null)this._setupTranslations();if(value){var _titleKey=value.toLocaleLowerCase();_titleKey=_titleKey.replace(/\s+/g,"_");if(_titleKey&&this._messages!=null){var _titleValue=this._messages[_titleKey];if(utils.isValidString(_titleValue))return _titleValue}}return value},_setupTranslations:function(){var dstCtx=ctx;if(dstCtx&&dstCtx.getLocals)this._messages=dstCtx.getLocals("xapp.widgets","TemplatedWidgetBase");else this._messages=[]},postMixInProperties:function(){this.inherited(arguments);this._setupTranslations()}})})},
"dojo/json":function(){define(["./has"],function(has){var hasJSON=typeof JSON!="undefined";has.add("json-parse",hasJSON);has.add("json-stringify",hasJSON&&JSON.stringify({a:0},function(k,v){return v||1})=='{"a":1}');if(has("json-stringify"))return JSON;else{var escapeString=function(str){return('"'+str.replace(/(["\\])/g,"\\$1")+'"').replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")};return{parse:has("json-parse")?JSON.parse:function(str,
strict){if(strict&&!/^([\s\[\{]*(?:"(?:\\.|[^"])*"|-?\d[\d\.]*(?:[Ee][+-]?\d+)?|null|true|false|)[\s\]\}]*(?:,|:|$))+$/.test(str))throw new SyntaxError("Invalid characters in JSON");return eval("("+str+")")},stringify:function(value,replacer,spacer){var undef;if(typeof replacer=="string"){spacer=replacer;replacer=null}function stringify(it,indent,key){if(replacer)it=replacer(key,it);var val,objtype=typeof it;if(objtype=="number")return isFinite(it)?it+"":"null";if(objtype=="boolean")return it+"";
if(it===null)return"null";if(typeof it=="string")return escapeString(it);if(objtype=="function"||objtype=="undefined")return undef;if(typeof it.toJSON=="function")return stringify(it.toJSON(key),indent,key);if(it instanceof Date)return'"{FullYear}-{Month+}-{Date}T{Hours}:{Minutes}:{Seconds}Z"'.replace(/\{(\w+)(\+)?\}/g,function(t,prop,plus){var num=it["getUTC"+prop]()+(plus?1:0);return num<10?"0"+num:num});if(it.valueOf()!==it)return stringify(it.valueOf(),indent,key);var nextIndent=spacer?indent+
spacer:"";var sep=spacer?" ":"";var newLine=spacer?"\n":"";if(it instanceof Array){var itl=it.length,res=[];for(key=0;key<itl;key++){var obj=it[key];val=stringify(obj,nextIndent,key);if(typeof val!="string")val="null";res.push(newLine+nextIndent+val)}return"["+res.join(",")+newLine+indent+"]"}var output=[];for(key in it){var keyStr;if(it.hasOwnProperty(key)){if(typeof key=="number")keyStr='"'+key+'"';else if(typeof key=="string")keyStr=escapeString(key);else continue;val=stringify(it[key],nextIndent,
key);if(typeof val!="string")continue;output.push(newLine+nextIndent+keyStr+":"+sep+val)}}return"{"+output.join(",")+newLine+indent+"}"}return stringify(value,"","")}}}})},"xide/widgets/MainMenu":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/_base/connect","dojo/dom-construct","dojo/on","dojo/_base/lang","dojo/dom-geometry","dojo/dom-class","xide/widgets/TemplatedWidgetBase","xide/utils","dijit/layout/ContentPane","xide/factory","xide/types","dojo/aspect"],function(array,
declare,html,connect,domConstruct,on,lang,domGeometry,domClass,TemplatedWidgetBase,utils,ContentPane,factory,types,aspect){return dojo.declare("xide.widgets.MainMenu",[TemplatedWidgetBase],{templateString:"\x3cdiv\x3e\x3c/div\x3e",wFileMenu:null,wEditMenu:null,wViewMenu:null,wHelpMenu:null,wThemesMenu:null,_patchMenu:function(widget){var thiz=this;aspect.after(widget,"onOpen",function(){factory.publish(types.EVENTS.ON_MAIN_MENU_OPEN,{mainMenu:thiz,menu:widget,item:this});if(this._popupWrapper&&this._popupWrapper){var dst=
this._popupWrapper;domClass.add(dst,"ui-menu ui-widget ui-widget-content")}})},_fixCSSClasses:function(){this._patchMenu(this.wFileMenu);this._patchMenu(this.wEditMenu);this._patchMenu(this.wHelpMenu);this._patchMenu(this.wViewMenu);this._patchMenu(this.wThemesMenu)},startup:function(){this.inherited(arguments);this._fixCSSClasses()}})})},"dijit/form/FilteringSelect":function(){define("dijit/form/FilteringSelect",["dojo/_base/declare","dojo/_base/lang","dojo/when","./MappedTextBox","./ComboBoxMixin"],
function(declare,lang,when,MappedTextBox,ComboBoxMixin){return declare("dijit.form.FilteringSelect",[MappedTextBox,ComboBoxMixin],{required:true,_lastDisplayedValue:"",_isValidSubset:function(){return this._opened},isValid:function(){return!!this.item||!this.required&&this.get("displayedValue")==""},_refreshState:function(){if(!this.searchTimer)this.inherited(arguments)},_callbackSetLabel:function(result,query,options,priorityChange){if(query&&query[this.searchAttr]!==this._lastQuery||!query&&result.length&&
this.store.getIdentity(result[0])!=this._lastQuery)return;if(!result.length)this.set("value","",priorityChange||priorityChange===undefined&&!this.focused,this.textbox.value,null);else this.set("item",result[0],priorityChange)},_openResultList:function(results,query,options){if(query[this.searchAttr]!==this._lastQuery)return;this.inherited(arguments);if(this.item===undefined)this.validate(true)},_getValueAttr:function(){return this.valueNode.value},_getValueField:function(){return"value"},_setValueAttr:function(value,
priorityChange,displayedValue,item){if(!this._onChangeActive)priorityChange=null;if(item===undefined){if(value===null||value===""){value="";if(!lang.isString(displayedValue)){this._setDisplayedValueAttr(displayedValue||"",priorityChange);return}}var self=this;this._lastQuery=value;when(this.store.get(value),function(item){self._callbackSetLabel(item?[item]:[],undefined,undefined,priorityChange)})}else{this.valueNode.value=value;this.inherited(arguments)}},_setItemAttr:function(item,priorityChange,
displayedValue){this.inherited(arguments);this._lastDisplayedValue=this.textbox.value},_getDisplayQueryString:function(text){return text.replace(/([\\\*\?])/g,"\\$1")},_setDisplayedValueAttr:function(label,priorityChange){if(label==null)label="";if(!this._created){if(!("displayedValue"in this.params))return;priorityChange=false}if(this.store){this.closeDropDown();var query=lang.clone(this.query);var qs=this._getDisplayQueryString(label),q;if(this.store._oldAPI)q=qs;else{q=this._patternToRegExp(qs);
q.toString=function(){return qs}}this._lastQuery=query[this.searchAttr]=q;this.textbox.value=label;this._lastDisplayedValue=label;this._set("displayedValue",label);var _this=this;var options={ignoreCase:this.ignoreCase,deep:true};lang.mixin(options,this.fetchProperties);this._fetchHandle=this.store.query(query,options);when(this._fetchHandle,function(result){_this._fetchHandle=null;_this._callbackSetLabel(result||[],query,options,priorityChange)},function(err){_this._fetchHandle=null;if(!_this._cancelingQuery)console.error("dijit.form.FilteringSelect: "+
err.toString())})}},undo:function(){this.set("displayedValue",this._lastDisplayedValue)}})})},"dijit/layout/TabContainer":function(){define("dijit/layout/TabContainer",["dojo/_base/lang","dojo/_base/declare","./_TabContainerBase","./TabController","./ScrollingTabController"],function(lang,declare,_TabContainerBase,TabController,ScrollingTabController){return declare("dijit.layout.TabContainer",_TabContainerBase,{useMenu:true,useSlider:true,controllerWidget:"",_makeController:function(srcNode){var cls=
this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout"),TabController=typeof this.controllerWidget=="string"?lang.getObject(this.controllerWidget):this.controllerWidget;return new TabController({id:this.id+"_tablist",ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir,tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":cls,nested:this.nested,useMenu:this.useMenu,useSlider:this.useSlider,tabStripClass:this.tabStrip?this.baseClass+(this.tabStrip?
"":"No")+"Strip":null},srcNode)},postMixInProperties:function(){this.inherited(arguments);if(!this.controllerWidget)this.controllerWidget=(this.tabPosition=="top"||this.tabPosition=="bottom")&&!this.nested?ScrollingTabController:TabController}})})},"dijit/form/_FormValueWidget":function(){define("dijit/form/_FormValueWidget",["dojo/_base/declare","dojo/sniff","./_FormWidget","./_FormValueMixin"],function(declare,has,_FormWidget,_FormValueMixin){return declare("dijit.form._FormValueWidget",[_FormWidget,
_FormValueMixin],{_layoutHackIE7:function(){if(has("ie")==7){var domNode=this.domNode;var parent=domNode.parentNode;var pingNode=domNode.firstChild||domNode;var origFilter=pingNode.style.filter;var _this=this;while(parent&&parent.clientHeight==0){(function ping(){var disconnectHandle=_this.connect(parent,"onscroll",function(){_this.disconnect(disconnectHandle);pingNode.style.filter=(new Date).getMilliseconds();_this.defer(function(){pingNode.style.filter=origFilter})})})();parent=parent.parentNode}}}})})},
"dgrid/extensions/ColumnHider":function(){define(["dojo/_base/declare","dojo/has","dojo/on","../util/misc","put-selector/put","dojo/i18n!./nls/columnHider","xstyle/css!../css/extensions/ColumnHider.css"],function(declare,has,listen,miscUtil,put,i18n){var activeGrid,bodyListener,hasIE=has("ie"),hasIEQuirks=hasIE&&has("quirks"),forAttr=hasIE<8||hasIEQuirks?"htmlFor":"for";function getColumnIdFromCheckbox(cb,grid){return cb.id.substr(grid.id.length+18)}return declare(null,{hiderMenuNode:null,hiderToggleNode:null,
i18nColumnHider:i18n,_hiderMenuOpened:false,_columnHiderRules:null,_columnHiderCheckboxes:null,_renderHiderMenuEntries:function(){var subRows=this.subRows,first=true,srLength,cLength,sr,c;delete this._columnHiderFirstCheckbox;for(sr=0,srLength=subRows.length;sr<srLength;sr++)for(c=0,cLength=subRows[sr].length;c<cLength;c++){this._renderHiderMenuEntry(subRows[sr][c]);if(first){first=false;this._columnHiderFirstCheckbox=this._columnHiderCheckboxes[subRows[sr][c].id]}}},_renderHiderMenuEntry:function(col){var id=
col.id,replacedId=miscUtil.escapeCssIdentifier(id,"-"),div,checkId,checkbox,label;if(col.hidden){col.hidden=false;this._hideColumn(id);col.hidden=true}if(col.unhidable)return;div=put("div.dgrid-hider-menu-row");checkId=this.domNode.id+"-hider-menu-check-"+replacedId;checkbox=this._columnHiderCheckboxes[id]=put(div,"input.dgrid-hider-menu-check.hider-menu-check-"+replacedId+"[type\x3dcheckbox]");checkbox.id=checkId;label=put(div,"label.dgrid-hider-menu-label.hider-menu-label-"+replacedId+"["+forAttr+
"\x3d"+checkId+"]",col.label||col.field||"");put(this.hiderMenuNode,div);if(!col.hidden)checkbox.checked=true},renderHeader:function(){var grid=this,hiderMenuNode=this.hiderMenuNode,hiderToggleNode=this.hiderToggleNode,id;function stopPropagation(event){event.stopPropagation()}this.inherited(arguments);if(!hiderMenuNode){hiderToggleNode=this.hiderToggleNode=put(this.domNode,"button.ui-icon.dgrid-hider-toggle[type\x3dbutton]");this._listeners.push(listen(hiderToggleNode,"click",function(e){grid._toggleColumnHiderMenu(e)}));
hiderMenuNode=this.hiderMenuNode=put("div.dgrid-hider-menu[role\x3ddialog][aria-label\x3d"+this.i18nColumnHider.popupLabel+"]");hiderMenuNode.id=this.id+"-hider-menu";this._listeners.push(listen(hiderMenuNode,"keyup",function(e){var charOrCode=e.charCode||e.keyCode;if(charOrCode===27){grid._toggleColumnHiderMenu(e);hiderToggleNode.focus()}}));hiderMenuNode.style.display="none";put(this.domNode,hiderMenuNode);this._listeners.push(listen(hiderMenuNode,".dgrid-hider-menu-check:"+(hasIE<9||hasIEQuirks?
"click":"change"),function(e){grid._updateColumnHiddenState(getColumnIdFromCheckbox(e.target,grid),!e.target.checked)}));this._listeners.push(listen(hiderMenuNode,"mousedown",stopPropagation),listen(hiderToggleNode,"mousedown",stopPropagation));if(!bodyListener){bodyListener=listen.pausable(document,"mousedown",function(e){activeGrid&&activeGrid._toggleColumnHiderMenu(e)});bodyListener.pause()}}else{for(id in this._columnHiderRules)this._columnHiderRules[id].remove();hiderMenuNode.innerHTML=""}this._columnHiderCheckboxes=
{};this._columnHiderRules={};this._renderHiderMenuEntries()},destroy:function(){this.inherited(arguments);for(var id in this._columnHiderRules)this._columnHiderRules[id].remove()},left:function(cell,steps){return this.right(cell,-steps)},right:function(cell,steps){if(!cell.element)cell=this.cell(cell);var nextCell=this.inherited(arguments),prevCell=cell;while(nextCell.column.hidden){nextCell=this.inherited(arguments,[nextCell,steps>0?1:-1]);if(prevCell.element===nextCell.element)return cell;prevCell=
nextCell}return nextCell},isColumnHidden:function(id){return!!this._columnHiderRules[id]},_toggleColumnHiderMenu:function(){var hidden=this._hiderMenuOpened,hiderMenuNode=this.hiderMenuNode,domNode=this.domNode,firstCheckbox;hiderMenuNode.style.display=hidden?"none":"";if(hidden)hiderMenuNode.style.height="";else{if(hiderMenuNode.offsetHeight>domNode.offsetHeight-12)hiderMenuNode.style.height=domNode.offsetHeight-12+"px";(firstCheckbox=this._columnHiderFirstCheckbox)&&firstCheckbox.focus()}bodyListener[hidden?
"pause":"resume"]();activeGrid=hidden?null:this;this._hiderMenuOpened=!hidden},_hideColumn:function(id){var grid=this,selectorPrefix="#"+miscUtil.escapeCssIdentifier(this.domNode.id)+" .dgrid-column-",tableRule;if(this._columnHiderRules[id])return;this._columnHiderRules[id]=miscUtil.addCssRule(selectorPrefix+miscUtil.escapeCssIdentifier(id,"-"),"display: none;");if(has("ie")===8&&!has("quirks")){tableRule=miscUtil.addCssRule(".dgrid-row-table","display: inline-table;");window.setTimeout(function(){tableRule.remove();
grid.resize()},0)}},_showColumn:function(id){if(this._columnHiderRules[id]){this._columnHiderRules[id].remove();delete this._columnHiderRules[id]}},_updateColumnHiddenState:function(id,hidden){this[hidden?"_hideColumn":"_showColumn"](id);this.columns[id].hidden=hidden;listen.emit(this.domNode,"dgrid-columnstatechange",{grid:this,column:this.columns[id],hidden:hidden,bubbles:true});this.resize()},toggleColumnHiddenState:function(id,hidden){if(typeof hidden==="undefined")hidden=!this._columnHiderRules[id];
this._updateColumnHiddenState(id,hidden);this._columnHiderCheckboxes[id].checked=!hidden}})})},"dojox/rpc/Rest":function(){define("dojox/rpc/Rest",["dojo","dojox"],function(dojo,dojox){dojo.getObject("rpc.Rest",true,dojox);if(dojox.rpc&&dojox.rpc.transportRegistry)dojox.rpc.transportRegistry.register("REST",function(str){return str=="REST"},{getExecutor:function(func,method,svc){return new dojox.rpc.Rest(method.name,(method.contentType||svc._smd.contentType||"").match(/json|javascript/),null,function(id,
args){var request=svc._getRequest(method,[id]);request.url=request.target+(request.data?"?"+request.data:"");if(args&&(args.start>=0||args.count>=0)){request.headers=request.headers||{};request.headers.Range="items\x3d"+(args.start||"0")+"-"+("count"in args&&args.count!=Infinity?args.count+(args.start||0)-1:"")}return request})}});var drr;function index(deferred,service,range,id){deferred.addCallback(function(result){if(deferred.ioArgs.xhr&&range){range=deferred.ioArgs.xhr.getResponseHeader("Content-Range");
deferred.fullLength=range&&(range=range.match(/\/(.*)/))&&parseInt(range[1])}return result});return deferred}drr=dojox.rpc.Rest=function(path,isJson,schema,getRequest){var service;service=function(id,args){return drr._get(service,id,args)};service.isJson=isJson;service._schema=schema;service.cache={serialize:isJson?(dojox.json&&dojox.json.ref||dojo).toJson:function(result){return result}};service._getRequest=getRequest||function(id,args){if(dojo.isObject(id)){id=dojo.objectToQuery(id);id=id?"?"+id:
""}if(args&&args.sort&&!args.queryStr){id+=(id?"\x26":"?")+"sort(";for(var i=0;i<args.sort.length;i++){var sort=args.sort[i];id+=(i>0?",":"")+(sort.descending?"-":"+")+encodeURIComponent(sort.attribute)}id+=")"}var request={url:path+(id==null?"":id),handleAs:isJson?"json":"text",contentType:isJson?"application/json":"text/plain",sync:dojox.rpc._sync,headers:{Accept:isJson?"application/json,application/javascript":"*/*"}};if(args&&(args.start>=0||args.count>=0))request.headers.Range="items\x3d"+(args.start||
"0")+"-"+("count"in args&&args.count!=Infinity?args.count+(args.start||0)-1:"");dojox.rpc._sync=false;return request};function makeRest(name){service[name]=function(id,content){return drr._change(name,service,id,content)}}makeRest("put");makeRest("post");makeRest("delete");service.servicePath=path;return service};drr._index={};drr._timeStamps={};drr._change=function(method,service,id,content){var request=service._getRequest(id);request[method+"Data"]=content;return index(dojo.xhr(method.toUpperCase(),
request,true),service)};drr._get=function(service,id,args){args=args||{};return index(dojo.xhrGet(service._getRequest(id,args)),service,args.start>=0||args.count>=0,id)};return drr})},"dojox/grid/_Events":function(){define("dojox/grid/_Events",["dojo/keys","dojo/dom-class","dojo/_base/declare","dojo/_base/event","dojo/_base/sniff"],function(keys,domClass,declare,event,has){return declare("dojox.grid._Events",null,{cellOverClass:"dojoxGridCellOver",onKeyEvent:function(e){this.dispatchKeyEvent(e)},
onContentEvent:function(e){this.dispatchContentEvent(e)},onHeaderEvent:function(e){this.dispatchHeaderEvent(e)},onStyleRow:function(inRow){var i=inRow;i.customClasses+=(i.odd?" dojoxGridRowOdd":"")+(i.selected?" dojoxGridRowSelected":"")+(i.over?" dojoxGridRowOver":"");this.focus.styleRow(inRow);this.edit.styleRow(inRow)},onKeyDown:function(e){if(e.altKey||e.metaKey)return;var colIdx;switch(e.keyCode){case keys.ESCAPE:this.edit.cancel();break;case keys.ENTER:if(!this.edit.isEditing()){colIdx=this.focus.getHeaderIndex();
if(colIdx>=0){this.setSortIndex(colIdx);break}else this.selection.clickSelect(this.focus.rowIndex,dojo.isCopyKey(e),e.shiftKey);event.stop(e)}if(!e.shiftKey){var isEditing=this.edit.isEditing();this.edit.apply();if(!isEditing)this.edit.setEditCell(this.focus.cell,this.focus.rowIndex)}if(!this.edit.isEditing()){var curView=this.focus.focusView||this.views.views[0];curView.content.decorateEvent(e);this.onRowClick(e);event.stop(e)}break;case keys.SPACE:if(!this.edit.isEditing()){colIdx=this.focus.getHeaderIndex();
if(colIdx>=0){this.setSortIndex(colIdx);break}else this.selection.clickSelect(this.focus.rowIndex,dojo.isCopyKey(e),e.shiftKey);event.stop(e)}break;case keys.TAB:this.focus[e.shiftKey?"previousKey":"nextKey"](e);break;case keys.LEFT_ARROW:case keys.RIGHT_ARROW:if(!this.edit.isEditing()){var keyCode=e.keyCode;event.stop(e);colIdx=this.focus.getHeaderIndex();if(colIdx>=0&&e.shiftKey&&e.ctrlKey)this.focus.colSizeAdjust(e,colIdx,(keyCode==keys.LEFT_ARROW?-1:1)*5);else{var offset=keyCode==keys.LEFT_ARROW?
1:-1;if(this.isLeftToRight())offset*=-1;this.focus.move(0,offset)}}break;case keys.UP_ARROW:if(!this.edit.isEditing()&&this.focus.rowIndex!==0){event.stop(e);this.focus.move(-1,0)}break;case keys.DOWN_ARROW:if(!this.edit.isEditing()&&this.focus.rowIndex+1!=this.rowCount){event.stop(e);this.focus.move(1,0)}break;case keys.PAGE_UP:if(!this.edit.isEditing()&&this.focus.rowIndex!==0){event.stop(e);if(this.focus.rowIndex!=this.scroller.firstVisibleRow+1)this.focus.move(this.scroller.firstVisibleRow-this.focus.rowIndex,
0);else{this.setScrollTop(this.scroller.findScrollTop(this.focus.rowIndex-1));this.focus.move(this.scroller.firstVisibleRow-this.scroller.lastVisibleRow+1,0)}}break;case keys.PAGE_DOWN:if(!this.edit.isEditing()&&this.focus.rowIndex+1!=this.rowCount){event.stop(e);if(this.focus.rowIndex!=this.scroller.lastVisibleRow-1)this.focus.move(this.scroller.lastVisibleRow-this.focus.rowIndex-1,0);else{this.setScrollTop(this.scroller.findScrollTop(this.focus.rowIndex+1));this.focus.move(this.scroller.lastVisibleRow-
this.scroller.firstVisibleRow-1,0)}}break;default:break}},onMouseOver:function(e){e.rowIndex==-1?this.onHeaderCellMouseOver(e):this.onCellMouseOver(e)},onMouseOut:function(e){e.rowIndex==-1?this.onHeaderCellMouseOut(e):this.onCellMouseOut(e)},onMouseDown:function(e){e.rowIndex==-1?this.onHeaderCellMouseDown(e):this.onCellMouseDown(e)},onMouseOverRow:function(e){if(!this.rows.isOver(e.rowIndex)){this.rows.setOverRow(e.rowIndex);e.rowIndex==-1?this.onHeaderMouseOver(e):this.onRowMouseOver(e)}},onMouseOutRow:function(e){if(this.rows.isOver(-1))this.onHeaderMouseOut(e);
else if(!this.rows.isOver(-2)){this.rows.setOverRow(-2);this.onRowMouseOut(e)}},onMouseDownRow:function(e){if(e.rowIndex!=-1)this.onRowMouseDown(e)},onCellMouseOver:function(e){if(e.cellNode)domClass.add(e.cellNode,this.cellOverClass)},onCellMouseOut:function(e){if(e.cellNode)domClass.remove(e.cellNode,this.cellOverClass)},onCellMouseDown:function(e){},onCellClick:function(e){this._click[0]=this._click[1];this._click[1]=e;if(!this.edit.isEditCell(e.rowIndex,e.cellIndex))this.focus.setFocusCell(e.cell,
e.rowIndex);if(this._click.length>1&&this._click[0]==null)this._click.shift();this.onRowClick(e)},onCellDblClick:function(e){var event;if(this._click.length>1&&has("ie"))event=this._click[1];else if(this._click.length>1&&this._click[0].rowIndex!=this._click[1].rowIndex)event=this._click[0];else event=e;this.focus.setFocusCell(event.cell,event.rowIndex);this.edit.setEditCell(event.cell,event.rowIndex);this.onRowDblClick(e)},onCellContextMenu:function(e){this.onRowContextMenu(e)},onCellFocus:function(inCell,
inRowIndex){this.edit.cellFocus(inCell,inRowIndex)},onRowClick:function(e){this.edit.rowClick(e);this.selection.clickSelectEvent(e)},onRowDblClick:function(e){},onRowMouseOver:function(e){},onRowMouseOut:function(e){},onRowMouseDown:function(e){},onRowContextMenu:function(e){event.stop(e)},onHeaderMouseOver:function(e){},onHeaderMouseOut:function(e){},onHeaderCellMouseOver:function(e){if(e.cellNode)domClass.add(e.cellNode,this.cellOverClass)},onHeaderCellMouseOut:function(e){if(e.cellNode)domClass.remove(e.cellNode,
this.cellOverClass)},onHeaderCellMouseDown:function(e){},onHeaderClick:function(e){},onHeaderCellClick:function(e){this.setSortIndex(e.cell.index);this.onHeaderClick(e)},onHeaderDblClick:function(e){},onHeaderCellDblClick:function(e){this.onHeaderDblClick(e)},onHeaderCellContextMenu:function(e){this.onHeaderContextMenu(e)},onHeaderContextMenu:function(e){if(!this.headerMenu)event.stop(e)},onStartEdit:function(inCell,inRowIndex){},onApplyCellEdit:function(inValue,inRowIndex,inFieldIndex){},onCancelEdit:function(inRowIndex){},
onApplyEdit:function(inRowIndex){},onCanSelect:function(inRowIndex){return true},onCanDeselect:function(inRowIndex){return true},onSelected:function(inRowIndex){this.updateRowStyles(inRowIndex)},onDeselected:function(inRowIndex){this.updateRowStyles(inRowIndex)},onSelectionChanged:function(){}})})},"xfile/widgets/ActionToolbarButtonEmbedded":function(){define("xfile/widgets/ActionToolbarButtonEmbedded",["dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","xide/types","xapp/factory/Events",
"dijit/form/Button"],function(declare,html,domClass,on,types,eventFactory,Button){return dojo.declare("xfile.widgets.ActionToolbarButton",[Button],{currentItem:null,buttons:null,iconClass:"",title:"title",disabled:false,iconNode:null,linkNode:null,setDisabled:function(disabled){this.set("disabled",disabled)},postMixInProperties:function(){this.inherited(arguments)},startup:function(){this.inherited(arguments);this.setDisabled(this.disabled)}})})},"dojo/regexp":function(){define(["./_base/kernel",
"./_base/lang"],function(dojo,lang){var regexp={};lang.setObject("dojo.regexp",regexp);regexp.escapeString=function(str,except){return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+\-^])/g,function(ch){if(except&&except.indexOf(ch)!=-1)return ch;return"\\"+ch})};regexp.buildGroupRE=function(arr,re,nonCapture){if(!(arr instanceof Array))return re(arr);var b=[];for(var i=0;i<arr.length;i++)b.push(re(arr[i]));return regexp.group(b.join("|"),nonCapture)};regexp.group=function(expression,nonCapture){return"("+
(nonCapture?"?:":"")+expression+")"};return regexp})},"url:dijit/form/templates/ValidationTextBox.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tid\x3d"widget_${id}" role\x3d"presentation"\n\t\x3e\x3cdiv class\x3d\'dijitReset dijitValidationContainer\'\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value\x3d"\x26#935; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t/\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitInputContainer"\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputInner" data-dojo-attach-point\x3d\'textbox,focusNode\' autocomplete\x3d"off"\n\t\t\t${!nameAttrSetting} type\x3d\'${type}\'\n\t/\x3e\x3c/div\n\x3e\x3c/div\x3e\n',
"xide/views/ACEEditor":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/html","dojo/_base/connect","dojo/on","dojo/dom-geometry","xide/layout/ContentPane","xide/views/_EditorBase","xide/views/TextEditor","xide/utils"],function(array,declare,lang,html,connect,on,domGeometry,ContentPane,_EditorBase,TextEditor,utils){return declare("xide.views.ACEEditor",[ContentPane,_EditorBase],{closeable:true,aceEditor:null,value:null,editorOptions:null,fileName:null,didStart:false,
getEditor:function(){return this.aceEditor||this},getValue:function(){return this.aceEditor.get("value")},_getMode:function(fileName){fileName=fileName||this.fileName;var ext="javascript";if(fileName){ext=utils.getFileExtension(fileName)||"js";if(ext==="js")ext="javascript";if(ext==="css")ext="css";if(ext==="sh")ext="sh";if(ext==="less")ext="less";if(ext==="java")ext="java";if(ext==="xml")ext="xml";if(ext==="html")ext="html";if(ext==="php")ext="php";if(ext==="cp")ext="xml"}return ext},attachACE:function(value){var mode=
this._getMode(this.fileName);console.error("load ace with mode : "+mode);var _options={region:"center",value:value,style:"margin: 0; padding: 0; position:relative;overflow: auto;height:inherit;width:inherit;",mode:mode,readOnly:false,tabSize:2,softTabs:false,wordWrap:false,showPrintMargin:false,highlightActiveLine:false,fontSize:"13px",showGutter:true,className:"editor-ace ace_editor ace-codebox-dark ace_dark"};if(this.editorOptions)_options=lang.mixin(_options,this.editorOptions);var editorPane=
new TextEditor(_options,dojo.doc.createElement("div"));this.containerNode.appendChild(editorPane.domNode);editorPane.startup();this.aceEditor=editorPane;this.aceEditor.setOptions()},startup:function(){if(this.didStart)return;this.didStart=true;this.inherited(arguments);var thiz=this;if(this.value)this.attachACE(this.value);else this.getContent(function(content){thiz.attachACE(content)},function(error){thiz.attachACE()})}})})},"dojox/json/ref":function(){define("dojox/json/ref",["dojo/_base/array",
"dojo/_base/json","dojo/_base/kernel","dojo/_base/lang","dojo/date/stamp","dojox"],function(array,djson,dojo,lang,stamp,dojox){lang.getObject("json",true,dojox);return dojox.json.ref={resolveJson:function(root,args){args=args||{};var idAttribute=args.idAttribute||"id";var refAttribute=this.refAttribute;var idAsRef=args.idAsRef;var prefix=args.idPrefix||"";var assignAbsoluteIds=args.assignAbsoluteIds;var index=args.index||{};var timeStamps=args.timeStamps;var ref,reWalk=[];var pathResolveRegex=/^(.*\/)?(\w+:\/\/)|[^\/\.]+\/\.\.\/|^.*\/(\/)/;
var addProp=this._addProp;var F=function(){};function walk(it,stop,defaultId,needsPrefix,schema,defaultObject){var i,update,val,id=idAttribute in it?it[idAttribute]:defaultId;if(idAttribute in it||id!==undefined&&needsPrefix)id=(prefix+id).replace(pathResolveRegex,"$2$3");var target=defaultObject||it;if(id!==undefined){if(assignAbsoluteIds)it.__id=id;if(args.schemas&&!(it instanceof Array)&&(val=id.match(/^(.+\/)[^\.\[]*$/)))schema=args.schemas[val[1]];if(index[id]&&it instanceof Array==index[id]instanceof
Array){target=index[id];delete target.$ref;delete target._loadObject;update=true}else{var proto=schema&&schema.prototype;if(proto){F.prototype=proto;target=new F}}index[id]=target;if(timeStamps)timeStamps[id]=args.time}while(schema){var properties=schema.properties;if(properties)for(i in it){var propertyDefinition=properties[i];if(propertyDefinition&&propertyDefinition.format=="date-time"&&typeof it[i]=="string")it[i]=stamp.fromISOString(it[i])}schema=schema["extends"]}var length=it.length;for(i in it){if(i==
length)break;if(it.hasOwnProperty(i)){val=it[i];if(typeof val=="object"&&val&&!(val instanceof Date)&&i!="__parent"){ref=val[refAttribute]||idAsRef&&val[idAttribute];if(!ref||!val.__parent)if(it!=reWalk)val.__parent=target;if(ref){delete it[i];var path=ref.toString().replace(/(#)([^\.\[])/,"$1.$2").match(/(^([^\[]*\/)?[^#\.\[]*)#?([\.\[].*)?/);if(index[(prefix+ref).replace(pathResolveRegex,"$2$3")])ref=index[(prefix+ref).replace(pathResolveRegex,"$2$3")];else if(ref=path[1]=="$"||path[1]=="this"||
path[1]==""?root:index[(prefix+path[1]).replace(pathResolveRegex,"$2$3")])if(path[3])path[3].replace(/(\[([^\]]+)\])|(\.?([^\.\[]+))/g,function(t,a,b,c,d){ref=ref&&ref[b?b.replace(/[\"\'\\]/,""):d]});if(ref)val=ref;else if(!stop){var rewalking;if(!rewalking)reWalk.push(target);rewalking=true;val=walk(val,false,val[refAttribute],true,propertyDefinition);val._loadObject=args.loader}}else if(!stop)val=walk(val,reWalk==it,id===undefined?undefined:addProp(id,i),false,propertyDefinition,target!=it&&typeof target[i]==
"object"&&target[i])}it[i]=val;if(target!=it&&!target.__isDirty){var old=target[i];target[i]=val;if(update&&val!==old&&!target._loadObject&&!(i.charAt(0)=="_"&&i.charAt(1)=="_")&&i!="$ref"&&!(val instanceof Date&&old instanceof Date&&val.getTime()==old.getTime())&&!(typeof val=="function"&&typeof old=="function"&&val.toString()==old.toString())&&index.onUpdate)index.onUpdate(target,i,old,val)}}}if(update&&(idAttribute in it||target instanceof Array))for(i in target){if(!target.__isDirty&&target.hasOwnProperty(i)&&
!it.hasOwnProperty(i)&&!(i.charAt(0)=="_"&&i.charAt(1)=="_")&&!(target instanceof Array&&isNaN(i))){if(index.onUpdate&&i!="_loadObject"&&i!="_idAttr")index.onUpdate(target,i,target[i],undefined);delete target[i];while(target instanceof Array&&target.length&&target[target.length-1]===undefined)target.length--}}else if(index.onLoad)index.onLoad(target);return target}if(root&&typeof root=="object"){root=walk(root,false,args.defaultId,true);walk(reWalk,false)}return root},fromJson:function(str,args){function ref(target){var refObject=
{};refObject[this.refAttribute]=target;return refObject}try{var root=eval("("+str+")")}catch(e){throw new SyntaxError("Invalid JSON string: "+e.message+" parsing: "+str);}if(root)return this.resolveJson(root,args);return root},toJson:function(it,prettyPrint,idPrefix,indexSubObjects){var useRefs=this._useRefs;var addProp=this._addProp;var refAttribute=this.refAttribute;idPrefix=idPrefix||"";var paths={};var generated={};function serialize(it,path,_indentStr){if(typeof it=="object"&&it){var value;if(it instanceof
Date)return'"'+stamp.toISOString(it,{zulu:true})+'"';var id=it.__id;if(id){if(path!="#"&&(useRefs&&!id.match(/#/)||paths[id])){var ref=id;if(id.charAt(0)!="#")if(it.__clientId==id)ref="cid:"+id;else if(id.substring(0,idPrefix.length)==idPrefix)ref=id.substring(idPrefix.length);else ref=id;var refObject={};refObject[refAttribute]=ref;return djson.toJson(refObject,prettyPrint)}path=id}else{it.__id=path;generated[path]=it}paths[path]=it;_indentStr=_indentStr||"";var nextIndent=prettyPrint?_indentStr+
djson.toJsonIndentStr:"";var newLine=prettyPrint?"\n":"";var sep=prettyPrint?" ":"";if(it instanceof Array){var res=array.map(it,function(obj,i){var val=serialize(obj,addProp(path,i),nextIndent);if(typeof val!="string")val="undefined";return newLine+nextIndent+val});return"["+res.join(","+sep)+newLine+_indentStr+"]"}var output=[];for(var i in it)if(it.hasOwnProperty(i)){var keyStr;if(typeof i=="number")keyStr='"'+i+'"';else if(typeof i=="string"&&(i.charAt(0)!="_"||i.charAt(1)!="_"))keyStr=djson._escapeString(i);
else continue;var val=serialize(it[i],addProp(path,i),nextIndent);if(typeof val!="string")continue;output.push(newLine+nextIndent+keyStr+":"+sep+val)}return"{"+output.join(","+sep)+newLine+_indentStr+"}"}else if(typeof it=="function"&&dojox.json.ref.serializeFunctions)return it.toString();return djson.toJson(it)}var json=serialize(it,"#","");if(!indexSubObjects)for(var i in generated)delete generated[i].__id;return json},_addProp:function(id,prop){return id+(id.match(/#/)?id.length==1?"":".":"#")+
prop},refAttribute:"$ref",_useRefs:false,serializeFunctions:false}})},"dojox/html/metrics":function(){define("dojox/html/metrics",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/sniff","dojo/ready","dojo/_base/unload","dojo/_base/window","dojo/dom-geometry"],function(kernel,lang,has,ready,UnloadUtil,Window,DOMGeom){var dhm=lang.getObject("dojox.html.metrics",true);var dojox=lang.getObject("dojox");dhm.getFontMeasurements=function(){var heights={"1em":0,"1ex":0,"100%":0,"12pt":0,"16px":0,"xx-small":0,
"x-small":0,"small":0,"medium":0,"large":0,"x-large":0,"xx-large":0};if(has("ie"))Window.doc.documentElement.style.fontSize="100%";var div=Window.doc.createElement("div");var ds=div.style;ds.position="absolute";ds.left="-100px";ds.top="0";ds.width="30px";ds.height="1000em";ds.borderWidth="0";ds.margin="0";ds.padding="0";ds.outline="0";ds.lineHeight="1";ds.overflow="hidden";Window.body().appendChild(div);for(var p in heights){ds.fontSize=p;heights[p]=Math.round(div.offsetHeight*12/16)*16/12/1E3}Window.body().removeChild(div);
div=null;return heights};var fontMeasurements=null;dhm.getCachedFontMeasurements=function(recalculate){if(recalculate||!fontMeasurements)fontMeasurements=dhm.getFontMeasurements();return fontMeasurements};var measuringNode=null,empty={};dhm.getTextBox=function(text,style,className){var m,s;if(!measuringNode){m=measuringNode=Window.doc.createElement("div");var c=Window.doc.createElement("div");c.appendChild(m);s=c.style;s.overflow="scroll";s.position="absolute";s.left="0px";s.top="-10000px";s.width=
"1px";s.height="1px";s.visibility="hidden";s.borderWidth="0";s.margin="0";s.padding="0";s.outline="0";Window.body().appendChild(c)}else m=measuringNode;m.className="";s=m.style;s.borderWidth="0";s.margin="0";s.padding="0";s.outline="0";if(arguments.length>1&&style)for(var i in style){if(i in empty)continue;s[i]=style[i]}if(arguments.length>2&&className)m.className=className;m.innerHTML=text;var box=DOMGeom.position(m);box.w=m.parentNode.scrollWidth;return box};var scroll={w:16,h:16};dhm.getScrollbar=
function(){return{w:scroll.w,h:scroll.h}};dhm._fontResizeNode=null;dhm.initOnFontResize=function(interval){var f=dhm._fontResizeNode=Window.doc.createElement("iframe");var fs=f.style;fs.position="absolute";fs.width="5em";fs.height="10em";fs.top="-10000px";fs.display="none";if(has("ie"))f.onreadystatechange=function(){if(f.contentWindow.document.readyState=="complete")f.onresize=f.contentWindow.parent[dojox._scopeName].html.metrics._fontresize};else f.onload=function(){f.contentWindow.onresize=f.contentWindow.parent[dojox._scopeName].html.metrics._fontresize};
f.setAttribute("src","javascript:'\x3chtml\x3e\x3chead\x3e\x3cscript\x3eif(\"loadFirebugConsole\" in window){window.loadFirebugConsole();}\x3c/script\x3e\x3c/head\x3e\x3cbody\x3e\x3c/body\x3e\x3c/html\x3e'");Window.body().appendChild(f);dhm.initOnFontResize=function(){}};dhm.onFontResize=function(){};dhm._fontresize=function(){dhm.onFontResize()};UnloadUtil.addOnUnload(function(){var f=dhm._fontResizeNode;if(f){if(has("ie")&&f.onresize)f.onresize=null;else if(f.contentWindow&&f.contentWindow.onresize)f.contentWindow.onresize=
null;dhm._fontResizeNode=null}});ready(function(){try{var n=Window.doc.createElement("div");n.style.cssText="top:0;left:0;width:100px;height:100px;overflow:scroll;position:absolute;visibility:hidden;";Window.body().appendChild(n);scroll.w=n.offsetWidth-n.clientWidth;scroll.h=n.offsetHeight-n.clientHeight;Window.body().removeChild(n);delete n}catch(e){}if("fontSizeWatch"in kernel.config&&!!kernel.config.fontSizeWatch)dhm.initOnFontResize()});return dhm})},"dojo/fx":function(){define(["./_base/lang",
"./Evented","./_base/kernel","./_base/array","./aspect","./_base/fx","./dom","./dom-style","./dom-geometry","./ready","require"],function(lang,Evented,dojo,arrayUtil,aspect,baseFx,dom,domStyle,geom,ready,require){if(!dojo.isAsync)ready(0,function(){var requires=["./fx/Toggler"];require(requires)});var coreFx=dojo.fx={};var _baseObj={_fire:function(evt,args){if(this[evt])this[evt].apply(this,args||[]);return this}};var _chain=function(animations){this._index=-1;this._animations=animations||[];this._current=
this._onAnimateCtx=this._onEndCtx=null;this.duration=0;arrayUtil.forEach(this._animations,function(a){this.duration+=a.duration;if(a.delay)this.duration+=a.delay},this)};_chain.prototype=new Evented;lang.extend(_chain,{_onAnimate:function(){this._fire("onAnimate",arguments)},_onEnd:function(){this._onAnimateCtx.remove();this._onEndCtx.remove();this._onAnimateCtx=this._onEndCtx=null;if(this._index+1==this._animations.length)this._fire("onEnd");else{this._current=this._animations[++this._index];this._onAnimateCtx=
aspect.after(this._current,"onAnimate",lang.hitch(this,"_onAnimate"),true);this._onEndCtx=aspect.after(this._current,"onEnd",lang.hitch(this,"_onEnd"),true);this._current.play(0,true)}},play:function(delay,gotoStart){if(!this._current)this._current=this._animations[this._index=0];if(!gotoStart&&this._current.status()=="playing")return this;var beforeBegin=aspect.after(this._current,"beforeBegin",lang.hitch(this,function(){this._fire("beforeBegin")}),true),onBegin=aspect.after(this._current,"onBegin",
lang.hitch(this,function(arg){this._fire("onBegin",arguments)}),true),onPlay=aspect.after(this._current,"onPlay",lang.hitch(this,function(arg){this._fire("onPlay",arguments);beforeBegin.remove();onBegin.remove();onPlay.remove()}));if(this._onAnimateCtx)this._onAnimateCtx.remove();this._onAnimateCtx=aspect.after(this._current,"onAnimate",lang.hitch(this,"_onAnimate"),true);if(this._onEndCtx)this._onEndCtx.remove();this._onEndCtx=aspect.after(this._current,"onEnd",lang.hitch(this,"_onEnd"),true);this._current.play.apply(this._current,
arguments);return this},pause:function(){if(this._current){var e=aspect.after(this._current,"onPause",lang.hitch(this,function(arg){this._fire("onPause",arguments);e.remove()}),true);this._current.pause()}return this},gotoPercent:function(percent,andPlay){this.pause();var offset=this.duration*percent;this._current=null;arrayUtil.some(this._animations,function(a){if(a.duration<=offset){this._current=a;return true}offset-=a.duration;return false});if(this._current)this._current.gotoPercent(offset/this._current.duration,
andPlay);return this},stop:function(gotoEnd){if(this._current){if(gotoEnd){for(;this._index+1<this._animations.length;++this._index)this._animations[this._index].stop(true);this._current=this._animations[this._index]}var e=aspect.after(this._current,"onStop",lang.hitch(this,function(arg){this._fire("onStop",arguments);e.remove()}),true);this._current.stop()}return this},status:function(){return this._current?this._current.status():"stopped"},destroy:function(){if(this._onAnimateCtx)this._onAnimateCtx.remove();
if(this._onEndCtx)this._onEndCtx.remove()}});lang.extend(_chain,_baseObj);coreFx.chain=function(animations){return new _chain(animations)};var _combine=function(animations){this._animations=animations||[];this._connects=[];this._finished=0;this.duration=0;arrayUtil.forEach(animations,function(a){var duration=a.duration;if(a.delay)duration+=a.delay;if(this.duration<duration)this.duration=duration;this._connects.push(aspect.after(a,"onEnd",lang.hitch(this,"_onEnd"),true))},this);this._pseudoAnimation=
new baseFx.Animation({curve:[0,1],duration:this.duration});var self=this;arrayUtil.forEach(["beforeBegin","onBegin","onPlay","onAnimate","onPause","onStop","onEnd"],function(evt){self._connects.push(aspect.after(self._pseudoAnimation,evt,function(){self._fire(evt,arguments)},true))})};lang.extend(_combine,{_doAction:function(action,args){arrayUtil.forEach(this._animations,function(a){a[action].apply(a,args)});return this},_onEnd:function(){if(++this._finished>this._animations.length)this._fire("onEnd")},
_call:function(action,args){var t=this._pseudoAnimation;t[action].apply(t,args)},play:function(delay,gotoStart){this._finished=0;this._doAction("play",arguments);this._call("play",arguments);return this},pause:function(){this._doAction("pause",arguments);this._call("pause",arguments);return this},gotoPercent:function(percent,andPlay){var ms=this.duration*percent;arrayUtil.forEach(this._animations,function(a){a.gotoPercent(a.duration<ms?1:ms/a.duration,andPlay)});this._call("gotoPercent",arguments);
return this},stop:function(gotoEnd){this._doAction("stop",arguments);this._call("stop",arguments);return this},status:function(){return this._pseudoAnimation.status()},destroy:function(){arrayUtil.forEach(this._connects,function(handle){handle.remove()})}});lang.extend(_combine,_baseObj);coreFx.combine=function(animations){return new _combine(animations)};coreFx.wipeIn=function(args){var node=args.node=dom.byId(args.node),s=node.style,o;var anim=baseFx.animateProperty(lang.mixin({properties:{height:{start:function(){o=
s.overflow;s.overflow="hidden";if(s.visibility=="hidden"||s.display=="none"){s.height="1px";s.display="";s.visibility="";return 1}else{var height=domStyle.get(node,"height");return Math.max(height,1)}},end:function(){return node.scrollHeight}}}},args));var fini=function(){s.height="auto";s.overflow=o};aspect.after(anim,"onStop",fini,true);aspect.after(anim,"onEnd",fini,true);return anim};coreFx.wipeOut=function(args){var node=args.node=dom.byId(args.node),s=node.style,o;var anim=baseFx.animateProperty(lang.mixin({properties:{height:{end:1}}},
args));aspect.after(anim,"beforeBegin",function(){o=s.overflow;s.overflow="hidden";s.display=""},true);var fini=function(){s.overflow=o;s.height="auto";s.display="none"};aspect.after(anim,"onStop",fini,true);aspect.after(anim,"onEnd",fini,true);return anim};coreFx.slideTo=function(args){var node=args.node=dom.byId(args.node),top=null,left=null;var init=function(n){return function(){var cs=domStyle.getComputedStyle(n);var pos=cs.position;top=pos=="absolute"?n.offsetTop:parseInt(cs.top)||0;left=pos==
"absolute"?n.offsetLeft:parseInt(cs.left)||0;if(pos!="absolute"&&pos!="relative"){var ret=geom.position(n,true);top=ret.y;left=ret.x;n.style.position="absolute";n.style.top=top+"px";n.style.left=left+"px"}}}(node);init();var anim=baseFx.animateProperty(lang.mixin({properties:{top:args.top||0,left:args.left||0}},args));aspect.after(anim,"beforeBegin",init,true);return anim};return coreFx})},"xide/manager/RPCService":function(){define(["dojo/_base/declare","dojo/_base/lang","dojox/rpc/Service","dojo/has",
"dojox/encoding/digests/SHA1"],function(declare,lang,Service,has,SHA1){return declare("xide.manager.RPCService",[Service],{extraArgs:null,signatureField:"sig",signatureToken:null,correctTarget:true,sync:false,_getRequest:function(method,args){var smd=this._smd;var envDef=dojox.rpc.envelopeRegistry.match(method.envelope||smd.envelope||"NONE");var parameters=(method.parameters||[]).concat(smd.parameters||[]);if(envDef.namedParams){if(args.length==1&&dojo.isObject(args[0]))args=args[0];else{var data=
{};for(var i=0;i<method.parameters.length;i++)if(typeof args[i]!="undefined"||!method.parameters[i].optional)data[method.parameters[i].name]=args[i];args=data}if(method.strictParameters||smd.strictParameters)for(i in args){var found=false;for(var j=0;j<parameters.length;j++)if(parameters[i].name==i)found=true;if(!found)delete args[i]}for(i=0;i<parameters.length;i++){var param=parameters[i];if(!param.optional&&param.name&&!args[param.name])if(param["default"])args[param.name]=param["default"];else if(!(param.name in
args))throw new Error("Required parameter "+param.name+" was omitted");}}else if(parameters&&parameters[0]&&parameters[0].name&&args.length==1&&dojo.isObject(args[0]))if(envDef.namedParams===false)args=dojox.rpc.toOrdered(parameters,args);else args=args[0];if(dojo.isObject(this._options))args=dojo.mixin(args,this._options);var schema=method._schema||method.returns;var request=envDef.serialize.apply(this,[smd,method,args]);request._envDef=envDef;var contentType=method.contentType||smd.contentType||
request.contentType;return dojo.mixin(request,{sync:this.sync,contentType:contentType,headers:method.headers||smd.headers||request.headers||{},target:request.target||dojox.rpc.getTarget(smd,method),transport:method.transport||smd.transport||request.transport,envelope:method.envelope||smd.envelope||request.envelope,timeout:method.timeout||smd.timeout,callbackParamName:method.callbackParamName||smd.callbackParamName,rpcObjectParamName:method.rpcObjectParamName||smd.rpcObjectParamName,schema:schema,
handleAs:request.handleAs||"auto",preventCache:method.preventCache||smd.preventCache,frameDoc:this._options.frameDoc||undefined})},_executeMethod:function(method){var args=[];var i;if(arguments.length==2&&lang.isArray(arguments[1]))args=arguments[1];else for(i=1;i<arguments.length;i++)args.push(arguments[i]);var request=this._getRequest(method,args);if(this.correctTarget)request.target=this._smd.target;if(this.extraArgs){var index=0;for(var key in this.extraArgs){request.target+=request.target.indexOf("?")!=
-1?"\x26":"?";request.target+=key+"\x3d"+this.extraArgs[key]}}if(this.signatureToken){request.target+=request.target.indexOf("?")!=-1?"\x26":"?";var signature=SHA1._hmac(request.data,this.signatureToken,1);request.target+=this.signatureField+"\x3d"+signature}var deferred=dojox.rpc.transportRegistry.match(request.transport).fire(request);deferred.addBoth(function(results){return request._envDef.deserialize.call(this,results)});return deferred}})})},"dgrid/Keyboard":function(){define(["dojo/_base/declare",
"dojo/aspect","dojo/on","dojo/_base/lang","dojo/has","put-selector/put","dojo/_base/Deferred","dojo/_base/sniff"],function(declare,aspect,on,lang,has,put,Deferred){var delegatingInputTypes={checkbox:1,radio:1,button:1},hasGridCellClass=/\bdgrid-cell\b/,hasGridRowClass=/\bdgrid-row\b/;has.add("dom-contains",function(global,doc,element){return!!element.contains});function contains(parent,node){if(has("dom-contains"))return parent.contains(node);else return parent.compareDocumentPosition(node)&8}var Keyboard=
declare(null,{pageSkip:10,tabIndex:0,keyMap:null,headerKeyMap:null,postMixInProperties:function(){this.inherited(arguments);if(!this.keyMap)this.keyMap=lang.mixin({},Keyboard.defaultKeyMap);if(!this.headerKeyMap)this.headerKeyMap=lang.mixin({},Keyboard.defaultHeaderKeyMap)},postCreate:function(){this.inherited(arguments);var grid=this;function handledEvent(event){var target=event.target;return target.type&&(!delegatingInputTypes[target.type]||event.keyCode==32)}function enableNavigation(areaNode){var cellNavigation=
grid.cellNavigation,isFocusableClass=cellNavigation?hasGridCellClass:hasGridRowClass,isHeader=areaNode===grid.headerNode,initialNode=areaNode;function initHeader(){if(grid._focusedHeaderNode)grid._focusedHeaderNode.tabIndex=-1;if(grid.showHeader){grid._focusedHeaderNode=initialNode=cellNavigation?grid.headerNode.getElementsByTagName("th")[0]:grid.headerNode;if(initialNode)initialNode.tabIndex=grid.tabIndex}}if(isHeader){initHeader();aspect.after(grid,"renderHeader",initHeader,true)}else aspect.after(grid,
"renderArray",function(ret){return Deferred.when(ret,function(ret){var focusedNode=grid._focusedNode||initialNode;if(isFocusableClass.test(focusedNode.className)&&contains(areaNode,focusedNode))return ret;for(var i=0,elements=areaNode.getElementsByTagName("*"),element;element=elements[i];++i)if(isFocusableClass.test(element.className)){focusedNode=grid._focusedNode=element;break}focusedNode.tabIndex=grid.tabIndex;return ret})});grid._listeners.push(on(areaNode,"mousedown",function(event){if(!handledEvent(event))grid._focusOnNode(event.target,
isHeader,event)}));grid._listeners.push(on(areaNode,"keydown",function(event){if(event.metaKey||event.altKey)return;var handler=grid[isHeader?"headerKeyMap":"keyMap"][event.keyCode];if(handler&&!handledEvent(event))handler.call(grid,event)}))}if(this.tabableHeader){enableNavigation(this.headerNode);on(this.headerNode,"dgrid-cellfocusin",function(){grid.scrollTo({x:this.scrollLeft})})}enableNavigation(this.contentNode)},removeRow:function(rowElement){if(!this._focusedNode)return this.inherited(arguments);
var self=this,isActive=document.activeElement===this._focusedNode,focusedTarget=this[this.cellNavigation?"cell":"row"](this._focusedNode),focusedRow=focusedTarget.row||focusedTarget,sibling;rowElement=rowElement.element||rowElement;if(rowElement===focusedRow.element){sibling=this.down(focusedRow,true);if(!sibling||sibling.element===rowElement)sibling=this.up(focusedRow,true);this._removedFocus={active:isActive,rowId:focusedRow.id,columnId:focusedTarget.column&&focusedTarget.column.id,siblingId:!sibling||
sibling.element===rowElement?undefined:sibling.id};setTimeout(function(){if(self._removedFocus)self._restoreFocus(focusedRow.id)},0);this._focusedNode=null}this.inherited(arguments)},insertRow:function(object){var rowElement=this.inherited(arguments);if(this._removedFocus&&!this._removedFocus.wait)this._restoreFocus(rowElement);return rowElement},_restoreFocus:function(row){var focusInfo=this._removedFocus,newTarget,cell;row=row&&this.row(row);newTarget=row&&row.element&&row.id===focusInfo.rowId?
row:typeof focusInfo.siblingId!=="undefined"&&this.row(focusInfo.siblingId);if(newTarget&&newTarget.element){if(!newTarget.element.parentNode.parentNode){focusInfo.wait=true;return}if(typeof focusInfo.columnId!=="undefined"){cell=this.cell(newTarget,focusInfo.columnId);if(cell&&cell.element)newTarget=cell}if(focusInfo.active&&newTarget.element.offsetHeight!==0)this.focus(newTarget);else{put(newTarget.element,".dgrid-focus");newTarget.element.tabIndex=this.tabIndex}}delete this._removedFocus},addKeyHandler:function(key,
callback,isHeader){return aspect.after(this[isHeader?"headerKeyMap":"keyMap"],key,callback,true)},_focusOnNode:function(element,isHeader,event){var focusedNodeProperty="_focused"+(isHeader?"Header":"")+"Node",focusedNode=this[focusedNodeProperty],cellOrRowType=this.cellNavigation?"cell":"row",cell=this[cellOrRowType](element),inputs,input,numInputs,inputFocused,i;element=cell&&cell.element;if(!element)return;if(this.cellNavigation){inputs=element.getElementsByTagName("input");for(i=0,numInputs=inputs.length;i<
numInputs;i++){input=inputs[i];if((input.tabIndex!=-1||"lastValue"in input)&&!input.disabled){if(has("ie")<8)input.style.position="relative";input.focus();if(has("ie")<8)input.style.position="";inputFocused=true;break}}}event=lang.mixin({grid:this},event);if(event.type)event.parentType=event.type;if(!event.bubbles)event.bubbles=true;if(focusedNode){put(focusedNode,"!dgrid-focus[!tabIndex]");if(has("ie")<8)focusedNode.style.position="";event[cellOrRowType]=this[cellOrRowType](focusedNode);on.emit(element,
"dgrid-cellfocusout",event)}focusedNode=this[focusedNodeProperty]=element;event[cellOrRowType]=cell;if(!inputFocused){if(has("ie")<8)element.style.position="relative";element.tabIndex=this.tabIndex;element.focus()}put(element,".dgrid-focus");on.emit(focusedNode,"dgrid-cellfocusin",event)},focusHeader:function(element){this._focusOnNode(element||this._focusedHeaderNode,true)},focus:function(element){this._focusOnNode(element||this._focusedNode,false)}});var moveFocusVertical=Keyboard.moveFocusVertical=
function(event,steps){var cellNavigation=this.cellNavigation,target=this[cellNavigation?"cell":"row"](event),columnId=cellNavigation&&target.column.id,next=this.down(this._focusedNode,steps,true);if(cellNavigation)next=this.cell(next,columnId);this._focusOnNode(next,false,event);event.preventDefault()};var moveFocusUp=Keyboard.moveFocusUp=function(event){moveFocusVertical.call(this,event,-1)};var moveFocusDown=Keyboard.moveFocusDown=function(event){moveFocusVertical.call(this,event,1)};var moveFocusPageUp=
Keyboard.moveFocusPageUp=function(event){moveFocusVertical.call(this,event,-this.pageSkip)};var moveFocusPageDown=Keyboard.moveFocusPageDown=function(event){moveFocusVertical.call(this,event,this.pageSkip)};var moveFocusHorizontal=Keyboard.moveFocusHorizontal=function(event,steps){if(!this.cellNavigation)return;var isHeader=!this.row(event),currentNode=this["_focused"+(isHeader?"Header":"")+"Node"];this._focusOnNode(this.right(currentNode,steps),isHeader,event);event.preventDefault()};var moveFocusLeft=
Keyboard.moveFocusLeft=function(event){moveFocusHorizontal.call(this,event,-1)};var moveFocusRight=Keyboard.moveFocusRight=function(event){moveFocusHorizontal.call(this,event,1)};var moveHeaderFocusEnd=Keyboard.moveHeaderFocusEnd=function(event,scrollToBeginning){var nodes;if(this.cellNavigation){nodes=this.headerNode.getElementsByTagName("th");this._focusOnNode(nodes[scrollToBeginning?0:nodes.length-1],true,event)}event.preventDefault()};var moveHeaderFocusHome=Keyboard.moveHeaderFocusHome=function(event){moveHeaderFocusEnd.call(this,
event,true)};var moveFocusEnd=Keyboard.moveFocusEnd=function(event,scrollToTop){var self=this,cellNavigation=this.cellNavigation,contentNode=this.contentNode,contentPos=scrollToTop?0:contentNode.scrollHeight,scrollPos=contentNode.scrollTop+contentPos,endChild=contentNode[scrollToTop?"firstChild":"lastChild"],hasPreload=endChild.className.indexOf("dgrid-preload")>-1,endTarget=hasPreload?endChild[(scrollToTop?"next":"previous")+"Sibling"]:endChild,endPos=endTarget.offsetTop+(scrollToTop?0:endTarget.offsetHeight),
handle;if(hasPreload){while(endTarget&&endTarget.className.indexOf("dgrid-row")<0)endTarget=endTarget[(scrollToTop?"next":"previous")+"Sibling"];if(!endTarget)return}if(!hasPreload||endChild.offsetHeight<1){if(cellNavigation)endTarget=this.cell(endTarget,this.cell(event).column.id);this._focusOnNode(endTarget,false,event)}else{if(!has("dom-addeventlistener"))event=lang.mixin({},event);handle=aspect.after(this,"renderArray",function(rows){handle.remove();return Deferred.when(rows,function(rows){var target=
rows[scrollToTop?0:rows.length-1];if(cellNavigation)target=self.cell(target,self.cell(event).column.id);self._focusOnNode(target,false,event)})})}if(scrollPos===endPos)event.preventDefault()};var moveFocusHome=Keyboard.moveFocusHome=function(event){moveFocusEnd.call(this,event,true)};function preventDefault(event){event.preventDefault()}Keyboard.defaultKeyMap={32:preventDefault,33:moveFocusPageUp,34:moveFocusPageDown,35:moveFocusEnd,36:moveFocusHome,37:moveFocusLeft,38:moveFocusUp,39:moveFocusRight,
40:moveFocusDown};Keyboard.defaultHeaderKeyMap={32:preventDefault,35:moveHeaderFocusEnd,36:moveHeaderFocusHome,37:moveFocusLeft,39:moveFocusRight};return Keyboard})},"xide/views/ToggleSplitter":function(){define("xide/views/ToggleSplitter",["dojo","dijit","xide/factory","xide/types"],function(dojo,dijit,factory,types){var ToggleSplitter=dojo.declare("xide.views.ToggleSplitter",dijit.layout._Splitter,{container:null,child:null,region:null,state:"full",_closedSize:"0",delegate:null,baseClass:"dojoxToggleSplitter",
templateString:'\x3cdiv class\x3d"dijitSplitter dojoxToggleSplitter" dojoAttachEvent\x3d"onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse"\x3e'+'\x3cdiv dojoAttachPoint\x3d"toggleNode" class\x3d"dijitSplitterThumb dojoxToggleSplitterIcon" tabIndex\x3d"0" role\x3d"separator" '+'dojoAttachEvent\x3d"onmousedown:_onToggleNodeMouseDown,onclick:_toggle,onmouseenter:_onToggleNodeMouseMove,onmouseleave:_onToggleNodeMouseMove,onfocus:_onToggleNodeMouseMove,onblur:_onToggleNodeMouseMove"\x3e'+
'\x3cspan class\x3d"dojoxToggleSplitterA11y" dojoAttachPoint\x3d"a11yText"\x3e\x3c/span\x3e\x3c/div\x3e'+"\x3c/div\x3e",postMixInProperties:function(){this.inherited(arguments);if(this.container&&this.container.cookieName)this._cookieName=this.container.cookieName+"_"+this.region},postCreate:function(){this.inherited(arguments);var region=this.region;dojo.addClass(this.domNode,this.baseClass+region.charAt(0).toUpperCase()+region.substring(1))},startup:function(){this.inherited(arguments);var parentPane=
this.child,paneNode=this.child.domNode,intPaneSize=dojo.style(paneNode,this.horizontal?"height":"width");this.domNode.setAttribute("aria-controls",paneNode.id);dojo.forEach(["toggleSplitterState","toggleSplitterFullSize","toggleSplitterCollapsedSize"],function(name){var pname=name.substring("toggleSplitter".length);pname=pname.charAt(0).toLowerCase()+pname.substring(1);if(name in this.child)this[pname]=this.child[name]},this);if(!this.fullSize)this.fullSize=this.state=="full"?intPaneSize+"px":"75px";
this._openStyleProps=this._getStyleProps(paneNode,"full");this._started=true;this.set("state",this.state);return this},_onKeyPress:function(evt){if(this.state=="full")this.inherited(arguments);if(evt.charCode==dojo.keys.SPACE||evt.keyCode==dojo.keys.ENTER)this._toggle(evt)},_onToggleNodeMouseDown:function(evt){dojo.stopEvent(evt);this.toggleNode.focus()},_startDrag:function(e){if(this.state=="full")this.inherited(arguments)},_stopDrag:function(e){this.inherited(arguments);this.toggleNode.blur();factory.publish(types.EVENTS.RESIZE,
{},this)},_toggleEx:function(evt,state){var state;switch(this.state){case "full":state=this.collapsedSize?"collapsed":"closed";break;case "collapsed":state="closed";break;default:state="full"}this.set("state",state);var thiz=this;setTimeout(function(){if(thiz.delegate&&thiz.delegate.onChangeToggleSplitterState)thiz.delegate.onChangeToggleSplitterState(thiz,state)},100)},_toggle:function(evt){try{this._toggleEx(evt)}catch(e){}factory.publish(types.EVENTS.RESIZE,{},this)},_onToggleNodeMouseMove:function(evt){var baseClass=
this.baseClass,toggleNode=this.toggleNode,on=this.state=="full"||this.state=="collapsed",leave=evt.type=="mouseout"||evt.type=="blur";dojo.toggleClass(toggleNode,baseClass+"IconOpen",leave&&on);dojo.toggleClass(toggleNode,baseClass+"IconOpenHover",!leave&&on);dojo.toggleClass(toggleNode,baseClass+"IconClosed",leave&&!on);dojo.toggleClass(toggleNode,baseClass+"IconClosedHover",!leave&&!on)},_handleOnChange:function(preState){var paneNode=this.child.domNode,openProps,paneStyle,dim=this.horizontal?"height":
"width";if(this.state=="full"){var styleProps=dojo.mixin({display:"block",overflow:"auto",visibility:"visible"},this._openStyleProps);styleProps[dim]=this._openStyleProps&&this._openStyleProps[dim]?this._openStyleProps[dim]:this.fullSize;dojo.style(this.domNode,"cursor","");dojo.style(paneNode,styleProps)}else if(this.state=="collapsed"){paneStyle=dojo.getComputedStyle(paneNode);openProps=this._getStyleProps(paneNode,"full",paneStyle);this._openStyleProps=openProps;dojo.style(this.domNode,"cursor",
"auto");dojo.style(paneNode,dim,this.collapsedSize)}else{if(!this.collapsedSize){paneStyle=dojo.getComputedStyle(paneNode);openProps=this._getStyleProps(paneNode,"full",paneStyle);this._openStyleProps=openProps}var closedProps=this._getStyleProps(paneNode,"closed",paneStyle);dojo.style(this.domNode,"cursor","auto");dojo.style(paneNode,closedProps)}this._setStateClass();if(this.container._started)this.container._layoutChildren(this.region)},_getStyleProps:function(paneNode,state,paneStyle){if(!paneStyle)paneStyle=
dojo.getComputedStyle(paneNode);var styleProps={},dim=this.horizontal?"height":"width";styleProps["overflow"]=state!="closed"?paneStyle["overflow"]:"hidden";styleProps["visibility"]=state!="closed"?paneStyle["visibility"]:"hidden";styleProps[dim]=state!="closed"?paneNode.style[dim]||paneStyle[dim]:this._closedSize;var edgeNames=["Top","Right","Bottom","Left"];dojo.forEach(["padding","margin","border"],function(pname){for(var i=0;i<edgeNames.length;i++){var fullName=pname+edgeNames[i];if(pname=="border")fullName+=
"Width";if(undefined!==paneStyle[fullName])styleProps[fullName]=state!="closed"?paneStyle[fullName]:0}});return styleProps},_setStateClass:function(){var arrow="\x26#9652",region=this.region.toLowerCase(),baseClass=this.baseClass,toggleNode=this.toggleNode,on=this.state=="full"||this.state=="collapsed",focused=this.focused;dojo.toggleClass(toggleNode,baseClass+"IconOpen",on&&!focused);dojo.toggleClass(toggleNode,baseClass+"IconClosed",!on&&!focused);dojo.toggleClass(toggleNode,baseClass+"IconOpenHover",
on&&focused);dojo.toggleClass(toggleNode,baseClass+"IconClosedHover",!on&&focused);if(region=="top"&&on||region=="bottom"&&!on)arrow="\x26#9650";else if(region=="top"&&!on||region=="bottom"&&on)arrow="\x26#9660";else if(region=="right"&&on||region=="left"&&!on)arrow="\x26#9654";else if(region=="right"&&!on||region=="left"&&on)arrow="\x26#9664";this.a11yText.innerHTML=arrow},_setStateAttr:function(state){if(!this._started)return;var preState=this.state;this.state=state;this._handleOnChange(preState);
var evtName;switch(state){case "full":this.domNode.setAttribute("aria-expanded",true);evtName="onOpen";break;case "collapsed":this.domNode.setAttribute("aria-expanded",true);evtName="onCollapsed";break;default:this.domNode.setAttribute("aria-expanded",false);evtName="onClosed"}this[evtName](this.child)},onOpen:function(pane){},onCollapsed:function(pane){},onClosed:function(pane){}});dojo.extend(dijit._Widget,{toggleSplitterState:"full",toggleSplitterFullSize:"",toggleSplitterCollapsedSize:""});return ToggleSplitter})},
"dojox/fx/_core":function(){define("dojox/fx/_core",["dojo/_base/lang","dojo/_base/array","./_base"],function(lang,arrayUtil,dojoxFx){var line=function(start,end){this.start=start;this.end=end;var isArray=lang.isArray(start),d=isArray?[]:end-start;if(isArray){arrayUtil.forEach(this.start,function(s,i){d[i]=this.end[i]-s},this);this.getValue=function(n){var res=[];arrayUtil.forEach(this.start,function(s,i){res[i]=d[i]*n+s},this);return res}}else this.getValue=function(n){return d*n+this.start}};dojoxFx._Line=
line;return line})},"cbtree/model/FileStoreModelChecked":function(){define("cbtree/model/FileStoreModelChecked",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/window","dojo/aspect","./TreeStoreModel"],function(array,declare,lang,win,aspect,TreeStoreModel){return declare([TreeStoreModel],{deferItemLoadingUntilExpand:true,queryOptions:null,sort:null,rootLabel:"ROOT",rootId:"$rootDir$",moduleName:"cbTree/models/FileStoreModelChecked",constructor:function(params){var store=this.store;
this.root={store:this,root:true,id:this.rootId,label:this.rootLabel,children:params.rootChildren};this.root[this.checkedAttr]=this.checkedState;this.hasFakeRoot=true;this._validateStore=false;if(params.queryOptions)this._setQueryOptions(params.queryOptions);if(params.sort)this._setSortFields(params.sort);if(store.getFeatures()["dojo.data.api.Notification"])this.connects=this.connects.concat([aspect.after(store,"onClose",lang.hitch(this,"onStoreClose"),true)]);0&&console.warn("cbTree/models/FileStoreModel has been deprecated and will be removed with dojo 2.0 !!")},
_setQueryOptions:function(queryOptions){if(lang.isObject(queryOptions))this.queryOptions=queryOptions},_setSortFields:function(sort){if(lang.isArray(sort)){var isArrayOfObjects=true;array.forEach(sort,function(field){if(!lang.isObject(field))isArrayOfObjects=false});if(isArrayOfObjects)this.sort=sort}},getChildren:function(parentItem,onComplete,onError){var store=this.store;var scope=this;if(parentItem===this.root)if(this.root.children)onComplete(this.root.children);else this.store.fetch({query:this.query,
queryOptions:this.queryOptions,sort:this.sort,onComplete:lang.hitch(this,function(items){this.root.children=items;onComplete(items)}),onError:onError});else store.fetchChildren({item:parentItem,query:this.query,queryOptions:this.queryOptions,sort:this.sort,onError:onError,scope:scope,onComplete:function(items){onComplete(items)}});return},getParents:function(storeItem){var parents=[];if(storeItem){if(storeItem!==this.root){parents=this.store.getParents(storeItem);if(!parents.length)return[this.root]}return parents}},
mayHaveChildren:function(item){return item===this.root||this.inherited(arguments)},fetchItemByIdentity:function(keywordArgs){if(keywordArgs.identity==this.root.id){var scope=keywordArgs.scope?keywordArgs.scope:win.global;if(keywordArgs.onItem)keywordArgs.onItem.call(scope,this.root)}else this.inherited(arguments)},getIcon:function(item){if(this.iconAttr){if(item!==this.root)return this.store.getValue(item,this.iconAttr);return this.root[this.iconAttr]}},getIdentity:function(item){return item===this.root?
this.root.id:this.inherited(arguments)},getLabel:function(item){return item===this.root?this.root.label:this.inherited(arguments)},isItem:function(something){return something===this.root?true:this.inherited(arguments)},isChildOf:function(parent,item){if(parent===this.root){if(array.indexOf(this.root.children,item)!==-1)return true}else return this.inherited(arguments)},deleteItem:function(item,onBegin,onComplete,onError,scope){var scope=scope||window.global;if(item===this.root){var children=this.root.children||
[];var i;if(children.length>0){if(onBegin)if(!onBegin.call(scope,item))return;for(i=0;i<children.length;i++)this.store.deleteItem(children[i],null,onComplete,onError,scope)}}else return this.store.deleteItem(item,onBegin,onComplete,onError,scope)},newItem:function(args,parent,insertIndex,childrenAttr){throw new Error(this.moduleName+"::newItem(): Operation not allowed on a File Store.");},pasteItem:function(childItem,oldParentItem,newParentItem,bCopy,insertIndex,childrenAttr){var newParentDir="",
childItemDir="";if(this.store.isItem(childItem)){childItemDir=this.store.getDirectory(childItem);if(newParentItem!==this.root)if(newParentItem.directory)newParentDir=this.store.getPath(newParentItem);else newParentDir=this.store.getDirectory(newParentItem);if(childItemDir!==newParentDir){var newPath=newParentDir+"/"+this.store.getLabel(childItem);this.store.renameItem(childItem,newPath)}}},onDeleteItem:function(item){if(array.indexOf(this.root.children,item)!=-1)this._requeryTop();this.inherited(arguments)},
onNewItem:function(item,parentInfo){if(parentInfo){this.getChildren(parentInfo.item,lang.hitch(this,function(children){this.onChildrenChange(parentInfo.item,children)}));this._updateCheckedParent(item,true)}else this._requeryTop()},onSetItem:function(storeItem,attribute,oldValue,newValue){if(this._queryAttrs.length&&array.indexOf(this._queryAttrs,attribute)!=-1)this._requeryTop();this.inherited(arguments)},onStoreClose:function(reset){},_requeryTop:function(){var oldChildren=this.root.children||[];
this.store.fetch({query:this.query,queryOptions:this.queryOptions,sort:this.sort,onComplete:lang.hitch(this,function(newChildren){this.root.children=newChildren;if(oldChildren.length!=newChildren.length||array.some(oldChildren,function(item,idx){return newChildren[idx]!=item})){this.onChildrenChange(this.root,newChildren);this._updateCheckedParent(newChildren[0],true)}})})}})})},"dojox/mobile/ToolBarButton":function(){define("dojox/mobile/ToolBarButton",["dojo/_base/declare","dojo/_base/lang","dojo/_base/window",
"dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/dom-attr","./sniff","./_ItemBase","require"],function(declare,lang,win,domClass,domConstruct,domStyle,domAttr,has,ItemBase,BidiToolBarButton){var ToolBarButton=declare(0?"dojox.mobile.NonBidiToolBarButton":"dojox.mobile.ToolBarButton",ItemBase,{selected:false,arrow:"",light:true,defaultColor:"mblColorDefault",selColor:"mblColorDefaultSel",baseClass:"mblToolBarButton",_selStartMethod:"touch",_selEndMethod:"touch",buildRendering:function(){if(!this.label&&
this.srcNodeRef)this.label=this.srcNodeRef.innerHTML;this.label=lang.trim(this.label);this.domNode=this.srcNodeRef&&this.srcNodeRef.tagName==="SPAN"?this.srcNodeRef:domConstruct.create("span");domAttr.set(this.domNode,"role","button");this.inherited(arguments);if(this.light&&!this.arrow&&(!this.icon||!this.label)){this.labelNode=this.tableNode=this.bodyNode=this.iconParentNode=this.domNode;domClass.add(this.domNode,this.defaultColor+" mblToolBarButtonBody"+(this.icon?" mblToolBarButtonLightIcon":
" mblToolBarButtonLightText"));return}this.domNode.innerHTML="";if(this.arrow==="left"||this.arrow==="right"){this.arrowNode=domConstruct.create("span",{className:"mblToolBarButtonArrow mblToolBarButton"+(this.arrow==="left"?"Left":"Right")+"Arrow "+(has("ie")<10?"":this.defaultColor+" "+this.defaultColor+"45")},this.domNode);domClass.add(this.domNode,"mblToolBarButtonHas"+(this.arrow==="left"?"Left":"Right")+"Arrow")}this.bodyNode=domConstruct.create("span",{className:"mblToolBarButtonBody"},this.domNode);
this.tableNode=domConstruct.create("table",{cellPadding:"0",cellSpacing:"0",border:"0"},this.bodyNode);if(!this.label&&this.arrow)this.tableNode.className="mblToolBarButtonText";var row=this.tableNode.insertRow(-1);this.iconParentNode=row.insertCell(-1);this.labelNode=row.insertCell(-1);this.iconParentNode.className="mblToolBarButtonIcon";this.labelNode.className="mblToolBarButtonLabel";if(this.icon&&this.icon!=="none"&&this.label){domClass.add(this.domNode,"mblToolBarButtonHasIcon");domClass.add(this.bodyNode,
"mblToolBarButtonLabeledIcon")}domClass.add(this.bodyNode,this.defaultColor)},startup:function(){if(this._started)return;this.connect(this.domNode,"onkeydown","_onClick");this.inherited(arguments);if(!this._isOnLine){this._isOnLine=true;this.set("icon",this._pendingIcon!==undefined?this._pendingIcon:this.icon);delete this._pendingIcon}},_onClick:function(e){if(e&&e.type==="keydown"&&e.keyCode!==13)return;if(this.onClick(e)===false)return;this.defaultClickAction(e)},onClick:function(){},_setLabelAttr:function(text){this.inherited(arguments);
domClass.toggle(this.tableNode,"mblToolBarButtonText",text||this.arrow)},_setSelectedAttr:function(selected){var replace=function(node,a,b){domClass.replace(node,a+" "+a+"45",b+" "+b+"45")};this.inherited(arguments);if(selected){domClass.replace(this.bodyNode,this.selColor,this.defaultColor);if(!(has("ie")<10)&&this.arrowNode)replace(this.arrowNode,this.selColor,this.defaultColor)}else{domClass.replace(this.bodyNode,this.defaultColor,this.selColor);if(!(has("ie")<10)&&this.arrowNode)replace(this.arrowNode,
this.defaultColor,this.selColor)}domClass.toggle(this.domNode,"mblToolBarButtonSelected",selected);domClass.toggle(this.bodyNode,"mblToolBarButtonBodySelected",selected)}});return 0?declare("dojox.mobile.ToolBarButton",[ToolBarButton,BidiToolBarButton]):ToolBarButton})},"dojox/layout/GridContainer":function(){define("dojox/layout/GridContainer",["dojo/_base/kernel","dojo/_base/declare","dojo/_base/array","dojo/_base/connect","dojo/_base/sniff","dojo/dom-class","dojo/dom-style","dojo/dom-geometry",
"dojo/dom-construct","dojo/_base/lang","dojo/_base/window","dojo/ready","dojox/layout/GridContainerLite"],function(dojo,declare,array,connect,has,domClass,domStyle,geom,domConstruct,lang,win,ready,GridContainerLite){return declare("dojox.layout.GridContainer",GridContainerLite,{hasResizableColumns:true,liveResizeColumns:false,minColWidth:20,minChildWidth:150,mode:"right",isRightFixed:false,isLeftFixed:false,startup:function(){this.inherited(arguments);if(this.hasResizableColumns){for(var i=0;i<this._grid.length-
1;i++)this._createGrip(i);if(!this.getParent())ready(lang.hitch(this,"_placeGrips"))}},resizeChildAfterDrop:function(node,targetArea,indexChild){if(this.inherited(arguments))this._placeGrips()},onShow:function(){this.inherited(arguments);this._placeGrips()},resize:function(){this.inherited(arguments);if(this._isShown()&&this.hasResizableColumns)this._placeGrips()},_createGrip:function(index){var dropZone=this._grid[index],grip=domConstruct.create("div",{"class":"gridContainerGrip"},this.domNode);
dropZone.grip=grip;dropZone.gripHandler=[this.connect(grip,"onmouseover",function(e){var gridContainerGripShow=false;for(var i=0;i<this._grid.length-1;i++)if(domClass.contains(this._grid[i].grip,"gridContainerGripShow")){gridContainerGripShow=true;break}if(!gridContainerGripShow)domClass.replace(e.target,"gridContainerGripShow","gridContainerGrip")})[0],this.connect(grip,"onmouseout",function(e){if(!this._isResized)domClass.replace(e.target,"gridContainerGrip","gridContainerGripShow")})[0],this.connect(grip,
"onmousedown","_resizeColumnOn")[0],this.connect(grip,"ondblclick","_onGripDbClick")[0]]},_placeGrips:function(){var gripWidth,height,left=0,grip;array.forEach(this._grid,function(dropZone){if(dropZone.grip){grip=dropZone.grip;if(!gripWidth)gripWidth=grip.offsetWidth/2;left+=geom.getMarginBox(dropZone.node).w;domStyle.set(grip,"left",left-gripWidth+"px");if(!height)height=geom.getContentBox(this.gridNode).h;if(height>0)domStyle.set(grip,"height",height+"px")}},this)},_onGripDbClick:function(){this._updateColumnsWidth(this._dragManager);
this.resize()},_resizeColumnOn:function(e){this._activeGrip=e.target;this._initX=e.pageX;e.preventDefault();win.body().style.cursor="ew-resize";this._isResized=true;var tabSize=[];var grid;var i;for(i=0;i<this._grid.length;i++)tabSize[i]=geom.getContentBox(this._grid[i].node).w;this._oldTabSize=tabSize;for(i=0;i<this._grid.length;i++){grid=this._grid[i];if(this._activeGrip==grid.grip){this._currentColumn=grid.node;this._currentColumnWidth=tabSize[i];this._nextColumn=this._grid[i+1].node;this._nextColumnWidth=
tabSize[i+1]}grid.node.style.width=tabSize[i]+"px"}var calculateChildMinWidth=function(childNodes,minChild){var width=0;var childMinWidth=0;array.forEach(childNodes,function(child){if(child.nodeType==1){var objectStyle=domStyle.getComputedStyle(child);var minWidth=has("ie")?minChild:parseInt(objectStyle.minWidth);childMinWidth=minWidth+parseInt(objectStyle.marginLeft)+parseInt(objectStyle.marginRight);if(width<childMinWidth)width=childMinWidth}});return width};var currentColumnMinWidth=calculateChildMinWidth(this._currentColumn.childNodes,
this.minChildWidth);var nextColumnMinWidth=calculateChildMinWidth(this._nextColumn.childNodes,this.minChildWidth);var minPix=Math.round(geom.getMarginBox(this.gridContainerTable).w*this.minColWidth/100);this._currentMinCol=currentColumnMinWidth;this._nextMinCol=nextColumnMinWidth;if(minPix>this._currentMinCol)this._currentMinCol=minPix;if(minPix>this._nextMinCol)this._nextMinCol=minPix;this._connectResizeColumnMove=connect.connect(win.doc,"onmousemove",this,"_resizeColumnMove");this._connectOnGripMouseUp=
connect.connect(win.doc,"onmouseup",this,"_onGripMouseUp")},_onGripMouseUp:function(){win.body().style.cursor="default";connect.disconnect(this._connectResizeColumnMove);connect.disconnect(this._connectOnGripMouseUp);this._connectOnGripMouseUp=this._connectResizeColumnMove=null;if(this._activeGrip)domClass.replace(this._activeGrip,"gridContainerGrip","gridContainerGripShow");this._isResized=false},_resizeColumnMove:function(e){e.preventDefault();if(!this._connectResizeColumnOff){connect.disconnect(this._connectOnGripMouseUp);
this._connectOnGripMouseUp=null;this._connectResizeColumnOff=connect.connect(win.doc,"onmouseup",this,"_resizeColumnOff")}var d=e.pageX-this._initX;if(d==0)return;if(!(this._currentColumnWidth+d<this._currentMinCol||this._nextColumnWidth-d<this._nextMinCol)){this._currentColumnWidth+=d;this._nextColumnWidth-=d;this._initX=e.pageX;this._activeGrip.style.left=parseInt(this._activeGrip.style.left)+d+"px";if(this.liveResizeColumns){this._currentColumn.style["width"]=this._currentColumnWidth+"px";this._nextColumn.style["width"]=
this._nextColumnWidth+"px";this.resize()}}},_resizeColumnOff:function(e){win.body().style.cursor="default";connect.disconnect(this._connectResizeColumnMove);connect.disconnect(this._connectResizeColumnOff);this._connectResizeColumnOff=this._connectResizeColumnMove=null;if(!this.liveResizeColumns){this._currentColumn.style["width"]=this._currentColumnWidth+"px";this._nextColumn.style["width"]=this._nextColumnWidth+"px"}var tabSize=[],testSize=[],tabWidth=this.gridContainerTable.clientWidth,node,update=
false,i;for(i=0;i<this._grid.length;i++){node=this._grid[i].node;if(has("ie")){tabSize[i]=geom.getMarginBox(node).w;testSize[i]=geom.getContentBox(node).w}else{tabSize[i]=geom.getContentBox(node).w;testSize=tabSize}}for(i=0;i<testSize.length;i++)if(testSize[i]!=this._oldTabSize[i]){update=true;break}if(update){var mul=has("ie")?100:1E4;for(i=0;i<this._grid.length;i++)this._grid[i].node.style.width=Math.round(100*mul*tabSize[i]/tabWidth)/mul+"%";this.resize()}if(this._activeGrip)domClass.replace(this._activeGrip,
"gridContainerGrip","gridContainerGripShow");this._isResized=false},setColumns:function(nbColumns){var z,j;if(nbColumns>0){var length=this._grid.length,delta=length-nbColumns;if(delta>0){var count=[],zone,start,end,nbChildren;if(this.mode=="right"){end=this.isLeftFixed&&length>0?1:0;start=this.isRightFixed?length-2:length-1;for(z=start;z>=end;z--){nbChildren=0;zone=this._grid[z].node;for(j=0;j<zone.childNodes.length;j++)if(zone.childNodes[j].nodeType==1&&!(zone.childNodes[j].id=="")){nbChildren++;
break}if(nbChildren==0)count[count.length]=z;if(count.length>=delta){this._deleteColumn(count);break}}if(count.length<delta)connect.publish("/dojox/layout/gridContainer/noEmptyColumn",[this])}else{start=this.isLeftFixed&&length>0?1:0;end=this.isRightFixed?length-1:length;for(z=start;z<end;z++){nbChildren=0;zone=this._grid[z].node;for(j=0;j<zone.childNodes.length;j++)if(zone.childNodes[j].nodeType==1&&!(zone.childNodes[j].id=="")){nbChildren++;break}if(nbChildren==0)count[count.length]=z;if(count.length>=
delta){this._deleteColumn(count);break}}if(count.length<delta)connect.publish("/dojox/layout/gridContainer/noEmptyColumn",[this])}}else if(delta<0)this._addColumn(Math.abs(delta));if(this.hasResizableColumns)this._placeGrips()}},_addColumn:function(nbColumns){var grid=this._grid,dropZone,node,index,length,isRightMode=this.mode=="right",accept=this.acceptTypes.join(","),m=this._dragManager;if(this.hasResizableColumns&&(!this.isRightFixed&&isRightMode||this.isLeftFixed&&!isRightMode&&this.nbZones==
1))this._createGrip(grid.length-1);for(var i=0;i<nbColumns;i++){node=domConstruct.create("td",{"class":"gridContainerZone dojoxDndArea","accept":accept,"id":this.id+"_dz"+this.nbZones});length=grid.length;if(isRightMode)if(this.isRightFixed){index=length-1;grid.splice(index,0,{"node":grid[index].node.parentNode.insertBefore(node,grid[index].node)})}else{index=length;grid.push({"node":this.gridNode.appendChild(node)})}else if(this.isLeftFixed){index=length==1?0:1;this._grid.splice(1,0,{"node":this._grid[index].node.parentNode.appendChild(node,
this._grid[index].node)});index=1}else{index=length-this.nbZones;this._grid.splice(index,0,{"node":grid[index].node.parentNode.insertBefore(node,grid[index].node)})}if(this.hasResizableColumns)if(!isRightMode&&this.nbZones!=1||!isRightMode&&this.nbZones==1&&!this.isLeftFixed||isRightMode&&i<nbColumns-1||isRightMode&&i==nbColumns-1&&this.isRightFixed)this._createGrip(index);m.registerByNode(grid[index].node);this.nbZones++}this._updateColumnsWidth(m)},_deleteColumn:function(indices){var child,grid,
index,nbDelZones=0,length=indices.length,m=this._dragManager;for(var i=0;i<length;i++){index=this.mode=="right"?indices[i]:indices[i]-nbDelZones;grid=this._grid[index];if(this.hasResizableColumns&&grid.grip){array.forEach(grid.gripHandler,function(handler){connect.disconnect(handler)});domConstruct.destroy(this.domNode.removeChild(grid.grip));grid.grip=null}m.unregister(grid.node);domConstruct.destroy(this.gridNode.removeChild(grid.node));this._grid.splice(index,1);this.nbZones--;nbDelZones++}var lastGrid=
this._grid[this.nbZones-1];if(lastGrid.grip){array.forEach(lastGrid.gripHandler,connect.disconnect);domConstruct.destroy(this.domNode.removeChild(lastGrid.grip));lastGrid.grip=null}this._updateColumnsWidth(m)},_updateColumnsWidth:function(manager){this.inherited(arguments);manager._dropMode.updateAreas(manager._areaList)},destroy:function(){connect.unsubscribe(this._dropHandler);this.inherited(arguments)}})})},"dojox/mdnd/Moveable":function(){define("dojox/mdnd/Moveable",["dojo/_base/kernel","dojo/_base/declare",
"dojo/_base/array","dojo/_base/connect","dojo/_base/event","dojo/_base/sniff","dojo/dom","dojo/dom-geometry","dojo/dom-style","dojo/_base/window"],function(dojo,declare,array,connect,event,sniff,dom,geom,domStyle){return declare("dojox.mdnd.Moveable",null,{handle:null,skip:true,dragDistance:3,constructor:function(params,node){this.node=dom.byId(node);this.d=this.node.ownerDocument;if(!params)params={};this.handle=params.handle?dom.byId(params.handle):null;if(!this.handle)this.handle=this.node;this.skip=
params.skip;this.events=[connect.connect(this.handle,"onmousedown",this,"onMouseDown")];if(dojox.mdnd.autoScroll)this.autoScroll=dojox.mdnd.autoScroll},isFormElement:function(e){var t=e.target;if(t.nodeType==3)t=t.parentNode;return" a button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0},onMouseDown:function(e){if(this._isDragging)return;var isLeftButton=(e.which||e.button)==1;if(!isLeftButton)return;if(this.skip&&this.isFormElement(e))return;if(this.autoScroll){this.autoScroll.setAutoScrollNode(this.node);
this.autoScroll.setAutoScrollMaxPage()}this.events.push(connect.connect(this.d,"onmouseup",this,"onMouseUp"));this.events.push(connect.connect(this.d,"onmousemove",this,"onFirstMove"));this._selectStart=connect.connect(dojo.body(),"onselectstart",event.stop);this._firstX=e.clientX;this._firstY=e.clientY;event.stop(e)},onFirstMove:function(e){event.stop(e);var d=(this._firstX-e.clientX)*(this._firstX-e.clientX)+(this._firstY-e.clientY)*(this._firstY-e.clientY);if(d>this.dragDistance*this.dragDistance){this._isDragging=
true;connect.disconnect(this.events.pop());domStyle.set(this.node,"width",geom.getContentBox(this.node).w+"px");this.initOffsetDrag(e);this.events.push(connect.connect(this.d,"onmousemove",this,"onMove"))}},initOffsetDrag:function(e){this.offsetDrag={"l":e.pageX,"t":e.pageY};var s=this.node.style;var position=geom.position(this.node,true);this.offsetDrag.l=position.x-this.offsetDrag.l;this.offsetDrag.t=position.y-this.offsetDrag.t;var coords={"x":position.x,"y":position.y};this.size={"w":position.w,
"h":position.h};this.onDragStart(this.node,coords,this.size)},onMove:function(e){event.stop(e);if(sniff("ie")==8&&new Date-this.date<20)return;if(this.autoScroll)this.autoScroll.checkAutoScroll(e);var coords={"x":this.offsetDrag.l+e.pageX,"y":this.offsetDrag.t+e.pageY};var s=this.node.style;s.left=coords.x+"px";s.top=coords.y+"px";this.onDrag(this.node,coords,this.size,{"x":e.pageX,"y":e.pageY});if(sniff("ie")==8)this.date=new Date},onMouseUp:function(e){if(this._isDragging){event.stop(e);this._isDragging=
false;if(this.autoScroll)this.autoScroll.stopAutoScroll();delete this.onMove;this.onDragEnd(this.node);this.node.focus()}connect.disconnect(this.events.pop());connect.disconnect(this.events.pop())},onDragStart:function(node,coords,size){},onDragEnd:function(node){},onDrag:function(node,coords,size,mousePosition){},destroy:function(){array.forEach(this.events,connect.disconnect);this.events=this.node=null}})})},"dojox/mobile/viewRegistry":function(){define("dojox/mobile/viewRegistry",["dojo/_base/array",
"dojo/dom-class","dijit/registry"],function(array,domClass,registry){var viewRegistry={length:0,hash:{},initialView:null,add:function(view){this.hash[view.id]=view;this.length++},remove:function(id){if(this.hash[id]){delete this.hash[id];this.length--}},getViews:function(){var arr=[];for(var i in this.hash)arr.push(this.hash[i]);return arr},getParentView:function(view){for(var v=view.getParent();v;v=v.getParent())if(domClass.contains(v.domNode,"mblView"))return v;return null},getChildViews:function(parent){return array.filter(this.getViews(),
function(v){return this.getParentView(v)===parent},this)},getEnclosingView:function(node){for(var n=node;n&&n.tagName!=="BODY";n=n.parentNode)if(n.nodeType===1&&domClass.contains(n,"mblView"))return registry.byNode(n);return null},getEnclosingScrollable:function(node){for(var w=registry.getEnclosingWidget(node);w;w=w.getParent())if(w.scrollableParams&&w._v)return w;return null}};return viewRegistry})},"dojo/store/Observable":function(){define(["../_base/kernel","../_base/lang","../when","../_base/array"],
function(kernel,lang,when,array){var Observable=function(store){var undef,queryUpdaters=[],revision=0;store=lang.delegate(store);store.notify=function(object,existingId){revision++;var updaters=queryUpdaters.slice();for(var i=0,l=updaters.length;i<l;i++)updaters[i](object,existingId)};var originalQuery=store.query;store.query=function(query,options){options=options||{};var results=originalQuery.apply(this,arguments);if(results&&results.forEach){var nonPagedOptions=lang.mixin({},options);delete nonPagedOptions.start;
delete nonPagedOptions.count;var queryExecutor=store.queryEngine&&store.queryEngine(query,nonPagedOptions);var queryRevision=revision;var listeners=[],queryUpdater;results.observe=function(listener,includeObjectUpdates){if(listeners.push(listener)==1)queryUpdaters.push(queryUpdater=function(changed,existingId){when(results,function(resultsArray){var atEnd=resultsArray.length!=options.count;var i,l,listener;if(++queryRevision!=revision)throw new Error("Query is out of date, you must observe() the query prior to any data modifications");
var removedObject,removedFrom=-1,insertedInto=-1;if(existingId!==undef)for(i=0,l=resultsArray.length;i<l;i++){var object=resultsArray[i];if(store.getIdentity(object)==existingId){removedObject=object;removedFrom=i;if(queryExecutor||!changed)resultsArray.splice(i,1);break}}if(queryExecutor){if(changed&&(queryExecutor.matches?queryExecutor.matches(changed):queryExecutor([changed]).length)){var firstInsertedInto=removedFrom>-1?removedFrom:resultsArray.length;resultsArray.splice(firstInsertedInto,0,changed);
insertedInto=array.indexOf(queryExecutor(resultsArray),changed);resultsArray.splice(firstInsertedInto,1);if(options.start&&insertedInto==0||!atEnd&&insertedInto==resultsArray.length)insertedInto=-1;else resultsArray.splice(insertedInto,0,changed)}}else if(changed)if(existingId!==undef)insertedInto=removedFrom;else if(!options.start){insertedInto=store.defaultIndex||0;resultsArray.splice(insertedInto,0,changed)}if((removedFrom>-1||insertedInto>-1)&&(includeObjectUpdates||!queryExecutor||removedFrom!=
insertedInto)){var copyListeners=listeners.slice();for(i=0;listener=copyListeners[i];i++)listener(changed||removedObject,removedFrom,insertedInto)}})});var handle={};handle.remove=handle.cancel=function(){var index=array.indexOf(listeners,listener);if(index>-1){listeners.splice(index,1);if(!listeners.length)queryUpdaters.splice(array.indexOf(queryUpdaters,queryUpdater),1)}};return handle}}return results};var inMethod;function whenFinished(method,action){var original=store[method];if(original)store[method]=
function(value){var originalId;if(method==="put")originalId=store.getIdentity(value);if(inMethod)return original.apply(this,arguments);inMethod=true;try{var results=original.apply(this,arguments);when(results,function(results){action(typeof results=="object"&&results||value,originalId)});return results}finally{inMethod=false}}}whenFinished("put",function(object,originalId){store.notify(object,originalId)});whenFinished("add",function(object){store.notify(object)});whenFinished("remove",function(id){store.notify(undefined,
id)});return store};lang.setObject("dojo.store.Observable",Observable);return Observable})},"xfile/widgets/NewItemSelector":function(){define("xfile/widgets/NewItemSelector",["dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","xide/widgets/TemplatedWidgetBase","xide/types"],function(declare,html,domClass,on,TemplatedWidgetBase,types){return dojo.declare("xfile.widgets.NewItemSelector",[TemplatedWidgetBase],{wButton:null,wThumb:null,wList:null,wTree:null,currentModeClass:"fileLayoutTreeIcon",
layout:null,config:null,allowedActions:null,addJQueryClasses:true,templateString:"\x3cspan\x3e\x3cdiv class\x3d'newItemSelector' data-dojo-type\x3d'dijit.form.DropDownButton' data-dojo-props\x3d\"iconClass:'el-icon-plus'\" data-dojo-attach-point\x3d'wButton'\x3e"+"\x3cspan\x3e\x3c/span\x3e"+"\x3cdiv data-dojo-attach-point\x3d'menu' data-dojo-type\x3d'dijit.Menu' style\x3d'display: none;'\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/span\x3e",open:function(){this.wButton.domNode.focus();this.wButton.openDropDown();
var thiz=this;setTimeout(function(){thiz.wTree.focus()},0)},postMixInProperties:function(){this.inherited(arguments)},createMenuItem:function(iconClass,label,operation,clickcb){var item=new dijit.MenuItem({iconClass:iconClass,label:label,operation:operation,item:null});this.menu.addChild(item);var thiz=this;this.fixButton(item);item.domNode.onclick=function(){if(clickcb)clickcb(item);else thiz.delegate.onButtonClicked(item)};if(this.delegate&&this.delegate.buttons)this.delegate.buttons.push(item);
return item},fixButton:function(button){if(button&&button.iconNode){domClass.remove(button.iconNode,"dijitReset");domClass.add(button.iconNode,"actionToolbarButtonElusive")}},startup:function(){this.inherited(arguments);var thiz=this;if(this.addJQueryClasses){domClass.add(this.menu.containerNode,"ui-menu ui-widget ui-widget-content ui-corner-all");this.fixButton(this.wButton)}var opsInt=types.OPERATION_INT;if(this.allowedActions[opsInt.NEW_FILE])var button=this.createMenuItem("el-icon-file",this.translate("file"),
types.OPERATION.NEW_FILE);if(this.allowedActions[opsInt.NEW_DIRECTORY])var button=this.createMenuItem("el-icon-folder",this.translate("folder"),types.OPERATION.NEW_DIRECTORY)}})})},"dojo/dnd/Mover":function(){define(["../_base/array","../_base/declare","../_base/lang","../sniff","../_base/window","../dom","../dom-geometry","../dom-style","../Evented","../on","../touch","./common","./autoscroll"],function(array,declare,lang,has,win,dom,domGeom,domStyle,Evented,on,touch,dnd,autoscroll){return declare("dojo.dnd.Mover",
[Evented],{constructor:function(node,e,host){this.node=dom.byId(node);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=this.host=host,d=node.ownerDocument;function stopEvent(e){e.preventDefault();e.stopPropagation()}this.events=[on(d,touch.move,lang.hitch(this,"onFirstMove")),on(d,touch.move,lang.hitch(this,"onMouseMove")),on(d,touch.release,lang.hitch(this,"onMouseUp")),on(d,"dragstart",stopEvent),on(d.body,"selectstart",stopEvent)];autoscroll.autoScrollStart(d);if(h&&h.onMoveStart)h.onMoveStart(this)},
onMouseMove:function(e){autoscroll.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY},e);e.preventDefault();e.stopPropagation()},onMouseUp:function(e){if(has("webkit")&&has("mac")&&this.mouseButton==2?e.button==0:this.mouseButton==e.button)this.destroy();e.preventDefault();e.stopPropagation()},onFirstMove:function(e){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left))||0;t=Math.round(parseFloat(s.top))||
0;break;default:s.position="absolute";var m=domGeom.getMarginBox(this.node);var b=win.doc.body;var bs=domStyle.getComputedStyle(b);var bm=domGeom.getMarginBox(b,bs);var bc=domGeom.getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove)h.onFirstMove(this,e);this.events.shift().remove()},destroy:function(){array.forEach(this.events,function(handle){handle.remove()});var h=this.host;if(h&&h.onMoveStop)h.onMoveStop(this);
this.events=this.node=this.host=null}})})},"dojo/io/script":function(){define(["../_base/connect","../_base/kernel","../_base/lang","../sniff","../_base/window","../_base/xhr","../dom","../dom-construct","../request/script","../aspect"],function(connect,kernel,lang,has,win,xhr,dom,domConstruct,_script,aspect){kernel.deprecated("dojo/io/script","Use dojo/request/script.","2.0");var script={get:function(args){var rDfd;var dfd=this._makeScriptDeferred(args,function(dfd){rDfd&&rDfd.cancel()});var ioArgs=
dfd.ioArgs;xhr._ioAddQueryToUrl(ioArgs);xhr._ioNotifyStart(dfd);rDfd=_script.get(ioArgs.url,{timeout:args.timeout,jsonp:ioArgs.jsonp,checkString:args.checkString,ioArgs:ioArgs,frameDoc:args.frameDoc,canAttach:function(rDfd){ioArgs.requestId=rDfd.id;ioArgs.scriptId=rDfd.scriptId;ioArgs.canDelete=rDfd.canDelete;return script._canAttach(ioArgs)}},true);aspect.around(rDfd,"isValid",function(isValid){return function(response){script._validCheck(dfd);return isValid.call(this,response)}});rDfd.then(function(){dfd.resolve(dfd)}).otherwise(function(error){dfd.ioArgs.error=
error;dfd.reject(error)});return dfd},attach:_script._attach,remove:_script._remove,_makeScriptDeferred:function(args,cancel){var dfd=xhr._ioSetArgs(args,cancel||this._deferredCancel,this._deferredOk,this._deferredError);var ioArgs=dfd.ioArgs;ioArgs.id=kernel._scopeName+"IoScript"+this._counter++;ioArgs.canDelete=false;ioArgs.jsonp=args.callbackParamName||args.jsonp;if(ioArgs.jsonp){ioArgs.query=ioArgs.query||"";if(ioArgs.query.length>0)ioArgs.query+="\x26";ioArgs.query+=ioArgs.jsonp+"\x3d"+(args.frameDoc?
"parent.":"")+kernel._scopeName+".io.script.jsonp_"+ioArgs.id+"._jsonpCallback";ioArgs.frameDoc=args.frameDoc;ioArgs.canDelete=true;dfd._jsonpCallback=this._jsonpCallback;this["jsonp_"+ioArgs.id]=dfd}dfd.addBoth(function(value){if(ioArgs.canDelete)if(value instanceof Error)script["jsonp_"+ioArgs.id]._jsonpCallback=function(){delete script["jsonp_"+ioArgs.id];if(ioArgs.requestId)kernel.global[_script._callbacksProperty][ioArgs.requestId]()};else script._addDeadScript(ioArgs)});return dfd},_deferredCancel:function(dfd){dfd.canceled=
true},_deferredOk:function(dfd){var ioArgs=dfd.ioArgs;return ioArgs.json||ioArgs.scriptLoaded||ioArgs},_deferredError:function(error,dfd){0&&console.log("dojo.io.script error",error);return error},_deadScripts:[],_counter:1,_addDeadScript:function(ioArgs){script._deadScripts.push({id:ioArgs.id,frameDoc:ioArgs.frameDoc});ioArgs.frameDoc=null},_validCheck:function(dfd){var deadScripts=script._deadScripts;if(deadScripts&&deadScripts.length>0){for(var i=0;i<deadScripts.length;i++){script.remove(deadScripts[i].id,
deadScripts[i].frameDoc);delete script["jsonp_"+deadScripts[i].id];deadScripts[i].frameDoc=null}script._deadScripts=[]}return true},_ioCheck:function(dfd){var ioArgs=dfd.ioArgs;if(ioArgs.json||ioArgs.scriptLoaded&&!ioArgs.args.checkString)return true;var checkString=ioArgs.args.checkString;return checkString&&eval("typeof("+checkString+") !\x3d 'undefined'")},_resHandle:function(dfd){if(script._ioCheck(dfd))dfd.callback(dfd);else dfd.errback(new Error("inconceivable dojo.io.script._resHandle error"))},
_canAttach:function(){return true},_jsonpCallback:function(json){this.ioArgs.json=json;if(this.ioArgs.requestId)kernel.global[_script._callbacksProperty][this.ioArgs.requestId](json)}};lang.setObject("dojo.io.script",script);return script})},"dojo/store/util/SimpleQueryEngine":function(){define(["../../_base/array"],function(arrayUtil){return function(query,options){switch(typeof query){default:throw new Error("Can not query with a "+typeof query);case "object":case "undefined":var queryObject=query;
query=function(object){for(var key in queryObject){var required=queryObject[key];if(required&&required.test){if(!required.test(object[key],object))return false}else if(required!=object[key])return false}return true};break;case "string":if(!this[query])throw new Error("No filter function "+query+" was found in store");query=this[query];case "function":}function execute(array){var results=arrayUtil.filter(array,query);var sortSet=options&&options.sort;if(sortSet)results.sort(typeof sortSet=="function"?
sortSet:function(a,b){for(var sort,i=0;sort=sortSet[i];i++){var aValue=a[sort.attribute];var bValue=b[sort.attribute];aValue=aValue!=null?aValue.valueOf():aValue;bValue=bValue!=null?bValue.valueOf():bValue;if(aValue!=bValue)return!!sort.descending==(aValue==null||aValue>bValue)?-1:1}return 0});if(options&&(options.start||options.count)){var total=results.length;results=results.slice(options.start||0,(options.start||0)+(options.count||Infinity));results.total=total}return results}execute.matches=query;
return execute}})},"xide/widgets/SelectWidget":function(){define(["dojo/_base/declare","xide/widgets/WidgetBase","xide/factory"],function(declare,WidgetBase,factory){return declare("xide.widgets.SelectWidget",[WidgetBase],{didLoad:false,value:"unset",onPlatformChanged:function(newPlatform){this.inherited(arguments);if(this.nativeWidget)this.nativeWidget.set("value",this.getValue())},widgetChanged:function(value){this.changed=true;if(this.userData)this.userData.changed=true;if(this.nativeWidget){if(this.nativeWidget instanceof
dijit.form.CheckBox){this.setValue(this.nativeWidget.get("checked"));return}this.setValue(this.nativeWidget.value)}},setupNativeWidgetHandler:function(){if(this.nativeWidget){var thiz=this;dojo.connect(this.nativeWidget,"onChange",function(item){thiz.widgetChanged(this)});dojo.connect(this.nativeWidget,"onBlur",function(){thiz.setActive(false)});dojo.connect(this.nativeWidget,"onFocus",function(){thiz.setActive(true)})}},initWithDataItem:function(data){this.empty();this.data=data;var thiz=this;this.widgets=
factory.createWidgetsFromArray(data.inputs,thiz);if(this.widgets)this.attachWidgets(this.widgets)},startup:function(){this.inherited(arguments);if(this.nativeWidget){this.valueNode.innerHTML="";this.valueNode.appendChild(this.nativeWidget.domNode);this.setupNativeWidgetHandler()}this.onReady()}})})},"xfile/manager/ScriptManager":function(){define("xfile/manager/ScriptManager",["dojo/_base/declare","dojox/widget/Standby","xide/manager/ManagerBase","xapp/factory/Events","xide/factory","xide/utils",
"xide/types","xide/views/ACEEditor"],function(declare,Standby,ManagerBase,eventFactory,factory,utils,types,ACEEditor){return declare("xfile.manager.ScriptManager",[ManagerBase],{scriptFrame:null,scriptRoot:null,frameUrl:null,appendTo:"topTabs",ace:true,onEditorClose:function(editor){var parent=editor.parentContainer||dijit.byId(this.appendTo);if(!parent)if(this.ctx&&this.ctx.mainView&&this.ctx.mainView.getNewAlternateTarget)parent=this.ctx.mainView.getNewAlternateTarget();if(parent){parent.removeChild(editor);
dijit.registry.remove(editor.id)}this.publish(types.EVENTS.ON_PANEL_CLOSED,{});if(this.ctx.getPanelManager())this.ctx.getPanelManager().onClosePanel(null)},setFileContent:function(path,content,ready){this.ctx.getFileManager().setContent(path,content,ready)},getFileContent:function(path,ready){this.ctx.getFileManager().getContent(path,ready)},openFile:function(item,root,owner){var id="cmeditor"+item.path+""+item.name;var _existing=dijit.registry.byId(id);if(_existing){dijit.registry.remove(id);_existing.destroyRecursive();
utils.destroyWidget(id)}var thiz=this;if(!root)if(this.ctx&&this.ctx.mainView&&this.ctx.mainView.getNewAlternateTarget)root=this.ctx.mainView.getNewAlternateTarget();if(!root){console.error("have no attachment parent!");return}var title=utils.toString(item.name);var editor=utils.addWidget(ACEEditor,{dataItem:item,filePath:item.path,config:this.config,delegate:this,owner:owner,parentContainer:root,store:this.store,storeDelegate:{getContent:function(onSuccess){thiz.ctx.getFileManager().getContent(item.mount,
item.path,onSuccess)},saveContent:function(value,onSuccess,onError){thiz.ctx.getFileManager().setContent(item.mount,item.path,value,onSuccess)}},title:title,closable:true},this,root,true);return editor},openFileCM:function(item,root,owner){var id="cmeditor"+item.path+""+item.name;var _existing=dijit.registry.byId(id);if(_existing){dijit.registry.remove(id);_existing.destroyRecursive();utils.destroyWidget(id)}var thiz=this;if(!root)if(this.ctx&&this.ctx.mainView&&this.ctx.mainView.getNewAlternateTarget)root=
this.ctx.mainView.getNewAlternateTarget();if(!root){console.error("have no attachment parent!");return}var title=utils.toString(item.name);var editor=new xide.views.CodeMirrorEditor({value:"",id:id,root:this.config.CODDE_MIRROR,dataItem:item,filePath:item.path,rootPrefix:this.ctx.getWorkflowManager().getRootPrefix(),delegate:this,title:title,config:this.config,owner:owner,parentContainer:root,item:item,store:this.store,onClose:function(){if(this.owner&&this.owner.onEditorClose)this.owner.onEditorClose(this);
thiz.onEditorClose(this)}},dojo.doc.createElement("div"));root.addChild(editor);editor.startup();if(root.selectChild)root.selectChild(editor);if(root.resize)root.resize();return editor},onFileClicked:function(item){var id="cmeditor"+item.path+""+item.name;var _existing=dijit.registry.byId(id);if(_existing)if(_existing.parentContainer){_existing.parentContainer.selectChild(_existing);return}else{dijit.registry.remove(id);_existing.destroyRecursive();utils.destroyWidget(id)}var thiz=this;var root=dijit.byId(this.appendTo);
if(!root)if(this.ctx&&this.ctx.mainView&&this.ctx.mainView.getNewAlternateTarget)root=this.ctx.mainView.getNewAlternateTarget();if(!root){console.error("have no attachment parent!");return}var title=utils.toString(item.name);var editor=utils.addWidget(ACEEditor,{dataItem:item,filePath:item.path,config:this.config,delegate:this,parentContainer:root,store:this.store,storeDelegate:{getContent:function(onSuccess){thiz.ctx.getFileManager().getContent(item.mount,item.path,onSuccess)},saveContent:function(value,
onSuccess,onError){thiz.ctx.getFileManager().setContent(item.mount,item.path,value,onSuccess)}},title:title,closable:true,fileName:item.path,onClose:function(){thiz.onEditorClose(this)}},this,root,true);root.resize();return editor},onEditorMessage:function(message){sctx.getResourceManager().onScriptEditorChange(message)},getEditorRoot:function(){return this.scriptFrame.contentWindow?this.scriptFrame.contentWindow.document:this.scriptFrame.contentDocument},onEditorReady:function(url){return;var scriptStandBy=
dijit.registry.byId("scriptStandBy");if(scriptStandBy)scriptStandBy.hide();this.frameUrl=url;var thiz=this;var xdmTarget=dojo.byId("scriptRoot");if(xdmTarget)xdmTarget.blur();var focuscb=function(){};setTimeout(function(){xdmTarget.blur();var k=xdmTarget},7E3);this.scriptFrame=new easyXDM.Socket({remote:url,container:xdmTarget,props:{style:{width:"100%",height:"100%"},width:"100%",height:"100%"},onReady:function(){focuscb()},onMessage:function(message,origin){thiz.onEditorMessage(dojo.fromJson(message))}})},
createScriptFrame:function(){var scriptframe=dojo.byId("scriptFrame");var thiz=this;var frameReady=function(res){setTimeout(function(){thiz.onEditorReady(res)},8E3)};var defered=this.serviceObject.getScriptIFrameUrl(sctx.getSession().getUUID(),sctx.getSession().getAppId(),sctx.getSession().getStylePlatform(),sctx.getSession().getCXAppRoot());defered.addCallback(frameReady)},getTemplateWebRootPath:function(template){return ctx.getSession().toWebRootProxyCMAC("themes/IPHONE_NATIVE/"+template)},onShowScriptPanel:function(panel){var scriptRoot=
dijit.registry.byId("scriptRoot");if(scriptRoot&&scriptRoot.onShowEditor)scriptRoot.onShowEditor();return;if(this.scriptRoot!=panel)this.scriptRoot=panel;var cxroot=sctx.getSession().getCXAppRoot();if(cxroot){if(this.scriptFrame==null){var scriptStandBy=dijit.registry.byId("scriptStandBy");if(scriptStandBy)scriptStandBy.show();this.createScriptFrame()}}else this.openCustomAppWizard()},init:function(){this.inherited(arguments)}})})},"dijit/_HasDropDown":function(){define("dijit/_HasDropDown",["dojo/_base/declare",
"dojo/_base/Deferred","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/keys","dojo/_base/lang","dojo/on","dojo/touch","./registry","./focus","./popup","./_FocusMixin"],function(declare,Deferred,dom,domAttr,domClass,domGeometry,domStyle,has,keys,lang,on,touch,registry,focus,popup,_FocusMixin){return declare("dijit._HasDropDown",_FocusMixin,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,
maxHeight:-1,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouseDown:function(e){if(this.disabled||this.readOnly)return;e.preventDefault();this._docHandler=this.own(on(this.ownerDocument,touch.release,lang.hitch(this,"_onDropDownMouseUp")))[0];this.toggleDropDown()},_onDropDownMouseUp:function(e){if(e&&this._docHandler){this._docHandler.remove();this._docHandler=null}var dropDown=this.dropDown,overMenu=false;if(e&&this._opened){var c=domGeometry.position(this._buttonNode,true);
if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){var t=e.target;while(t&&!overMenu)if(domClass.contains(t,"dijitPopup"))overMenu=true;else t=t.parentNode;if(overMenu){t=e.target;if(dropDown.onItemClick){var menuItem;while(t&&!(menuItem=registry.byNode(t)))t=t.parentNode;if(menuItem&&menuItem.onClick&&menuItem.getParent)menuItem.getParent().onItemClick(menuItem,e)}return}}}if(this._opened){if(dropDown.focus&&dropDown.autoFocus!==false)this._focusDropDownTimer=this.defer(function(){dropDown.focus();
delete this._focusDropDownTimer})}else if(this.focus)this.defer("focus")},_onDropDownClick:function(e){if(this._stopClickEvents){e.stopPropagation();e.preventDefault()}},buildRendering:function(){this.inherited(arguments);this._buttonNode=this._buttonNode||this.focusNode||this.domNode;this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode;var defaultPos={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left",
"right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down";domClass.add(this._arrowWrapperNode||this._buttonNode,"dijit"+defaultPos+"ArrowButton")},postCreate:function(){this.inherited(arguments);var keyboardEventNode=this.focusNode||this.domNode;this.own(on(this._buttonNode,touch.press,lang.hitch(this,"_onDropDownMouseDown")),on(this._buttonNode,"click",lang.hitch(this,"_onDropDownClick")),on(keyboardEventNode,"keydown",lang.hitch(this,"_onKey")),on(keyboardEventNode,"keyup",lang.hitch(this,
"_onKeyUp")))},destroy:function(){if(this.dropDown){if(!this.dropDown._destroyed)this.dropDown.destroyRecursive();delete this.dropDown}this.inherited(arguments)},_onKey:function(e){if(this.disabled||this.readOnly)return;var d=this.dropDown,target=e.target;if(d&&this._opened&&d.handleKey)if(d.handleKey(e)===false){e.stopPropagation();e.preventDefault();return}if(d&&this._opened&&e.keyCode==keys.ESCAPE){this.closeDropDown();e.stopPropagation();e.preventDefault()}else if(!this._opened&&(e.keyCode==keys.DOWN_ARROW||
(e.keyCode==keys.ENTER||e.keyCode==keys.SPACE)&&((target.tagName||"").toLowerCase()!=="input"||target.type&&target.type.toLowerCase()!=="text"))){this._toggleOnKeyUp=true;e.stopPropagation();e.preventDefault()}},_onKeyUp:function(){if(this._toggleOnKeyUp){delete this._toggleOnKeyUp;this.toggleDropDown();var d=this.dropDown;if(d&&d.focus)this.defer(lang.hitch(d,"focus"),1)}},_onBlur:function(){this.closeDropDown(false);this.inherited(arguments)},isLoaded:function(){return true},loadDropDown:function(loadCallback){loadCallback()},
loadAndOpenDropDown:function(){var d=new Deferred,afterLoad=lang.hitch(this,function(){this.openDropDown();d.resolve(this.dropDown)});if(!this.isLoaded())this.loadDropDown(afterLoad);else afterLoad();return d},toggleDropDown:function(){if(this.disabled||this.readOnly)return;if(!this._opened)this.loadAndOpenDropDown();else this.closeDropDown()},openDropDown:function(){var dropDown=this.dropDown,ddNode=dropDown.domNode,aroundNode=this._aroundNode||this.domNode,self=this;var retVal=popup.open({parent:this,
popup:dropDown,around:aroundNode,orient:this.dropDownPosition,maxHeight:this.maxHeight,onExecute:function(){self.closeDropDown(true)},onCancel:function(){self.closeDropDown(true)},onClose:function(){domAttr.set(self._popupStateNode,"popupActive",false);domClass.remove(self._popupStateNode,"dijitHasDropDownOpen");self._set("_opened",false)}});if(this.forceWidth||this.autoWidth&&aroundNode.offsetWidth>dropDown._popupWrapper.offsetWidth){var resizeArgs={w:aroundNode.offsetWidth-(dropDown._popupWrapper.offsetWidth-
dropDown.domNode.offsetWidth)};if(lang.isFunction(dropDown.resize))dropDown.resize(resizeArgs);else domGeometry.setMarginBox(ddNode,resizeArgs)}domAttr.set(this._popupStateNode,"popupActive","true");domClass.add(this._popupStateNode,"dijitHasDropDownOpen");this._set("_opened",true);this._popupStateNode.setAttribute("aria-expanded","true");this._popupStateNode.setAttribute("aria-owns",dropDown.id);if(ddNode.getAttribute("role")!=="presentation"&&!ddNode.getAttribute("aria-labelledby"))ddNode.setAttribute("aria-labelledby",
this.id);return retVal},closeDropDown:function(focus){if(this._focusDropDownTimer){this._focusDropDownTimer.remove();delete this._focusDropDownTimer}if(this._opened){this._popupStateNode.setAttribute("aria-expanded","false");if(focus)this.focus();popup.close(this.dropDown);this._opened=false}}})})},"xfile/widgets/ActionToolbar":function(){define("xfile/widgets/ActionToolbar",["dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","xide/widgets/TemplatedWidgetBase","xide/types","xide/factory"],
function(declare,html,domClass,on,TemplatedWidgetBase,types,factory){return dojo.declare("xfile.widgets.ActionToolbar",[TemplatedWidgetBase],{toolbarPlaceTarget:"toolbar",currentItem:null,buttons:null,templateString:"\x3cdiv\x3e\x3cdiv class\x3d'fileView actionToolbar' data-dojo-type\x3d'dijit.form.DropDownButton' data-dojo-props\x3d\"iconClass:'dijitEditorIcon fileLayoutTreeIcon'\" data-dojo-attach-point\x3d'wButton'\x3e"+"\x3cspan\x3e\x3c/span\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.Menu' style\x3d'display: none;'\x3e"+
"\x3cdiv data-dojo-type\x3d'dijit.MenuItem' data-dojo-props\x3d\"iconClass:'dijitEditorIcon fileLayoutTreeIcon'\" data-dojo-attach-point\x3d'wTree'\x3eTree\x3c/div\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.MenuItem' data-dojo-props\x3d\"iconClass:'dijitEditorIcon fileLayoutGridIcon'\" data-dojo-attach-point\x3d'wThumb'\x3eThumbs\x3c/div\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.MenuItem' data-dojo-props\x3d\"iconClass:'dijitEditorIcon fileLayoutListIcon'\" data-dojo-attach-point\x3d'wList'\x3eList\x3c/div\x3e"+
"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",toTitle:function(operation){switch(operation){case types.OPERATION.DELETE:return this.translate("Delete");case types.OPERATION.EDIT:return this.translate("Edit");case types.OPERATION.RENAME:return this.translate("Rename");case types.OPERATION.COPY:return this.translate("Copy");case types.OPERATION.MOVE:return this.translate("Move");case types.OPERATION.DOWNLOAD:return this.translate("Download");case types.OPERATION.INFO:return this.translate("Info");case types.OPERATION.COMPRESS:return this.translate("Compress");
case types.OPERATION.RELOAD:return this.translate("Reload")}return"No Title"},postMixInProperties:function(){this.inherited(arguments)},_initEvents:function(){},_createButton:function(){},onButtonClicked:function(button){if(this.delegate&&this.delegate.onActionButton)this.delegate.onActionButton(button,button.item,button.operation,button.owner)},onFileSelected:function(data){var btnEdit=this.getButton(types.OPERATION.EDIT);if(btnEdit)btnEdit.setDisabled(false)},onCommonsSelected:function(data){var btnRename=
this.getButton(types.OPERATION.RENAME);if(btnRename)btnRename.setDisabled(false);var btnDownload=this.getButton(types.OPERATION.DOWNLOAD);if(btnDownload)btnDownload.setDisabled(false);var btnCopy=this.getButton(types.OPERATION.COPY);if(btnCopy)btnCopy.setDisabled(false);var btnMove=this.getButton(types.OPERATION.MOVE);if(btnMove)btnMove.setDisabled(false);var btnProp=this.getButton(types.OPERATION.INFO);if(btnProp)btnProp.setDisabled(false);var btnDelete=this.getButton(types.OPERATION.DELETE);if(btnDelete)btnDelete.setDisabled(false);
var btncompress=this.getButton(types.OPERATION.COMPRESS);if(btncompress)btncompress.setDisabled(false);var btnReload=this.getButton(types.OPERATION.RELOAD);if(btnReload)btnReload.setDisabled(false)},clearStates:function(item,owner){for(var i=0;i<this.buttons.length;i++){this.buttons[i].item=item;this.buttons[i].owner=owner;this.buttons[i].setDisabled(true)}},onDirectorySelected:function(data){},onItemSelected:function(data){try{if(data&&data.item){var item=data.item;this.clearStates(item,data.caller);
if(item.name=="."||item.name=="..")return;this.onCommonsSelected(item);if(item.directory!=null&&item.directory===true)this.onDirectorySelected(item);else this.onFileSelected(item)}}catch(e){}},getButton:function(operation){for(var i=0;i<this.buttons.length;i++)if(this.buttons[i].operation==operation)return this.buttons[i];return null},_createDefaultItems:function(){var reloadButton=this._createButton(types.OPERATION.RELOAD,null,null,true);var deleteButton=this._createButton(types.OPERATION.DELETE,
null,null,true);var compressButton=this._createButton(types.OPERATION.COMPRESS,null,null,true);var downloadButton=this._createButton(types.OPERATION.DOWNLOAD,null,null,true);var infoButton=this._createButton(types.OPERATION.INFO,null,null,true);var renameButton=this._createButton(types.OPERATION.RENAME,null,null,true);var moveButton=this._createButton(types.OPERATION.MOVE,null,null,true);var copyButton=this._createButton(types.OPERATION.COPY,null,null,true);var editButton=this._createButton(types.OPERATION.EDIT,
null,null,true)},startup:function(){this.inherited(arguments);var thiz=this;this.buttons=[];this._createDefaultItems();factory.subscribe(types.EVENTS.ITEM_SELECTED,function(data){thiz.onItemSelected(data)},this)}})})},"dijit/_Widget":function(){define("dijit/_Widget",["dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/query","dojo/ready","./registry","./_WidgetBase","./_OnDijitClickMixin","./_FocusMixin","dojo/uacss",
"./hccss"],function(aspect,config,connect,declare,has,kernel,lang,query,ready,registry,_WidgetBase,_OnDijitClickMixin,_FocusMixin){function connectToDomNode(){}function aroundAdvice(originalConnect){return function(obj,event,scope,method){if(obj&&typeof event=="string"&&obj[event]==connectToDomNode)return obj.on(event.substring(2).toLowerCase(),lang.hitch(scope,method));return originalConnect.apply(connect,arguments)}}aspect.around(connect,"connect",aroundAdvice);if(kernel.connect)aspect.around(kernel,
"connect",aroundAdvice);var _Widget=declare("dijit._Widget",[_WidgetBase,_OnDijitClickMixin,_FocusMixin],{onClick:connectToDomNode,onDblClick:connectToDomNode,onKeyDown:connectToDomNode,onKeyPress:connectToDomNode,onKeyUp:connectToDomNode,onMouseDown:connectToDomNode,onMouseMove:connectToDomNode,onMouseOut:connectToDomNode,onMouseOver:connectToDomNode,onMouseLeave:connectToDomNode,onMouseEnter:connectToDomNode,onMouseUp:connectToDomNode,constructor:function(params){this._toConnect={};for(var name in params)if(this[name]===
connectToDomNode){this._toConnect[name.replace(/^on/,"").toLowerCase()]=params[name];delete params[name]}},postCreate:function(){this.inherited(arguments);for(var name in this._toConnect)this.on(name,this._toConnect[name]);delete this._toConnect},on:function(type,func){if(this[this._onMap(type)]===connectToDomNode)return connect.connect(this.domNode,type.toLowerCase(),this,func);return this.inherited(arguments)},_setFocusedAttr:function(val){this._focused=val;this._set("focused",val)},setAttribute:function(attr,
value){kernel.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(attr,value)},attr:function(name,value){if(config.isDebug){var alreadyCalledHash=arguments.callee._ach||(arguments.callee._ach={}),caller=(arguments.callee.caller||"unknown caller").toString();if(!alreadyCalledHash[caller]){kernel.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+caller,"","2.0");alreadyCalledHash[caller]=true}}var args=
arguments.length;if(args>=2||typeof name==="object")return this.set.apply(this,arguments);else return this.get(name)},getDescendants:function(){kernel.deprecated(this.declaredClass+"::getDescendants() is deprecated. Use getChildren() instead.","","2.0");return this.containerNode?query("[widgetId]",this.containerNode).map(registry.byNode):[]},_onShow:function(){this.onShow()},onShow:function(){},onHide:function(){},onClose:function(){return true}});if(has("dijit-legacy-requires"))ready(0,function(){var requires=
["dijit/_base"];require(requires)});return _Widget})},"dojox/grid/DataSelection":function(){define("dojox/grid/DataSelection",["dojo/_base/declare","./_SelectionPreserver","./Selection"],function(declare,_SelectionPreserver,Selection){return declare("dojox.grid.DataSelection",Selection,{constructor:function(grid){if(grid.keepSelection)this.preserver=new _SelectionPreserver(this)},destroy:function(){if(this.preserver)this.preserver.destroy()},getFirstSelected:function(){var idx=Selection.prototype.getFirstSelected.call(this);
if(idx==-1)return null;return this.grid.getItem(idx)},getNextSelected:function(inPrev){var old_idx=this.grid.getItemIndex(inPrev);var idx=Selection.prototype.getNextSelected.call(this,old_idx);if(idx==-1)return null;return this.grid.getItem(idx)},getSelected:function(){var result=[];for(var i=0,l=this.selected.length;i<l;i++)if(this.selected[i])result.push(this.grid.getItem(i));return result},addToSelection:function(inItemOrIndex){if(this.mode=="none")return;var idx=null;if(typeof inItemOrIndex==
"number"||typeof inItemOrIndex=="string")idx=inItemOrIndex;else idx=this.grid.getItemIndex(inItemOrIndex);Selection.prototype.addToSelection.call(this,idx)},deselect:function(inItemOrIndex){if(this.mode=="none")return;var idx=null;if(typeof inItemOrIndex=="number"||typeof inItemOrIndex=="string")idx=inItemOrIndex;else idx=this.grid.getItemIndex(inItemOrIndex);Selection.prototype.deselect.call(this,idx)},deselectAll:function(inItemOrIndex){var idx=null;if(inItemOrIndex||typeof inItemOrIndex=="number"){if(typeof inItemOrIndex==
"number"||typeof inItemOrIndex=="string")idx=inItemOrIndex;else idx=this.grid.getItemIndex(inItemOrIndex);Selection.prototype.deselectAll.call(this,idx)}else this.inherited(arguments)}})})},"dojo/_base/kernel":function(){define(["../has","./config","require","module"],function(has,config,require,module){var i,p,dijit={},dojox={},dojo={config:config,global:this,dijit:dijit,dojox:dojox};var scopeMap={dojo:["dojo",dojo],dijit:["dijit",dijit],dojox:["dojox",dojox]},packageMap=require.map&&require.map[module.id.match(/[^\/]+/)[0]],
item;for(p in packageMap)if(scopeMap[p])scopeMap[p][0]=packageMap[p];else scopeMap[p]=[packageMap[p],{}];for(p in scopeMap){item=scopeMap[p];item[1]._scopeName=item[0];if(!config.noGlobals)this[item[0]]=item[1]}dojo.scopeMap=scopeMap;dojo.baseUrl=dojo.config.baseUrl=require.baseUrl;dojo.isAsync=!1||require.async;dojo.locale=config.locale;var rev="$Rev$".match(/[0-9a-f]{7,}/);dojo.version={major:1,minor:10,patch:0,flag:"-pre",revision:rev?rev[0]:NaN,toString:function(){var v=dojo.version;return v.major+
"."+v.minor+"."+v.patch+v.flag+" ("+v.revision+")"}};1||has.add("extend-dojo",1);Function("d","d.eval \x3d function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}")(dojo);if(0)dojo.exit=function(exitcode){quit(exitcode)};else dojo.exit=function(){};1||has.add("dojo-guarantee-console",1);if(1){typeof console!="undefined"||(console={});var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn",
"log"];var tn;i=0;while(tn=cn[i++])if(!console[tn])(function(){var tcn=tn+"";console[tcn]="log"in console?function(){var a=Array.prototype.slice.call(arguments);a.unshift(tcn+":");console["log"](a.join(" "))}:function(){};console[tcn]._fake=true})()}has.add("dojo-debug-messages",!!config.isDebug);dojo.deprecated=dojo.experimental=function(){};if(has("dojo-debug-messages")){dojo.deprecated=function(behaviour,extra,removal){var message="DEPRECATED: "+behaviour;if(extra)message+=" "+extra;if(removal)message+=
" -- will be removed in version: "+removal;0&&console.warn(message)};dojo.experimental=function(moduleName,extra){var message="EXPERIMENTAL: "+moduleName+" -- APIs subject to change without notice.";if(extra)message+=" "+extra;0&&console.warn(message)}}1||has.add("dojo-modulePaths",1);if(1)if(config.modulePaths){dojo.deprecated("dojo.modulePaths","use paths configuration");var paths={};for(p in config.modulePaths)paths[p.replace(/\./g,"/")]=config.modulePaths[p];require({paths:paths})}1||has.add("dojo-moduleUrl",
1);if(1)dojo.moduleUrl=function(module,url){dojo.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var result=null;if(module)result=require.toUrl(module.replace(/\./g,"/")+(url?"/"+url:"")+"/*.*").replace(/\/\*\.\*/,"")+(url?"":"/");return result};dojo._hasResource={};return dojo})},"dojo/_base/unload":function(){define(["./kernel","./lang","../on"],function(dojo,lang,on){var win=window;var unload={addOnWindowUnload:function(obj,functionName){if(!dojo.windowUnloaded)on(win,"unload",dojo.windowUnloaded=
function(){});on(win,"unload",lang.hitch(obj,functionName))},addOnUnload:function(obj,functionName){on(win,"beforeunload",lang.hitch(obj,functionName))}};dojo.addOnWindowUnload=unload.addOnWindowUnload;dojo.addOnUnload=unload.addOnUnload;return unload})},"xfile/views/FilePanelPreview":function(){define("xfile/views/FilePanelPreview",["dojo/_base/declare","dojo/dom-class","dojo/_base/lang","xide/layout/ContentPane","xfile/views/FileTreeView","xfile/widgets/LayoutSelector","xfile/widgets/SourceSelector",
"xide/types","./KeyboardHandler","./MouseHandler","dojo/cookie","dojo/json","xfile/views/History","dijit/form/FilteringSelect","dojo/has","xide/factory","xide/utils"],function(declare,domClass,lang,ContentPane,FileTreeView,LayoutSelector,SourceSelector,types,KeyboardHandler,MouseHandler,cookie,json,History,FilteringSelect,has,factory,utils){var delegate=null;var plugins=[function(ql){var mimes=["image/jpeg","image/png","image/gif"],preview=ql.preview;$.each(navigator.mimeTypes,function(i,o){var mime=
o.type;if(mime.indexOf("image/")===0&&$.inArray(mime,mimes))mimes.push(mime)});factory.subscribe(types.EVENTS.ITEM_SELECTED,function(e){var file=delegate.getImageUrl(e.item),img;if($.inArray(e.item.mime,mimes)!==-1)img=$("\x3cimg/\x3e").hide().appendTo(preview).load(function(){setTimeout(function(){var prop=(img.width()/img.height()).toFixed(2);preview.bind("changesize",function(){var pw=parseInt(preview.width()),ph=parseInt(preview.height()),w,h;if(prop<(pw/ph).toFixed(2)){h=ph;w=Math.floor(h*prop)}else{w=
pw;h=Math.floor(w/prop)}img.width(w).height(h).css("margin-top",h<ph?Math.floor((ph-h)/2):0)}).trigger("changesize");ql.hideinfo();img.fadeIn(100)},1)}).attr("src",file)})},function(ql){var mimes=["text/html","application/xhtml+xml"],preview=ql.preview,fm=ql.fm;preview.bind("update",function(e){var file=e.file,jqxhr;if($.inArray(file.mime,mimes)!==-1){e.stopImmediatePropagation();preview.one("change",function(){jqxhr.state()=="pending"&&jqxhr.reject()});jqxhr=fm.request({data:{cmd:"get",target:file.hash,
current:file.phash},preventDefault:true}).done(function(data){ql.hideinfo();doc=$('\x3ciframe class\x3d"elfinder-quicklook-preview-html"/\x3e').appendTo(preview)[0].contentWindow.document;doc.open();doc.write(data.content);doc.close()})}})},function(ql){var fm=ql.fm,preview=ql.preview;var mimes=["application/x-empty","application/javascript","application/xhtml+xml","audio/x-mp3-playlist","application/x-web-config","application/docbook+xml","application/x-php","application/x-perl","application/x-awk",
"application/x-config","application/x-csh","application/xml"];preview.bind("update",function(e){var file=e.file,mime=file.mime,jqxhr;if(mime.indexOf("text/")===0||$.inArray(mime,mimes)!==-1){e.stopImmediatePropagation();preview.one("change",function(){jqxhr.state()=="pending"&&jqxhr.reject()});jqxhr=fm.request({data:{cmd:"get",target:file.hash},preventDefault:true}).done(function(data){ql.hideinfo();$('\x3cdiv class\x3d"elfinder-quicklook-preview-text-wrapper"\x3e\x3cpre class\x3d"elfinder-quicklook-preview-text"\x3e'+
fm.escape(data.content)+"\x3c/pre\x3e\x3c/div\x3e").appendTo(preview)})}})},function(ql){var fm=ql.fm,mime="application/pdf",preview=ql.preview,active=false;active=false;var isActive=false;if(isActive)active=true;else $.each(navigator.plugins,function(i,plugins){$.each(plugins,function(i,plugin){if(plugin.type==mime)return!(active=true)})});active&&preview.bind("update",function(e){var file=e.file,node;if(file.mime==mime){e.stopImmediatePropagation();preview.one("change",function(){node.unbind("load").remove()});
node=$('\x3ciframe class\x3d"elfinder-quicklook-preview-pdf"/\x3e').hide().appendTo(preview).load(function(){ql.hideinfo();node.show()}).attr("src",fm.url(file.hash))}})},function(ql){var fm=ql.fm,mime="application/x-shockwave-flash",preview=ql.preview,active=false;$.each(navigator.plugins,function(i,plugins){$.each(plugins,function(i,plugin){if(plugin.type==mime)return!(active=true)})});active&&preview.bind("update",function(e){var file=e.file,node;if(file.mime==mime){e.stopImmediatePropagation();
ql.hideinfo();preview.append(node=$('\x3cembed class\x3d"elfinder-quicklook-preview-flash" pluginspage\x3d"http://www.macromedia.com/go/getflashplayer" src\x3d"'+fm.url(file.hash)+'" quality\x3d"high" type\x3d"application/x-shockwave-flash" /\x3e'))}})},function(ql){var preview=ql.preview,autoplay=!!ql.options["autoplay"],mimes={"audio/mpeg":"mp3","audio/mpeg3":"mp3","audio/mp3":"mp3","audio/x-mpeg3":"mp3","audio/x-mp3":"mp3","audio/x-wav":"wav","audio/wav":"wav","audio/x-m4a":"m4a","audio/aac":"m4a",
"audio/mp4":"m4a","audio/x-mp4":"m4a","audio/ogg":"ogg"},node;preview.bind("update",function(e){var file=e.file,type=mimes[file.mime];if(ql.support.audio[type]){e.stopImmediatePropagation();node=$('\x3caudio class\x3d"elfinder-quicklook-preview-audio" controls preload\x3d"auto" autobuffer\x3e\x3csource src\x3d"'+ql.fm.url(file.hash)+'" /\x3e\x3c/audio\x3e').appendTo(preview);autoplay&&node[0].play()}}).bind("change",function(){if(node&&node.parent().length){node[0].pause();node.remove();node=null}})},
function(ql){var preview=ql.preview,autoplay=!!ql.options["autoplay"],mimes={"video/mp4":"mp4","video/x-m4v":"mp4","video/ogg":"ogg","application/ogg":"ogg","video/webm":"webm"},node;preview.bind("update",function(e){var file=e.file,type=mimes[file.mime];if(ql.support.video[type]){e.stopImmediatePropagation();ql.hideinfo();node=$('\x3cvideo class\x3d"elfinder-quicklook-preview-video" controls preload\x3d"auto" autobuffer\x3e\x3csource src\x3d"'+ql.fm.url(file.hash)+'" /\x3e\x3c/video\x3e').appendTo(preview);
autoplay&&node[0].play()}}).bind("change",function(){if(node&&node.parent().length){node[0].pause();node.remove();node=null}})},function(ql){var preview=ql.preview,mimes=[],node;$.each(navigator.plugins,function(i,plugins){$.each(plugins,function(i,plugin){(plugin.type.indexOf("audio/")===0||plugin.type.indexOf("video/")===0)&&mimes.push(plugin.type)})});preview.bind("update",function(e){var file=e.file,mime=file.mime,video;if($.inArray(file.mime,mimes)!==-1){e.stopImmediatePropagation();(video=mime.indexOf("video/")===
0)&&ql.hideinfo();node=$('\x3cembed src\x3d"'+ql.fm.url(file.hash)+'" type\x3d"'+mime+'" class\x3d"elfinder-quicklook-preview-'+(video?"video":"audio")+'"/\x3e').appendTo(preview)}}).bind("change",function(){if(node&&node.parent().length){node.remove();node=null}})}];var preview=function(){var self=this,fm=self.fm,closed=0,animated=1,opened=2,state=closed,navicon="elfinder-quicklook-navbar-icon",fullscreen="elfinder-quicklook-fullscreen",navtrigger=function(code){$(document).trigger($.Event("keydown",
{keyCode:code,ctrlKey:false,shiftKey:false,altKey:false,metaKey:false}))},closedCss=function(node){return{opacity:0,width:20,height:20,top:0,left:0}},openedCss=function(){var win=$(window);return{opacity:1,width:width,height:height,top:parseInt((win.height()-height)/2+win.scrollTop()),left:parseInt((win.width()-width)/2+win.scrollLeft())}},support=function(codec){var media=document.createElement(codec.substr(0,codec.indexOf("/"))),value=false;try{value=media.canPlayType&&media.canPlayType(codec)}catch(e){}return value&&
value!==""&&value!="no"},width,height,parent,cwd,title=$('\x3cdiv class\x3d"elfinder-quicklook-title"/\x3e'),icon=$("\x3cdiv/\x3e"),info=$('\x3cdiv class\x3d"elfinder-quicklook-info"/\x3e'),fsicon=$('\x3cdiv class\x3d"'+navicon+" "+navicon+'-fullscreen"/\x3e').mousedown(function(e){var win=self.window,full=win.is("."+fullscreen),scroll="scroll.elfinder-finder",$window=$(window);e.stopPropagation();if(full){win.css(win.data("position")).unbind("mousemove");$window.unbind(scroll).trigger(self.resize).unbind(self.resize);
navbar.unbind("mouseenter").unbind("mousemove")}else{win.data("position",{left:win.css("left"),top:win.css("top"),width:win.width(),height:win.height()}).css({width:"100%",height:"100%"});$(window).bind(scroll,function(){win.css({left:parseInt($(window).scrollLeft())+"px",top:parseInt($(window).scrollTop())+"px"})}).bind(self.resize,function(e){self.preview.trigger("changesize")}).trigger(scroll).trigger(self.resize);win.bind("mousemove",function(e){navbar.stop(true,true).show().delay(3E3).fadeOut("slow")}).mousemove();
navbar.mouseenter(function(){navbar.stop(true,true).show()}).mousemove(function(e){e.stopPropagation()})}navbar.attr("style","").draggable(full?"destroy":{});win.toggleClass(fullscreen);$(this).toggleClass(navicon+"-fullscreen-off");if(!parent)parent=$("#xFileRoot");$.fn.resizable&&parent.add(win).resizable(full?"enable":"disable").removeClass("ui-state-disabled")}),navbar=$('\x3cdiv class\x3d"elfinder-quicklook-navbar"/\x3e').append($('\x3cdiv class\x3d"'+navicon+" "+navicon+'-prev"/\x3e').mousedown(function(){navtrigger(37)})).append(fsicon).append($('\x3cdiv class\x3d"'+
navicon+" "+navicon+'-next"/\x3e').mousedown(function(){navtrigger(39)})).append('\x3cdiv class\x3d"elfinder-quicklook-navbar-separator"/\x3e').append($('\x3cdiv class\x3d"'+navicon+" "+navicon+'-close"/\x3e').mousedown(function(){self.window.trigger("close")}));this.resize="resize.elfinder-finder";this.info=$('\x3cdiv class\x3d"elfinder-quicklook-info-wrapper"/\x3e').append(icon).append(info);this.preview=$('\x3cdiv class\x3d"elfinder-quicklook-preview ui-helper-clearfix"/\x3e').bind("change",function(e){self.info.attr("style",
"").hide();icon.removeAttr("class").attr("style","");info.html("")}).bind("update",function(e){var fm=self.fm,preview=self.preview,file=e.file,tpl='\x3cdiv class\x3d"elfinder-quicklook-info-data"\x3e{value}\x3c/div\x3e',tmb;if(file){!file.read&&e.stopImmediatePropagation();self.window.data("hash",file.hash);self.preview.unbind("changesize").trigger("change").children().remove();title.html(fm.escape(file.name));info.html(tpl.replace(/\{value\}/,file.name)+tpl.replace(/\{value\}/,fm.mime2kind(file))+
(file.mime=="directory"?"":tpl.replace(/\{value\}/,fm.formatSize(file.size)))+tpl.replace(/\{value\}/,fm.i18n("modify")+": "+fm.formatDate(file)));icon.addClass("elfinder-cwd-icon ui-corner-all "+fm.mime2class(file.mime));if(file.tmb)$("\x3cimg/\x3e").hide().appendTo(self.preview).load(function(){icon.css("background",'url("'+tmb+'") center center no-repeat');$(this).remove()}).attr("src",tmb=fm.tmb(file.hash));self.info.delay(100).fadeIn(10)}else e.stopImmediatePropagation()});this.window=$('\x3cdiv class\x3d"ui-helper-reset ui-widget elfinder-quicklook" style\x3d"position:absolute"/\x3e').click(function(e){e.stopPropagation()}).append($('\x3cdiv class\x3d"elfinder-quicklook-titlebar"/\x3e').append(title).append($('\x3cspan class\x3d"ui-icon ui-icon-circle-close"/\x3e').mousedown(function(e){e.stopPropagation();
self.window.trigger("close")}))).append(this.preview.add(navbar)).append(self.info.hide()).draggable({handle:"div.elfinder-quicklook-titlebar"}).bind("open",function(e){var win=self.window,file=self.value,node;if(self.closed()&&file&&(node=cwd.find("#"+file.hash)).length){navbar.attr("style","");state=animated;node.trigger("scrolltoview");win.css(closedCss(node)).show().animate(openedCss(),550,function(){state=opened;self.update(1,self.value)})}}).bind("close",function(e){var win=self.window,preview=
self.preview.trigger("change"),file=self.value,node={},close=function(){state=closed;win.hide();preview.children().remove();self.update(0,self.value)};if(self.opened()){state=animated;win.is("."+fullscreen)&&fsicon.mousedown();node.length?win.animate(closedCss(node),500,close):close()}});this.update=function(){console.error("update")};this.alwaysEnabled=true;this.value=null;this.handlers={select:function(){this.update(void 0,this.fm.selectedFiles()[0])},error:function(){self.window.is(":visible")&&
self.window.data("hash","").trigger("close")},"searchshow searchhide":function(){this.opened()&&this.window.trigger("close")}};this.shortcuts=[{pattern:"space"}];this.support={audio:{ogg:support('audio/ogg; codecs\x3d"vorbis"'),mp3:support("audio/mpeg;"),wav:support('audio/wav; codecs\x3d"1"'),m4a:support("audio/x-m4a;")||support("audio/aac;")},video:{ogg:support('video/ogg; codecs\x3d"theora"'),webm:support('video/webm; codecs\x3d"vp8, vorbis"'),mp4:support('video/mp4; codecs\x3d"avc1.42E01E"')||
support('video/mp4; codecs\x3d"avc1.42E01E, mp4a.40.2"')}};this.closed=function(){return state==closed};this.opened=function(){return state==opened};this.bind=function(event,callback){var i;if(typeof callback=="function"){event=(""+event).toLowerCase().split(/\s+/);for(i=0;i<event.length;i++){if(listeners[event[i]]===void 0)listeners[event[i]]=[];listeners[event[i]].push(callback)}}return this};this.one=function(event,callback){var self=this,h=$.proxy(callback,function(event){setTimeout(function(){self.unbind(event.type,
h)},3);return callback.apply(this,arguments)});return this.bind(event,h)};this.open=function(e){var win=self.window,file=self.value,node;if(self.closed()){navbar.attr("style","");state=animated;win.css(closedCss(node)).show().animate(openedCss(),550,function(){state=opened;self.update(1,self.value)})}};this.close=function(e){var win=self.window,preview=self.preview.trigger("change"),file=self.value,node={},close=function(){state=closed;win.hide();preview.children().remove();self.update(0,self.value)};
if(self.opened()){state=animated;win.is("."+fullscreen)&&fsicon.mousedown();node.length?win.animate(closedCss(node),500,close):close()}};this.init=function(){this.options={autoplay:true,jplayer:"extensions/jplayer",ui:"button"};var o=this.options,win=this.window,preview=this.preview,i,p;width=o.width>0?parseInt(o.width):450;height=o.height>0?parseInt(o.height):300;win.appendTo("body").zIndex(100);$(document).keydown(function(e){e.keyCode==27&&self.opened()&&win.trigger("close")});if($.fn.resizable)win.resizable({handles:"se",
minWidth:350,minHeight:120,resize:function(){preview.trigger("changesize")}});$.each(plugins||[],function(i,plugin){if(typeof plugin=="function")new plugin(self)});preview.bind("update",function(){self.info.show()})};this.getstate=function(){return this.fm.selected().length==1?state==opened?1:0:-1};this.exec=function(){this.enabled()&&this.window.trigger(this.opened()?"close":"open")};this.hideinfo=function(){this.info.stop(true).hide()}};return declare("xfiles.views.FilePanelPreview",null,{_preview:null,
updatePreview:function(item){if(!this._preview||!item||item.directory!=null)return;var preview=this._preview.preview;if(preview)preview.trigger($.Event("update",{file:item.path}))},doPreview:function(item){delegate=this.delegate;if(this._preview){if(this._preview.opened()){this._preview.close();return}this._preview.open();return}var _prev=new preview;_prev.init();_prev.parent=dojo.byId("xFileRoot");_prev.open();this._preview=_prev}})})},"xfile/layout/BorderContainer":function(){define("xfile/layout/BorderContainer",
["../../dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dojo/_base/lang","dijit/layout/BorderContainer","dojo/dom-class","dojo/dom-geometry","dojo/dom-style"],function(array,declare,html,on,lang,BorderContainer,domClass,domGeometry,domStyle){return dojo.declare("xfile.layout.BorderContainer",[BorderContainer],{splitter:false,cssClass:"borderContainer",persist:true,_splitterClass:"xfile.views.ToggleSplitter",cookieName:null,postMixInProperties:function(){this.inherited(arguments);
if(this.cookieName||this.container)this._cookieName=this.cookieName||this.container.id+"_"+this.region},buildRendering:function(){this.inherited(arguments);domClass.add(this.domNode,this.cssClass)}})})},"dojox/rpc/JsonRPC":function(){define("dojox/rpc/JsonRPC",["dojo","dojox","dojox/rpc/Service","dojo/errors/RequestError"],function(dojo,dojox,Service,RequestError){function jsonRpcEnvelope(version){return{serialize:function(smd,method,data,options){var d={id:this._requestId++,method:method.name,params:data};
if(version)d.jsonrpc=version;return{data:dojo.toJson(d),handleAs:"json",contentType:"application/json",transport:"POST"}},deserialize:function(obj){if("Error"==obj.name||obj instanceof RequestError)obj=dojo.fromJson(obj.responseText);if(obj.error){var e=new Error(obj.error.message||obj.error);e._rpcErrorObject=obj.error;return e}return obj.result}}}dojox.rpc.envelopeRegistry.register("JSON-RPC-1.0",function(str){return str=="JSON-RPC-1.0"},dojo.mixin({namedParams:false},jsonRpcEnvelope()));dojox.rpc.envelopeRegistry.register("JSON-RPC-2.0",
function(str){return str=="JSON-RPC-2.0"},dojo.mixin({namedParams:true},jsonRpcEnvelope("2.0")))})},"xwordpress/run":function(){require({packages:["dojo","dijit","dojox",{name:"xapp",location:"xapp",packageMap:{}},{name:"xas",location:"xas",packageMap:{}},{name:"xwordpress",location:"xwordpress",packageMap:{}},{name:"cbtree",location:"cbtree",packageMap:{}},{name:"xappconnect",location:"xappconnect",packageMap:{}},{name:"xide",location:"xide",packageMap:{}},{name:"dgrid",location:"dgrid",packageMap:{}},
{name:"put-selector",location:"put-selector",packageMap:{}},{name:"xstyle",location:"xstyle",packageMap:{}},{name:"dcl",location:"dcl",packageMap:{}},{name:"xlog",location:"xlog",packageMap:{}},{name:"xfile",location:"xfile",packageMap:{}},"xwordpress"],cache:{}},["xwordpress"])},"dojox/data/JsonRestStore":function(){define("dojox/data/JsonRestStore",["dojo/_base/lang","dojo/_base/declare","dojo/_base/connect","dojox/rpc/Rest","dojox/rpc/JsonRest","dojox/json/schema","dojox/data/ServiceStore"],function(lang,
declare,connect,rpcRest,rpcJsonRest,jsonSchema,ServiceStore){var rpc=lang.getObject("dojox.rpc",true);var JsonRestStore=declare("dojox.data.JsonRestStore",ServiceStore,{constructor:function(options){connect.connect(rpcRest._index,"onUpdate",this,function(obj,attrName,oldValue,newValue){var prefix=this.service.servicePath;if(!obj.__id)0&&console.log("no id on updated object ",obj);else if(obj.__id.substring(0,prefix.length)==prefix)this.onSet(obj,attrName,oldValue,newValue)});this.idAttribute=this.idAttribute||
"id";if(typeof options.target=="string"){options.target=options.target.match(/\/$/)||this.allowNoTrailingSlash?options.target:options.target+"/";if(!this.service)this.service=rpcJsonRest.services[options.target]||rpcRest(options.target,true)}rpcJsonRest.registerService(this.service,options.target,this.schema);this.schema=this.service._schema=this.schema||this.service._schema||{};this.service._store=this;this.service.idAsRef=this.idAsRef;this.schema._idAttr=this.idAttribute;var constructor=rpcJsonRest.getConstructor(this.service);
var self=this;this._constructor=function(data){constructor.call(this,data);self.onNew(this)};this._constructor.prototype=constructor.prototype;this._index=rpcRest._index},loadReferencedSchema:true,idAsRef:false,referenceIntegrity:true,target:"",allowNoTrailingSlash:false,newItem:function(data,parentInfo){data=new this._constructor(data);if(parentInfo){var values=this.getValue(parentInfo.parent,parentInfo.attribute,[]);values=values.concat([data]);data.__parent=values;this.setValue(parentInfo.parent,
parentInfo.attribute,values)}return data},deleteItem:function(item){var checked=[];var store=dataExtCfg._getStoreForItem(item)||this;if(this.referenceIntegrity){rpcJsonRest._saveNotNeeded=true;var index=rpcRest._index;var fixReferences=function(parent){var toSplice;checked.push(parent);parent.__checked=1;for(var i in parent)if(i.substring(0,2)!="__"){var value=parent[i];if(value==item){if(parent!=index)if(parent instanceof Array)(toSplice=toSplice||[]).push(i);else(dataExtCfg._getStoreForItem(parent)||
store).unsetAttribute(parent,i)}else if(typeof value=="object"&&value){if(!value.__checked)fixReferences(value);if(typeof value.__checked=="object"&&parent!=index)(dataExtCfg._getStoreForItem(parent)||store).setValue(parent,i,value.__checked)}}if(toSplice){i=toSplice.length;parent=parent.__checked=parent.concat();while(i--)parent.splice(toSplice[i],1);return parent}return null};fixReferences(index);rpcJsonRest._saveNotNeeded=false;var i=0;while(checked[i])delete checked[i++].__checked}rpcJsonRest.deleteObject(item);
store.onDelete(item)},changing:function(item,_deleting){rpcJsonRest.changing(item,_deleting)},cancelChanging:function(object){if(!object.__id)return;dirtyObjects=dirty=rpcJsonRest.getDirtyObjects();for(var i=0;i<dirtyObjects.length;i++){var dirty=dirtyObjects[i];if(object==dirty.object){dirtyObjects.splice(i,1);return}}},setValue:function(item,attribute,value){var old=item[attribute];var store=item.__id?dataExtCfg._getStoreForItem(item):this;if(jsonSchema&&store.schema&&store.schema.properties)jsonSchema.mustBeValid(jsonSchema.checkPropertyChange(value,
store.schema.properties[attribute]));if(attribute==store.idAttribute)throw new Error("Can not change the identity attribute for an item");store.changing(item);item[attribute]=value;if(value&&!value.__parent)value.__parent=item;store.onSet(item,attribute,old,value)},setValues:function(item,attribute,values){if(!lang.isArray(values))throw new Error("setValues expects to be passed an Array object as its value");this.setValue(item,attribute,values)},unsetAttribute:function(item,attribute){this.changing(item);
var old=item[attribute];delete item[attribute];this.onSet(item,attribute,old,undefined)},save:function(kwArgs){if(!(kwArgs&&kwArgs.global))(kwArgs=kwArgs||{}).service=this.service;if("syncMode"in kwArgs?kwArgs.syncMode:this.syncMode)rpc._sync=true;var actions=rpcJsonRest.commit(kwArgs);this.serverVersion=this._updates&&this._updates.length;return actions},revert:function(kwArgs){rpcJsonRest.revert(!(kwArgs&&kwArgs.global)&&this.service)},isDirty:function(item){return rpcJsonRest.isDirty(item,this)},
isItem:function(item,anyStore){return item&&item.__id&&(anyStore||this.service==rpcJsonRest.getServiceAndId(item.__id).service)},_doQuery:function(args){var query=typeof args.queryStr=="string"?args.queryStr:args.query;var deferred=rpcJsonRest.query(this.service,query,args);var self=this;if(this.loadReferencedSchema)deferred.addCallback(function(result){var contentType=deferred.ioArgs&&deferred.ioArgs.xhr&&deferred.ioArgs.xhr.getResponseHeader("Content-Type");var schemaRef=contentType&&contentType.match(/definedby\s*=\s*([^;]*)/);
if(contentType&&!schemaRef){schemaRef=deferred.ioArgs.xhr.getResponseHeader("Link");schemaRef=schemaRef&&schemaRef.match(/<([^>]*)>;\s*rel="?definedby"?/)}schemaRef=schemaRef&&schemaRef[1];if(schemaRef){var serviceAndId=rpcJsonRest.getServiceAndId((self.target+schemaRef).replace(/^(.*\/)?(\w+:\/\/)|[^\/\.]+\/\.\.\/|^.*\/(\/)/,"$2$3"));var schemaDeferred=rpcJsonRest.byId(serviceAndId.service,serviceAndId.id);schemaDeferred.addCallbacks(function(newSchema){lang.mixin(self.schema,newSchema);return result},
function(error){console.error(error);return result});return schemaDeferred}return undefined});return deferred},_processResults:function(results,deferred){var count=results.length;return{totalCount:deferred.fullLength||(deferred.request.count==count?(deferred.request.start||0)+count*2:count),items:results}},getConstructor:function(){return this._constructor},getIdentity:function(item){var id=item.__clientId||item.__id;if(!id)return id;var prefix=this.service.servicePath.replace(/[^\/]*$/,"");return id.substring(0,
prefix.length)!=prefix?id:id.substring(prefix.length)},fetchItemByIdentity:function(args){var id=args.identity;var store=this;if(id.toString().match(/^(\w*:)?\//)){var serviceAndId=rpcJsonRest.getServiceAndId(id);store=serviceAndId.service._store;args.identity=serviceAndId.id}args._prefix=store.service.servicePath.replace(/[^\/]*$/,"");return store.inherited(arguments)},onSet:function(){},onNew:function(){},onDelete:function(){},getFeatures:function(){var features=this.inherited(arguments);features["dojo.data.api.Write"]=
true;features["dojo.data.api.Notification"]=true;return features},getParent:function(item){return item&&item.__parent}});JsonRestStore.getStore=function(options,Class){if(typeof options.target=="string"){options.target=options.target.match(/\/$/)||options.allowNoTrailingSlash?options.target:options.target+"/";var store=(rpcJsonRest.services[options.target]||{})._store;if(store)return store}return new (Class||JsonRestStore)(options)};var dataExtCfg=lang.getObject("dojox.data",true);dataExtCfg._getStoreForItem=
function(item){if(item.__id){var serviceAndId=rpcJsonRest.getServiceAndId(item.__id);if(serviceAndId&&serviceAndId.service._store)return serviceAndId.service._store;else{var servicePath=item.__id.toString().match(/.*\//)[0];return new JsonRestStore({target:servicePath})}}return null};var jsonRefConfig=lang.getObject("dojox.json.ref",true);jsonRefConfig._useRefs=true;return JsonRestStore})},"xfile/factory/views":function(){define("xfile/factory/views",["dojo/dom-class","xide/types","xide/utils","xfile/factory",
"dojo/_base/lang","dijit/layout/TabContainer","xfile/views/FileTreeView","xfile/views/FileGridView","xfile/views/FileOperationDialog","xfile/views/FileDeleteDialog","xfile/views/PreviewEditor","xfile/views/NewItemDialog","xfile/views/FileFindDialog","xfile/views/FilePanel","xfile/views/FileSelectDialog"],function(domClass,types,utils,factory,lang,TabContainer,FileTreeView,FileGridView,FileOperationDialog,FileDeleteDialog,PreviewEditor,NewItemDialog,FileFindDialog,FilePanel,FileSelectDialog){factory.createFileSelectDialog=
function(options,onSelected){var _delegate={onShowPanel:function(){},onOk:function(dlg){if(dlg&&dlg.filePanel){var activeItem=dlg.filePanel.getActiveItem();if(activeItem){var path=activeItem.path;if(path&&onSelected)onSelected(path)}}}};var _options={title:"Select",delegate:_delegate};lang.mixin(_options,options);var dlg=new FileSelectDialog(_options);domClass.add(dlg.domNode,"fileSelectDialog");dlg.show();dlg.initWithWithDestination();dlg.resize();return dlg};factory.createFilePanel=function(mount,
owner,url,where,options,store,config){if(url==null)url=".";var _options={title:url||"./",cookiePrefix:"left",url:url,region:"left",closable:true,config:config,className:"xfileContainerEmbedded filePanel ui-state-default",ctx:null,clipboardManager:null,panelManager:null,lazy:false,owner:owner,store:store};if(options)if(options.config){var newConfig=this.cloneConfig(_options.config);_options.config=newConfig;lang.mixin(_options.config,options.config)}var tabView=utils.addWidget(FilePanel,_options,this,
where,true);return tabView};factory.createEditorWithTypeAndContent=function(delegate,sourceType,editorContent){return new PreviewEditor({dataRef:null,sourceType:sourceType,delegate:delegate,title:"Title",titleEdit:false,content:editorContent},dojo.doc.createElement("div"))};factory.createTreeView=function(title,config,where,delegate,ctx,store,model,selectable,url,rootLabel){var fileTreeView=FileTreeView({title:title||"Files",rootLabel:rootLabel,selectable:selectable||false,className:"fileTreeView resourceBrowser contentPanel",
closable:true,selected:false,fileStoreUrl:config.FILES_STORE_URL,themeRoot:config.THEME_ROOT,rootPrefix:config.WEB_ROOT,delegate:delegate,tabIndex:0,region:"bottom",style:"overflow-y:auto;left:0;padding:0px !important;overflow-x:hidden;",splitter:true,editorDelegate:ctx.getScriptManager(),store:store,model:model,config:config,url:url},dojo.doc.createElement("div"));where.appendChild(fileTreeView.domNode);fileTreeView.startup();fileTreeView.initWidgets();fileTreeView.domNode.focus();return fileTreeView};
factory.createFileOperationDialog=function(title,selection,dst,owner,delegate,ctx,config){var dialog=new FileOperationDialog({title:title||"",owner:owner,dst:dst,selection:selection,config:config,delegate:delegate,ctx:ctx,store:owner.store,model:owner.model});domClass.add(dialog.domNode,"fileOperationDialog");return dialog};factory.createFileFindDialog=function(title,dst,owner,delegate,ctx,config){var dialog=new FileFindDialog({title:title||"",owner:owner,path:dst,config:config,delegate:delegate,
ctx:ctx,store:owner.store,model:owner.model});domClass.add(dialog.domNode,"fileOperationDialog");return dialog};factory.createNewItemDialog=function(title,dst,owner,delegate,ctx,config,operation){var dialog=new NewItemDialog({title:title||"",owner:owner,dst:dst,config:config,delegate:delegate,ctx:ctx,store:owner.store,model:owner.model,operation:operation});domClass.add(dialog.domNode,"fileOperationDialog");return dialog};factory.createFileDeleteDialog=function(title,selection,owner,delegate,ctx,
config){var dialog=new FileDeleteDialog({title:title||"",owner:owner,selection:selection,config:config,delegate:delegate,ctx:ctx,store:owner.store,model:owner.model,titleBarClass:"ui-state-error",inserts:[{query:".dijitDialogPaneContent",insert:'\x3cdiv\x3e\x3cspan class\x3d"fileManagerDialogText"\x3eDo you really want to remove  this items'+"?\x3c/span\x3e\x3c/div\x3e",place:"first"}]});domClass.add(dialog.domNode,"fileOperationDialog");return dialog};factory.createGidView=function(title,config,
where,delegate,ctx,store,model,className){var view=FileGridView({title:title||"Files",closable:true,selected:false,fileStoreUrl:config.FILES_STORE_URL,themeRoot:config.THEME_ROOT,rootPrefix:config.WEB_ROOT,delegate:delegate,region:"bottom",style:"overflow-y:auto;left:0;padding:0px !important;overflow-x:hidden;",splitter:true,editorDelegate:ctx?ctx.getScriptManager():null,tree:this.tree,tabIndex:1,className:className||"fileGridView",model:model,store:store,config:config},dojo.doc.createElement("div"));
where.appendChild(view.domNode);view.startup();view.initWidgets();view.domNode.focus();return view};factory.createMultiTabView=function(parent,title,start){var tabContainer=new dijit.layout.TabContainer({title:title||"Files",tabStrip:true,tabPosition:"bottom",splitter:true,attachParent:true,style:"width:100%","className":"widgetBase"});if(parent.addChild)parent.addChild(tabContainer);return tabContainer};return factory})},"dgrid/Grid":function(){define(["dojo/_base/kernel","dojo/_base/declare","dojo/on",
"dojo/has","put-selector/put","./List","./util/misc","dojo/_base/sniff"],function(kernel,declare,listen,has,put,List,miscUtil){var contentBoxSizing=has("ie")<8&&!has("quirks");function appendIfNode(parent,subNode){if(subNode&&subNode.nodeType)parent.appendChild(subNode)}function replaceInvalidChars(str){return miscUtil.escapeCssIdentifier(str,"-")}var Grid=declare(List,{columns:null,cellNavigation:true,tabableHeader:false,showHeader:true,column:function(target){if(typeof target!="object")return this.columns[target];
else return this.cell(target).column},listType:"grid",cell:function(target,columnId){if(target.column&&target.element)return target;if(target.target&&target.target.nodeType)target=target.target;var element;if(target.nodeType){var object;do{if(this._rowIdToObject[target.id])break;var colId=target.columnId;if(colId){columnId=colId;element=target;break}target=target.parentNode}while(target&&target!=this.domNode)}if(!element&&typeof columnId!="undefined"){var row=this.row(target),rowElement=row&&row.element;
if(rowElement){var elements=rowElement.getElementsByTagName("td");for(var i=0;i<elements.length;i++)if(elements[i].columnId==columnId){element=elements[i];break}}}if(target!=null)return{row:row||this.row(target),column:columnId&&this.column(columnId),element:element}},createRowCells:function(tag,each,subRows,object){var row=put("table.dgrid-row-table[role\x3dpresentation]"),cellNavigation=this.cellNavigation,tbody=has("ie")<9||has("quirks")?put(row,"tbody"):row,tr,si,sl,i,l,subRow,column,id,extraClasses,
className,cell,innerCell,colSpan,rowSpan;subRows=subRows||this.subRows;for(si=0,sl=subRows.length;si<sl;si++){subRow=subRows[si];tr=put(tbody,"tr");if(subRow.className)put(tr,"."+subRow.className);for(i=0,l=subRow.length;i<l;i++){column=subRow[i];id=column.id;extraClasses=column.field?".field-"+replaceInvalidChars(column.field):"";className=typeof column.className==="function"?column.className(object):column.className;if(className)extraClasses+="."+className;cell=put(tag+(".dgrid-cell.dgrid-cell-padding"+
(id?".dgrid-column-"+replaceInvalidChars(id):"")+extraClasses.replace(/ +/g,"."))+"[role\x3d"+(tag==="th"?"columnheader":"gridcell")+"]");cell.columnId=id;if(contentBoxSizing){innerCell=put(cell,"!dgrid-cell-padding div.dgrid-cell-padding");cell.contents=innerCell}else innerCell=cell;colSpan=column.colSpan;if(colSpan)cell.colSpan=colSpan;rowSpan=column.rowSpan;if(rowSpan)cell.rowSpan=rowSpan;each(innerCell,column);tr.appendChild(cell)}}return row},left:function(cell,steps){if(!cell.element)cell=this.cell(cell);
return this.cell(this._move(cell,-(steps||1),"dgrid-cell"))},right:function(cell,steps){if(!cell.element)cell=this.cell(cell);return this.cell(this._move(cell,steps||1,"dgrid-cell"))},renderRow:function(object,options){var self=this;var row=this.createRowCells("td",function(td,column){var data=object;if(column.get)data=column.get(object);else if("field"in column&&column.field!="_item")data=data[column.field];if(column.renderCell)appendIfNode(td,column.renderCell(object,data,td,options));else defaultRenderCell.call(column,
object,data,td,options)},options&&options.subRows,object);return put("div[role\x3drow]\x3e",row)},renderHeader:function(){var grid=this,columns=this.columns,headerNode=this.headerNode,i=headerNode.childNodes.length;headerNode.setAttribute("role","row");while(i--)put(headerNode.childNodes[i],"!");var row=this.createRowCells("th",function(th,column){var contentNode=column.headerNode=th;if(contentBoxSizing)th=th.parentNode;var field=column.field;if(field)th.field=field;if(column.renderHeaderCell)appendIfNode(contentNode,
column.renderHeaderCell(contentNode));else if("label"in column||column.field)contentNode.appendChild(document.createTextNode("label"in column?column.label:column.field));if(column.sortable!==false&&field&&field!="_item"){th.sortable=true;th.className+=" dgrid-sortable"}},this.subRows&&this.subRows.headerRows);this._rowIdToObject[row.id=this.id+"-header"]=this.columns;headerNode.appendChild(row);if(this._sortListener)this._sortListener.remove();this._sortListener=listen(row,"click,keydown",function(event){if(event.type==
"click"||event.keyCode==32||!has("opera")&&event.keyCode==13){var target=event.target,field,sort,newSort,eventObj;do if(target.sortable){newSort=[{attribute:field=target.field||target.columnId,descending:(sort=grid._sort[0])&&sort.attribute==field&&!sort.descending}];eventObj={bubbles:true,cancelable:true,grid:grid,parentType:event.type,sort:newSort};if(listen.emit(event.target,"dgrid-sort",eventObj)){grid._sortNode=target;grid.set("sort",newSort)}break}while((target=target.parentNode)&&target!=headerNode)}})},
resize:function(){var headerTableNode=this.headerNode.firstChild,contentNode=this.contentNode,width;this.inherited(arguments);if(!has("ie")||has("ie")>7&&!has("quirks")){contentNode.style.width="";if(contentNode&&headerTableNode)if((width=headerTableNode.offsetWidth)!=contentNode.offsetWidth)contentNode.style.width=width+"px"}},destroy:function(){this._destroyColumns();if(this._sortListener)this._sortListener.remove();this.inherited(arguments)},_setSort:function(property,descending){this.inherited(arguments);
this.updateSortArrow(this._sort)},updateSortArrow:function(sort,updateSort){if(this._lastSortedArrow){put(this._lastSortedArrow,"\x3c!dgrid-sort-up!dgrid-sort-down");put(this._lastSortedArrow,"!");delete this._lastSortedArrow}if(updateSort)this._sort=sort;if(!sort[0])return;var prop=sort[0].attribute,desc=sort[0].descending,target=this._sortNode,columns,column,i;delete this._sortNode;if(!target){columns=this.columns;for(i in columns){column=columns[i];if(column.field==prop){target=column.headerNode;
break}}}if(target){target=target.contents||target;this._lastSortedArrow=put(target.firstChild,"-div.dgrid-sort-arrow.ui-icon[role\x3dpresentation]");this._lastSortedArrow.innerHTML="\x26nbsp;";put(target,desc?".dgrid-sort-down":".dgrid-sort-up");this.resize()}},styleColumn:function(colId,css){return this.addCssRule("#"+miscUtil.escapeCssIdentifier(this.domNode.id)+" .dgrid-column-"+replaceInvalidChars(colId),css)},_configColumns:function(prefix,rowColumns){var subRow=[],isArray=rowColumns instanceof
Array;function configColumn(column,columnId){if(typeof column=="string")rowColumns[columnId]=column={label:column};if(!isArray&&!column.field)column.field=columnId;columnId=column.id=column.id||(isNaN(columnId)?columnId:prefix+columnId);if(this._configColumn){this._configColumn(column,columnId,rowColumns,prefix);columnId=column.id}if(isArray)this.columns[columnId]=column;column.grid=this;if(typeof column.init==="function")column.init();subRow.push(column)}miscUtil.each(rowColumns,configColumn,this);
return isArray?rowColumns:subRow},_destroyColumns:function(){var subRows=this.subRows,subRowsLength=subRows&&subRows.length,i,j,column,len;this.cleanup();for(i=0;i<subRowsLength;i++)for(j=0,len=subRows[i].length;j<len;j++){column=subRows[i][j];if(typeof column.destroy==="function")column.destroy()}},configStructure:function(){var subRows=this.subRows,columns=this._columns=this.columns;this.columns=!columns||columns instanceof Array?{}:columns;if(subRows)for(var i=0;i<subRows.length;i++)subRows[i]=
this._configColumns(i+"-",subRows[i]);else this.subRows=[this._configColumns("",columns)]},_getColumns:function(){return this._columns||this.columns},_setColumns:function(columns){this._destroyColumns();this.subRows=null;this.columns=columns;this._updateColumns()},_setSubRows:function(subrows){this._destroyColumns();this.subRows=subrows;this._updateColumns()},setColumns:function(columns){kernel.deprecated("setColumns(...)",'use set("columns", ...) instead',"dgrid 0.4");this.set("columns",columns)},
setSubRows:function(subrows){kernel.deprecated("setSubRows(...)",'use set("subRows", ...) instead',"dgrid 0.4");this.set("subRows",subrows)},_updateColumns:function(){this.configStructure();this.renderHeader();this.refresh();this._lastCollection&&this.renderArray(this._lastCollection);if(this._started)if(this._sort&&this._sort.length)this.updateSortArrow(this._sort);else this.resize()}});function defaultRenderCell(object,data,td,options){if(this.formatter){var formatter=this.formatter,formatterScope=
this.grid.formatterScope;td.innerHTML=typeof formatter==="string"&&formatterScope?formatterScope[formatter](data,object):this.formatter(data,object)}else if(data!=null)td.appendChild(document.createTextNode(data))}Grid.appendIfNode=appendIfNode;Grid.defaultRenderCell=defaultRenderCell;return Grid})},"xas/views/SettingsTreeView":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dojox/rpc/Service","dojo/_base/lang","dijit/tree/ForestStoreModel","dijit/Menu","dijit/MenuItem",
"dijit/Tree","dijit/tree/dndSource","dijit/layout/ContentPane","dojo/dom-construct"],function(array,declare,html,on,Service,lang,ForestStoreModel,Menu,MenuItem,Tree,dndSource,ContentPane,domConstruct){return dojo.declare("xas.views.SettingsTreeView",[ContentPane],{uuid:null,resourceTreeData:null,serviceObject:null,model:null,store:null,tree:null,currentSettingsView:null,currentItem:null,currentApplicationId:null,currentTreeNode:null,pMenu:null,pMenuContextItem:null,lastNewPageData:null,currentInsertionNode:null,
newItemData:null,didLoad:false,buildView:null,sheet:null,currentResourceItem:null,currentPlatform:"IPHONE_NATIVE",styleToggleToolbar:null,onSettingsViewClosed:function(view){if(view){var parent=dijit.byId("topTabs");view.empty();parent.removeChild(view);xapp.utils.destroyWidget(view);currentSettingsView=null}},openSettingsView:function(item){var parent=dijit.byId("topTabs");var _settingsViewId="metaSettinsView"+item.id;this.currentSettingsView=dijit.byId(_settingsViewId);if(this.currentSettingsView){this.currentSettingsView.empty();
parent.removeChild(this.currentSettingsView);xapp.utils.destroyWidgetById(_settingsViewId)}this.currentSettingsView=new xas.views.GroupedMetaSettingsView({id:_settingsViewId,title:"Meta Settings",region:"center",closable:true,delegate:this,className:"groupedResourceSettingsView"},dojo.doc.createElement("div"));parent.addChild(this.currentSettingsView);parent.selectChild(this.currentSettingsView);this.currentSettingsView.initWithMetaDataStore(this.metaStore)},onTreeClicked:function(item,node){if(xapp.utils.toString(item.type)==
"MetaSettings"){this.currentResourceItem=item;this.openSettingsView(item)}},changePlatform:function(platform){this.init(platform)},platformChanged:function(radio,item){if(item){if(this.currentPlatform!=radio.value)this.changePlatform(radio.value);this.currentPlatform=radio.value}},_defaultTree:function(){var res={"id":"1","identifier":"id","label":"name","items":[{children:[{"_reference":"41f2455e-59e9-430a-949a-e2181bd183d8"}],"id":"ROOT","label":null,"name":"Settings","path":null,"section":null,
"type":"top","uid":0,"uidStr":null},{children:[],"id":"41f2455e-59e9-430a-949a-e2181bd183d8","label":null,"name":"Application","type":"MetaSettings"},{children:[],"id":"f0e9f360-5dce-468f-a982-c7c059d0ae14","label":null,"name":"Application","type":"Resources"}]};return res},initWidgets:function(data){var thiz=this;var _storeTreeData=this._defaultTree();this.store=new dojo.data.ItemFileWriteStore({data:_storeTreeData,labelAttribute:"name"});this.model=new dijit.tree.ForestStoreModel({store:this.store,
rootId:"ROOT",rootLabel:"Resources",query:{type:"top"},childrenAttrs:["children"]});this.tree=new dijit.Tree({showRoot:false,model:this.model,persist:false,className:"container"});var dstHandlerCtx=this;dojo.connect(this.tree,"onClick",function(item,nodeWidget){dstHandlerCtx.onTreeClicked(item,nodeWidget)});this.domNode.appendChild(this.tree.domNode);this.tree.startup();this.tree.resize();var world=this.tree.rootNode;setTimeout(function(){var children=world.getChildren();var firstPage=world.getChildren()[0];
if(firstPage)on.emit(firstPage.expandoNode,"click",{bubbles:true})},300);var itemNode=this.tree._itemNodesMap["ROOT"]},resourceTreeDataReady:function(ref,res){ref.resourceTreeData=xapp.utils.removeEmptyStrings(res);if(ref.tree)xapp.utils.destroyWidget(ref.tree);ref.initWidgets(ref.resourceTreeData)},init:function(platform){var thiz=this;var cb=function(res){thiz.resourceTreeDataReady(thiz,res)};sctx.getResourceManager().getResourceTree(platform||sctx.getApplication().getStylePlatform(),"",cb)},startup:function(){if(this.didLoad)return;
this.inherited(arguments);this.didLoad=true}})})},"dojox/mobile/_ItemBase":function(){define("dojox/mobile/_ItemBase",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/window","dojo/dom-class","dojo/touch","dijit/registry","dijit/_Contained","dijit/_Container","dijit/_WidgetBase","./TransitionEvent","./iconUtils","./sniff","require"],function(array,declare,lang,win,domClass,touch,registry,Contained,Container,WidgetBase,TransitionEvent,iconUtils,has,BidiItemBase){var _ItemBase=
declare(0?"dojox.mobile._NonBidiItemBase":"dojox.mobile._ItemBase",[WidgetBase,Container,Contained],{icon:"",iconPos:"",alt:"",href:"",hrefTarget:"",moveTo:"",scene:"",clickable:false,url:"",urlTarget:"",back:false,transition:"",transitionDir:1,transitionOptions:null,callback:null,label:"",toggle:false,selected:false,tabIndex:"0",_setTabIndexAttr:"",paramsToInherit:"transition,icon",_selStartMethod:"none",_selEndMethod:"none",_delayedSelection:false,_duration:800,_handleClick:true,buildRendering:function(){this.inherited(arguments);
this._isOnLine=this.inheritParams()},startup:function(){if(this._started)return;if(!this._isOnLine)this.inheritParams();this._updateHandles();this.inherited(arguments)},inheritParams:function(){var parent=this.getParent();if(parent)array.forEach(this.paramsToInherit.split(/,/),function(p){if(p.match(/icon/i)){var base=p+"Base",pos=p+"Pos";if(this[p]&&parent[base]&&parent[base].charAt(parent[base].length-1)==="/")this[p]=parent[base]+this[p];if(!this[p])this[p]=parent[base];if(!this[pos])this[pos]=
parent[pos]}if(!this[p])this[p]=parent[p]},this);return!!parent},_updateHandles:function(){if(this._handleClick&&this._selStartMethod==="touch"){if(!this._onTouchStartHandle)this._onTouchStartHandle=this.connect(this.domNode,touch.press,"_onTouchStart")}else if(this._onTouchStartHandle){this.disconnect(this._onTouchStartHandle);this._onTouchStartHandle=null}},getTransOpts:function(){var opts=this.transitionOptions||{};array.forEach(["moveTo","href","hrefTarget","url","target","urlTarget","scene",
"transition","transitionDir"],function(p){opts[p]=opts[p]||this[p]},this);return opts},userClickAction:function(){},defaultClickAction:function(e){this.handleSelection(e);if(this.userClickAction(e)===false)return;this.makeTransition(e)},handleSelection:function(e){if(this._delayedSelection)this.set("selected",true);if(this._onTouchEndHandle){this.disconnect(this._onTouchEndHandle);this._onTouchEndHandle=null}var p=this.getParent();if(this.toggle)this.set("selected",!this._currentSel);else if(p&&p.selectOne)this.set("selected",
true);else if(this._selEndMethod==="touch")this.set("selected",false);else if(this._selEndMethod==="timer")this.defer(function(){this.set("selected",false)},this._duration)},makeTransition:function(e){if(this.back&&history){history.back();return}if(this.href&&this.hrefTarget){win.global.open(this.href,this.hrefTarget||"_blank");this._onNewWindowOpened(e);return}var opts=this.getTransOpts();var doTransition=!!(opts.moveTo||opts.href||opts.url||opts.target||opts.scene);if(this._prepareForTransition(e,
doTransition?opts:null)===false)return;if(doTransition){this.setTransitionPos(e);(new TransitionEvent(this.domNode,opts,e)).dispatch()}},_onNewWindowOpened:function(){},_prepareForTransition:function(e,transOpts){},_onTouchStart:function(e){if(this.getParent().isEditing||this.onTouchStart(e)===false)return;if(!this._onTouchEndHandle&&this._selStartMethod==="touch"){this._onTouchMoveHandle=this.connect(win.body(),touch.move,"_onTouchMove");this._onTouchEndHandle=this.connect(win.body(),touch.release,
"_onTouchEnd")}this.touchStartX=e.touches?e.touches[0].pageX:e.clientX;this.touchStartY=e.touches?e.touches[0].pageY:e.clientY;this._currentSel=this.selected;if(this._delayedSelection)this._selTimer=this.defer(function(){this.set("selected",true)},100);else this.set("selected",true)},onTouchStart:function(){},_onTouchMove:function(e){var x=e.touches?e.touches[0].pageX:e.clientX;var y=e.touches?e.touches[0].pageY:e.clientY;if(Math.abs(x-this.touchStartX)>=4||Math.abs(y-this.touchStartY)>=4){this.cancel();
var p=this.getParent();if(p&&p.selectOne)this._prevSel&&this._prevSel.set("selected",true);else this.set("selected",false)}},_disconnect:function(){this.disconnect(this._onTouchMoveHandle);this.disconnect(this._onTouchEndHandle);this._onTouchMoveHandle=this._onTouchEndHandle=null},cancel:function(){if(this._selTimer){this._selTimer.remove();this._selTimer=null}this._disconnect()},_onTouchEnd:function(e){if(!this._selTimer&&this._delayedSelection)return;this.cancel();this._onClick(e)},setTransitionPos:function(e){var w=
this;while(true){w=w.getParent();if(!w||domClass.contains(w.domNode,"mblView"))break}if(w){w.clickedPosX=e.clientX;w.clickedPosY=e.clientY}},transitionTo:function(moveTo,href,url,scene){var opts=moveTo&&typeof moveTo==="object"?moveTo:{moveTo:moveTo,href:href,url:url,scene:scene,transition:this.transition,transitionDir:this.transitionDir};(new TransitionEvent(this.domNode,opts)).dispatch()},_setIconAttr:function(icon){if(!this._isOnLine){this._pendingIcon=icon;return}this._set("icon",icon);this.iconNode=
iconUtils.setIcon(icon,this.iconPos,this.iconNode,this.alt,this.iconParentNode,this.refNode,this.position)},_setLabelAttr:function(text){this._set("label",text);this.labelNode.innerHTML=this._cv?this._cv(text):text},_setSelectedAttr:function(selected){if(selected){var p=this.getParent();if(p&&p.selectOne){var arr=array.filter(p.getChildren(),function(w){return w.selected});array.forEach(arr,function(c){this._prevSel=c;c.set("selected",false)},this)}}this._set("selected",selected)}});return 0?declare("dojox.mobile._ItemBase",
[_ItemBase,BidiItemBase]):_ItemBase})},"xide/manager/ContextBase":function(){define(["dojo/_base/declare","dojo/_base/array","dojo/_base/lang","dojo/i18n","xide/factory","xide/types"],function(declare,array,lang,i18n,factory,types){return declare("xide.manager.ContextBase",null,{language:"en",managers:[],createManager:function(clz,config,ctrArgs){if(!this.managers)this.managers=[];var ctrArgsFinal={ctx:this,config:config||this.config};if(ctrArgs)lang.mixin(ctrArgsFinal,ctrArgs);if(lang.isString(clz)&&
this.namespace){var _clz=null;if(clz.indexOf(".")==-1)_clz=this.namespace+clz;else _clz=""+clz;if(!dojo.getObject(_clz)){0&&console.log("creating manager instance : "+_clz+" doesnt exists!"+" Using default! ");clz=this.defaultNamespace+clz}else clz=_clz;0&&console.log("creating manager instance : "+clz)}else if(lang.isObject(clz))0&&console.log("creating manager instance : "+clz.declaredClass);var mgr=factory.createInstance(clz,ctrArgsFinal);if(!mgr){console.error("creating manager instance failed : "+
clz);return}this.managers.push(mgr);factory.publish(types.EVENTS.ON_CREATED_MANAGER,{instance:mgr,className:clz,ctx:this,config:config||this.config});return mgr},constructManagers:function(){},getValidLanguage:function(){if(this.language!="en"&&this.language!="es"&&this.language!="de"&&this.language!="fr")return"en";return this.language},getLanguage:function(){if(this.language!="en"&&this.language!="es"&&this.language!="de"&&this.language!="fr")return"en";return this.language},getLocals:function(module,
bundleName){var locals=null;try{locals=i18n.getLocalization(module,bundleName,this.language)}catch(e){}return locals},doMixins:function(mixins){array.forEach(mixins,function(mixin){var obj=dojo.getObject(mixin.declaredClass);if(mixin.declaredClass===this.declaredClass)obj=this;if(obj)lang.mixin(obj.prototype,mixin.mixin);else console.error("couldnt apply mixin to : "+mixin.declaredClass)})},constructor:function(){if(typeof navigator!=="undefined"&&typeof forceLanguage==="undefined"){if(navigator.appName==
"Netscape")var language=navigator.language;else var language=navigator.browserLanguage;this.language=language.substring(0,2)}else if(typeof forceLanguage!=="undefined"){this.language=forceLanguage;console.error("init with "+this.language)}}})})},"xfile/manager/NotificationManager":function(){define("xfile/manager/NotificationManager",["dojo/_base/declare","dojo/_base/lang","xide/factory","xide/types","xide/manager/ManagerBase","dojox/widget/Toaster","xfile/widgets/UploadItem"],function(declare,lang,
factory,types,ManagerBase,Toaster,UploadItem){return declare("xfile.manager.NotificationManager",[ManagerBase],{onError:function(err){var mess="";if(err&&err&&err.error&&err.error.message)mess=err.error.message;else if(err&&lang.isString(err))mess=err;else if(err&&lang.isString(err.message))mess=err.message;dojo.publish("errorMessageTopic",[{message:mess,type:"error",duration:5500}])},onStatus:function(err){var mess="";if(err&&err&&err.message)mess=err.message;else if(err&&lang.isString(err))mess=
err;dojo.publish("errorMessageTopic",[{message:mess,type:"message",duration:2550}])},_createProgressItem:function(item,parent){var uploadItem=new UploadItem({item:item,name:item.name},dojo.doc.createElement("div"));parent.appendChild(uploadItem.domNode);uploadItem.startup();return uploadItem},onUploadBegin:function(data){var bottomLog=dijit.registry.byId("bottomTabs");if(bottomLog){var splitter=bottomLog._splitterWidget;if(splitter)switch(splitter.state){case "full":break;case "collapsed":case "close":splitter.set("state",
"full");break}var item=data.item;if(item){var tab=dijit.registry.byId("bottomTabLog");if(tab){var uploadItem=this._createProgressItem(item,tab.containerNode);dojo.place(uploadItem.domNode,tab.containerNode,"first")}}}},init:function(){factory.subscribe(types.EVENTS.ERROR,this.onError,this);factory.subscribe(types.EVENTS.STATUS,this.onStatus,this)}})})},"dojo/cldr/nls/en/number":function(){define({"group":",","percentSign":"%","exponential":"E","scientificFormat":"#E0","percentFormat":"#,##0%","list":";",
"infinity":"\u221e","minusSign":"-","decimal":".","superscriptingExponent":"\u00d7","nan":"NaN","perMille":"\u2030","decimalFormat":"#,##0.###","currencyFormat":"\u00a4#,##0.00;(\u00a4#,##0.00)","plusSign":"+","decimalFormat-long":"000 trillion","decimalFormat-short":"000T"})},"dojo/_base/Deferred":function(){define(["./kernel","../Deferred","../promise/Promise","../errors/CancelError","../has","./lang","../when"],function(dojo,NewDeferred,Promise,CancelError,has,lang,when){var mutator=function(){};
var freeze=Object.freeze||function(){};var Deferred=dojo.Deferred=function(canceller){var result,finished,canceled,fired,isError,head,nextListener;var promise=this.promise=new Promise;function complete(value){if(finished)throw new Error("This deferred has already been resolved");result=value;finished=true;notify()}function notify(){var mutated;while(!mutated&&nextListener){var listener=nextListener;nextListener=nextListener.next;if(mutated=listener.progress==mutator)finished=false;var func=isError?
listener.error:listener.resolved;if(has("config-useDeferredInstrumentation"))if(isError&&NewDeferred.instrumentRejected)NewDeferred.instrumentRejected(result,!!func);if(func)try{var newResult=func(result);if(newResult&&typeof newResult.then==="function"){newResult.then(lang.hitch(listener.deferred,"resolve"),lang.hitch(listener.deferred,"reject"),lang.hitch(listener.deferred,"progress"));continue}var unchanged=mutated&&newResult===undefined;if(mutated&&!unchanged)isError=newResult instanceof Error;
listener.deferred[unchanged&&isError?"reject":"resolve"](unchanged?result:newResult)}catch(e){listener.deferred.reject(e)}else if(isError)listener.deferred.reject(result);else listener.deferred.resolve(result)}}this.isResolved=promise.isResolved=function(){return fired==0};this.isRejected=promise.isRejected=function(){return fired==1};this.isFulfilled=promise.isFulfilled=function(){return fired>=0};this.isCanceled=promise.isCanceled=function(){return canceled};this.resolve=this.callback=function(value){this.fired=
fired=0;this.results=[value,null];complete(value)};this.reject=this.errback=function(error){isError=true;this.fired=fired=1;if(has("config-useDeferredInstrumentation"))if(NewDeferred.instrumentRejected)NewDeferred.instrumentRejected(error,!!nextListener);complete(error);this.results=[null,error]};this.progress=function(update){var listener=nextListener;while(listener){var progress=listener.progress;progress&&progress(update);listener=listener.next}};this.addCallbacks=function(callback,errback){this.then(callback,
errback,mutator);return this};promise.then=this.then=function(resolvedCallback,errorCallback,progressCallback){var returnDeferred=progressCallback==mutator?this:new Deferred(promise.cancel);var listener={resolved:resolvedCallback,error:errorCallback,progress:progressCallback,deferred:returnDeferred};if(nextListener)head=head.next=listener;else nextListener=head=listener;if(finished)notify();return returnDeferred.promise};var deferred=this;promise.cancel=this.cancel=function(){if(!finished){var error=
canceller&&canceller(deferred);if(!finished){if(!(error instanceof Error))error=new CancelError(error);error.log=false;deferred.reject(error)}}canceled=true};freeze(promise)};lang.extend(Deferred,{addCallback:function(callback){return this.addCallbacks(lang.hitch.apply(dojo,arguments))},addErrback:function(errback){return this.addCallbacks(null,lang.hitch.apply(dojo,arguments))},addBoth:function(callback){var enclosed=lang.hitch.apply(dojo,arguments);return this.addCallbacks(enclosed,enclosed)},fired:-1});
Deferred.when=dojo.when=when;return Deferred})},"xfile/views/FileGridViewRendering":function(){define("xfile/views/FileGridViewRendering",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/_base/Deferred","dojo/on","dojox/rpc/Service","dojo/_base/lang","dijit/Menu","dijit/MenuItem","dijit/layout/ContentPane","dojox/grid/DataGrid","dojo/dom-construct","dgrid/OnDemandGrid","dgrid/Selection","dgrid/Keyboard","dgrid/extensions/ColumnResizer","dgrid/extensions/DnD","dgrid/extensions/Pagination",
"dojo/dnd/Source","dgrid/editor","dijit/InlineEditBox","put-selector/put","xide/utils","xfile/views/ContextMenuHandler","xide/types","./FileView","xide/factory","./_KeyNavMixin","dijit/form/TextBox","dijit/form/ValidationTextBox","./FileGridKeyboard"],function(array,declare,html,domClass,Deferred,on,Service,lang,Menu,MenuItem,ContentPane,DataGrid,domConstruct,Grid,Selection,Keyboard,ColumnResizer,DnD,Pagination,DnDSource,editor,InlineEditBox,put,utils,ContextMenuHandler,types,FileView,factory,_KeyNavMixin,
TextBox,ValidationTextBox,FileGridKeyboard){return dojo.declare("xfiles.views.FileGridViewRendering",null,{_parseConfig:function(config){var thiz=this;var columnsOut=[];if(!config){config={};var columns={};columns[types.FILE_GRID_COLUMNS.NAME]=true;columns[types.FILE_GRID_COLUMNS.SIZE]=true;columns[types.FILE_GRID_COLUMNS.MODIFIED]=true;config.columnFlags=columns}if(this.config.layoutMode==null)this.config.layoutMode=types.FILE_PANEL_LAYOUT.LIST;if(this.config.layoutMode==types.FILE_PANEL_LAYOUT.THUMB)config.columnFlags[types.FILE_GRID_COLUMNS.SIZE]=
false;if(config.columnFlags[types.FILE_GRID_COLUMNS.NAME])columnsOut.push({label:"Name",field:"name",sortable:true,editorx:"dijit/form/TextBox",formatter:function(value,obj){var directory=obj.directory==null?false:true;var no_access=obj.read===false&&obj.write===false;var icon="";if(directory)if(!no_access)icon=thiz.getThemePath()+"/images/mimes/16/folder.png";else icon=thiz.getThemePath()+"/images/mimes/16/lock.png";else if(!no_access)icon=thiz.getThemePath()+"/images/mimes/16/"+utils.getIcon(obj.path);
else icon=thiz.getThemePath()+"/images/mimes/16/lock.png";var extraClass="";var locked=false;var label=obj.showPath===true?obj.path:value;return'\x3cimg class\x3d"fileGridIconCell" src\x3d"'+icon+' "/\x3e\x3cspan class\x3d"fileGridNameCell"\x3e'+label+"\x3c/span\x3e"}});if(config.columnFlags[types.FILE_GRID_COLUMNS.SIZE])columnsOut.push({label:"Size",field:"size"});if(config.columnFlags[types.FILE_GRID_COLUMNS.MODIFIED])columnsOut.push({label:"Modified",field:"modified",sortable:true,formatter:function(value,
obj){var directory=obj.directory==null?false:true;var dateStr="";if(directory);else return thiz.formatDateSimple(value);return dateStr}});config.columns=columnsOut;return config},_createGrid:function(store,pagination){if(this.grid){utils.destroyWidget(this.grid);this.grid=null}var _store=store||this.store;_store.defaultQueryOptions=this.getQueryOptions();this.config=this._parseConfig(this.config);var thiz=this;var renderers={gallery:function(obj,options){return thiz.itemRendererGallery(obj)},details:function(obj,
options){return thiz.itemRendererDetails(obj,options)},table:function(obj,options){return thiz.itemRendererTable(this,obj,options);var div=put("div.collapsed",Grid.prototype.renderRow.apply(this,arguments)),expando=put(div,"div.expando","");return div}};this.renderers=renderers;this.config.selectionMode="extended";var SharedDndGridSource=declare(DnD.GridSource,{copyState2:function(){return false},onDropExternal:function(source,nodes,copy,targetItem){var grid=this.grid;var items=[];array.forEach(nodes,
function(node){Deferred.when(source.getObject(node),function(object){object.added=grid.addedSide;items.push(object)})});thiz.onDrop(items,targetItem,grid,copy)}});if(this.config.layoutMode==types.FILE_PANEL_LAYOUT.LIST){var baseClasses=[Grid,Selection,Keyboard,ColumnResizer,DnD];if(pagination===true)baseClasses.push(Pagination);this.grid=new (declare(baseClasses))({keepScrollPosition:true,dndConstructor:SharedDndGridSource,columns:this.config.columns,selectionMode:this.config.selectionMode,store:_store,
rowsPerPage:20,renderRow:renderers.table,delegate:this},dojo.doc.createElement("div"))}else if(this.config.layoutMode==types.FILE_PANEL_LAYOUT.THUMB)try{this.grid=new (declare([Grid,Selection,FileGridKeyboard,DnD]))({keepScrollPosition:true,dndConstructor:SharedDndGridSource,columns:this.config.columns,selectionMode:this.config.selectionMode,store:_store,renderRow:renderers.table,delegate:this},dojo.doc.createElement("div"))}catch(e){}renderers.table=this.grid.renderRow;this.containerNode.appendChild(this.grid.domNode);
if(this.autoHeight);this.grid.startup();var gridClass=this.config.layoutMode==types.FILE_PANEL_LAYOUT.LIST?"table":"gallery";domClass.add(this.grid.domNode,gridClass);this.grid.cellNavigation=this.config.layoutMode==types.FILE_PANEL_LAYOUT.LIST;this.viewClickHandler(gridClass);this.currentLayoutClass=gridClass;this.grid.on("dgrid-datachange",function(evt){});this.grid.on("dgrid-editor-show",function(evt){thiz.editing=true;thiz.editContext=evt});this.grid.on("dgrid-editor-hide",function(evt){thiz.editing=
false});this.grid.on("keydown",function(evt){thiz.onKeyEvent(evt)});this.grid.on("keyup",function(evt){thiz.onKeyEvent(evt)});this.grid.on("click",function(evt){if(evt&&evt.target&&domClass.contains(evt.target,"dgrid-content"))thiz.onContainerFocus();thiz.onMouseEvent(evt)});this.grid.on("dgrid-select",function(data){thiz.getNumberOfItems();if(this.isForcedFocus)return;if(data&&data.rows&&data.rows.length==1){thiz.prevItem=data.rows[0].data;thiz.prevFocusNode=data.rows[0].element;if(!thiz.ctlrKeyDown)thiz.onGridFileSelected(data.rows[0].data,
data.rows[0].element);else thiz.onGridFilesSelected(data.rows);thiz.lastSelectedRowItem=data.rows[0].data}else if(data&&data.rows&&data.rows.length>=1)thiz.onGridFilesSelected(data.rows)});this.grid.on(".dgrid-content:contextmenu",function(evt){var row=thiz.grid.row(evt);thiz.activeItem=row&&row.data});this.grid.on("dgrid-deselect",function(data){});this.grid.on("dblclick",function(evt){thiz.onMouseDoubleClickEvent(evt)});on.once(thiz.grid,"dgrid-refresh-complete",function(){thiz.onGridRefreshed()});
if(this.config.PANEL_OPTIONS.ALLOW_CONTEXT_MENU)this._createContextMenu(this.grid)},_recreateGrid:function(){this._createGrid();this.setDisplayMode(this.currentLayoutClass)},getThemePath:function(){return this.themeRoot+this.theme},initVariables:function(){if(this.config){lang.mixin(this,this.config);if(!this.config.columns){var columns={};columns[types.FILE_GRID_COLUMNS.NAME]=true;columns[types.FILE_GRID_COLUMNS.SIZE]=false;columns[types.FILE_GRID_COLUMNS.MODIFIED]=false;this.config.columnFlags=
columns}}this.queryOptions={deep:true,storeOnly:true}},viewClickHandler:function(view){this.grid.renderRow=this.renderers[view];try{put(this.grid.domNode,"!table!gallery!details."+view)}catch(e){}this.grid.set("showHeader",view=="table");try{this.grid.refresh()}catch(e){}},setDisplayMode:function(mode){if(mode==="table")this.onListMode(this);else if(mode==="gallery")this.onGalleryMode(this)},onListMode:function(ref){this.config.layoutMode=types.FILE_PANEL_LAYOUT.LIST;ref.viewClickHandler("table");
domClass.remove(this.grid.domNode,this.currentLayoutClass);domClass.add(this.grid.domNode,"table");this.grid.cellNavigation=true;this.currentLayoutClass="table"},onGalleryMode:function(ref){this.config.layoutMode=types.FILE_PANEL_LAYOUT.THUMB;this._recreateGrid();ref.viewClickHandler("gallery");this.grid.cellNavigation=false;domClass.remove(this.grid.domNode,this.currentLayoutClass);domClass.add(this.grid.domNode,"gallery");this.currentLayoutClass="gallery"},updateTrail:function(path){if(this.hasTrail)if(this.trail)this.trail.setTrail(path);
if(this.hasControls)this.createControls()},itemRendererDetails:function(obj){var div=put("div");div.innerHTML='\x3cdiv class\x3d"icon" style\x3d"background-image:url(resources/'+obj.icon+'-64.png);"\x3e\x26nbsp;\x3c/div\x3e\x3cdiv class\x3d"name"\x3e'+obj.name+'\x3c/div\x3e\x3cdiv class\x3d"summary"\x3e'+obj.summary+"\x3c/div\x3e";return div},itemRendererTable:function(thizGrid,obj,options){var thiz=this;var div=put("div.collapsed",Grid.prototype.renderRow.apply(thizGrid,[obj,options]));return div;
var div=put("div");div.innerHTML='\x3cdiv class\x3d"icon" style\x3d"background-image:url(resources/'+obj.icon+'-64.png);"\x3e\x26nbsp;\x3c/div\x3e\x3cdiv class\x3d"name"\x3e'+obj.name+'\x3c/div\x3e\x3cdiv class\x3d"summary"\x3e'+obj.summary+"\x3c/div\x3e";return div},getImageUrl:function(item){if(this.delegate&&this.delegate.getImageUrl)return this.delegate.getImageUrl(item);return null},itemRendererGallery:function(obj){var thiz=this;var div=put("span.fileGridCell");var icon=obj.icon;var no_access=
obj.read===false&&obj.write===false;if(obj&&obj.directory!=null&&obj.directory===true)if(no_access)obj.icon=thiz.getThemePath()+"/images/mimes/16/lock.png";else obj.icon=thiz.getThemePath()+"/images/mimes/64/folder.png";else if(obj.directory==null){var imageClass="";if(no_access)obj.icon=thiz.getThemePath()+"/images/mimes/64/folder.png";else if(utils.isImage(obj.path)){var url=this.getImageUrl(obj);if(url)obj.icon=utils.cleanUrl(url);else obj.icon=utils.cleanUrl(thiz.config.REPO_URL+"/"+obj.path);
imageClass="imageFile"}else obj.icon=thiz.getThemePath()+"/images/mimes/64/"+utils.getIcon(obj.path)}div.innerHTML='\x3cimg class\x3d"'+imageClass+'" src\x3d"'+obj.icon+'"/\x3e\x26nbsp;\x3cdiv class\x3d"name"\x3e'+obj.name+"\x3c/div\x3e";return div},createControls:function(){if(this.hasTrail&&this.hasControls){if(this.trail.listButton){utils.destroyWidget(this.trail.listButton);this.trail.listButton=null}if(this.trail.galleryButton){utils.destroyWidget(this.trail.galleryButton);this.trail.galleryButton=
null}this.trail.listButton=factory.createButton(this.trail.domNode,"","fileGridToolbarButton","float:right;","List",this.onListMode,this);this.trail.galleryButton=factory.createButton(this.trail.domNode,"","fileGridToolbarButton","float:right;","Thumb",this.onGalleryMode,this)}},formatDateSimple:function(data,format){var momentUnix=moment.unix(data);var dateStr=momentUnix.format("YYYY MMMM Do, h:mm:ss a");return dateStr},formatDate:function(dateObject,format){if(!format)format="yyyy-MM-dd h:mm:ss";
format=format.replace("d",dateObject.getDate()<10?"0"+dateObject.getDate():dateObject.getDate());format=format.replace("D",dateObject.getDay());format=format.replace("Y",dateObject.getFullYear());format=format.replace("y",dateObject.getYear());var month=dateObject.getMonth()+1;format=format.replace("m",month<10?"0"+month:month);format=format.replace("H",(dateObject.getHours()<10?"0":"")+dateObject.getHours());format=format.replace("h",dateObject.getHours()%12||12);format=format.replace("p",dateObject.getHours()<
12?"am":"pm");format=format.replace("P",dateObject.getHours()<12?"AM":"PM");format=format.replace("i",(dateObject.getMinutes()<10?"0":"")+dateObject.getMinutes());format=format.replace("s",(dateObject.getSeconds()<10?"0":"")+dateObject.getSeconds());return format},_initGridEventHandlers:function(){},initWidgets:function(data){var thiz=this;this.initVariables();if(this.hasTrail)if(!this.trail){this.trail=window["xappFileTrail"];this.containerNode.appendChild(this.trail.domNode);this.trail.startup()}var _selectedCB=
function(row){thiz.onSelected(row)};this._createGrid()},childSelector:".dgrid-row",focusNode:function(node){this.focusChild(node)}})})},"dojo/dnd/move":function(){define(["../_base/declare","../dom-geometry","../dom-style","./common","./Mover","./Moveable"],function(declare,domGeom,domStyle,dnd,Mover,Moveable){var constrainedMoveable=declare("dojo.dnd.move.constrainedMoveable",Moveable,{constraints:function(){},within:false,constructor:function(node,params){if(!params)params={};this.constraints=params.constraints;
this.within=params.within},onFirstMove:function(mover){var c=this.constraintBox=this.constraints.call(this,mover);c.r=c.l+c.w;c.b=c.t+c.h;if(this.within){var mb=domGeom.getMarginSize(mover.node);c.r-=mb.w;c.b-=mb.h}},onMove:function(mover,leftTop){var c=this.constraintBox,s=mover.node.style;this.onMoving(mover,leftTop);leftTop.l=leftTop.l<c.l?c.l:c.r<leftTop.l?c.r:leftTop.l;leftTop.t=leftTop.t<c.t?c.t:c.b<leftTop.t?c.b:leftTop.t;s.left=leftTop.l+"px";s.top=leftTop.t+"px";this.onMoved(mover,leftTop)}});
var boxConstrainedMoveable=declare("dojo.dnd.move.boxConstrainedMoveable",constrainedMoveable,{box:{},constructor:function(node,params){var box=params&&params.box;this.constraints=function(){return box}}});var parentConstrainedMoveable=declare("dojo.dnd.move.parentConstrainedMoveable",constrainedMoveable,{area:"content",constructor:function(node,params){var area=params&&params.area;this.constraints=function(){var n=this.node.parentNode,s=domStyle.getComputedStyle(n),mb=domGeom.getMarginBox(n,s);if(area==
"margin")return mb;var t=domGeom.getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border")return mb;t=domGeom.getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding")return mb;t=domGeom.getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb}}});return{constrainedMoveable:constrainedMoveable,boxConstrainedMoveable:boxConstrainedMoveable,parentConstrainedMoveable:parentConstrainedMoveable}})},"xfile/views/FileGridKeyboard":function(){define("xfile/views/FileGridKeyboard",
["dojo/_base/declare","dojo/aspect","dojo/on","dojo/_base/lang","dojo/has","put-selector/put","dojo/_base/Deferred","dojo/_base/sniff"],function(declare,aspect,on,lang,has,put,Deferred){var delegatingInputTypes={checkbox:1,radio:1,button:1},hasGridCellClass=/\bdgrid-cell\b/,hasGridRowClass=/\bdgrid-row\b/;has.add("dom-contains",function(global,doc,element){return!!element.contains});function contains(parent,node){if(has("dom-contains"))return parent.contains(node);else return parent.compareDocumentPosition(node)&
8}var Keyboard=declare(null,{left:function(cell,steps){if(!cell.element)cell=this.cell(cell);if(cell&&cell.row)cell=cell.row;var nextNode=this.cell(this._move(cell,-(steps||1),"dgrid-row"));return nextNode},right:function(cell,steps){if(!cell.element)cell=this.cell(cell);if(cell&&cell.row)cell=cell.row;var nextNode=this.cell(this._move(cell,steps||1,"dgrid-row"));return nextNode},pageSkip:10,tabIndex:0,currentRows:null,keyMap:null,headerKeyMap:null,postMixInProperties:function(){this.inherited(arguments);
if(!this.keyMap)this.keyMap=lang.mixin({},Keyboard.defaultKeyMap);if(!this.headerKeyMap)this.headerKeyMap=lang.mixin({},Keyboard.defaultHeaderKeyMap)},postCreate:function(){this.inherited(arguments);var grid=this;this.currentRows=[];function handledEvent(event){var target=event.target;return target.type&&(!delegatingInputTypes[target.type]||event.keyCode==32)}function enableNavigation(areaNode){var cellNavigation=grid.cellNavigation,isFocusableClass=cellNavigation?hasGridCellClass:hasGridRowClass,
isHeader=areaNode===grid.headerNode,initialNode=areaNode;function initHeader(){if(grid._focusedHeaderNode)grid._focusedHeaderNode.tabIndex=-1;if(grid.showHeader){grid._focusedHeaderNode=initialNode=cellNavigation?grid.headerNode.getElementsByTagName("th")[0]:grid.headerNode;if(initialNode)initialNode.tabIndex=grid.tabIndex}}if(isHeader){initHeader();aspect.after(grid,"renderHeader",initHeader,true)}else aspect.after(grid,"renderArray",function(ret){return Deferred.when(ret,function(ret){var focusedNode=
grid._focusedNode||initialNode;if(isFocusableClass.test(focusedNode.className)&&contains(areaNode,focusedNode))return ret;for(var i=0,elements=areaNode.getElementsByTagName("*"),element;element=elements[i];++i)if(isFocusableClass.test(element.className)){focusedNode=grid._focusedNode=element;break}focusedNode.tabIndex=grid.tabIndex;return ret})});grid._listeners.push(on(areaNode,"mousedown",function(event){if(!handledEvent(event))grid._focusOnNode(event.target,isHeader,event)}));grid._listeners.push(on(areaNode,
"keydown",function(event){if(event.metaKey||event.altKey)return;var handler=grid[isHeader?"headerKeyMap":"keyMap"][event.keyCode];if(handler&&!handledEvent(event))handler.call(grid,event)}))}if(this.tabableHeader){enableNavigation(this.headerNode);on(this.headerNode,"dgrid-cellfocusin",function(){grid.scrollTo({x:this.scrollLeft})})}enableNavigation(this.contentNode)},removeRow:function(rowElement){if(!this._focusedNode)return this.inherited(arguments);var self=this,isActive=document.activeElement===
this._focusedNode,focusedTarget=this[this.cellNavigation?"cell":"row"](this._focusedNode),focusedRow=focusedTarget.row||focusedTarget,sibling;rowElement=rowElement.element||rowElement;if(rowElement===focusedRow.element){sibling=this.down(focusedRow,true);if(!sibling||sibling.element===rowElement)sibling=this.up(focusedRow,true);this._removedFocus={active:isActive,rowId:focusedRow.id,columnId:focusedTarget.column&&focusedTarget.column.id,siblingId:!sibling||sibling.element===rowElement?undefined:sibling.id};
setTimeout(function(){if(self._removedFocus)self._restoreFocus(focusedRow.id)},0);this._focusedNode=null}this.inherited(arguments)},onStoreChange:function(){this.currentRows=[]},insertRow:function(object){var rowElement=this.inherited(arguments);if(object&&rowElement)this.currentRows.push({data:object,element:rowElement});if(this._removedFocus&&!this._removedFocus.wait)this._restoreFocus(rowElement);return rowElement},_restoreFocus:function(row){var focusInfo=this._removedFocus,newTarget;row=row&&
this.row(row);newTarget=row&&row.element&&row.id===focusInfo.rowId?row:typeof focusInfo.siblingId!=="undefined"&&this.row(focusInfo.siblingId);if(newTarget&&newTarget.element){if(!newTarget.element.parentNode.parentNode){focusInfo.wait=true;return}newTarget=typeof focusInfo.columnId!=="undefined"?this.cell(newTarget,focusInfo.columnId):newTarget;if(focusInfo.active)this.focus(newTarget);else{put(newTarget.element,".dgrid-focus");newTarget.element.tabIndex=this.tabIndex}}delete this._removedFocus},
addKeyHandler:function(key,callback,isHeader){return aspect.after(this[isHeader?"headerKeyMap":"keyMap"],key,callback,true)},_focusOnNode:function(element,isHeader,event){var focusedNodeProperty="_focused"+(isHeader?"Header":"")+"Node",focusedNode=this[focusedNodeProperty],cellOrRowType=this.cellNavigation?"cell":"row",cell=this[cellOrRowType](element),inputs,input,numInputs,inputFocused,i;element=cell&&cell.element;if(!element)return;if(this.cellNavigation){inputs=element.getElementsByTagName("input");
for(i=0,numInputs=inputs.length;i<numInputs;i++){input=inputs[i];if((input.tabIndex!=-1||"lastValue"in input)&&!input.disabled){if(has("ie")<8)input.style.position="relative";input.focus();if(has("ie")<8)input.style.position="";inputFocused=true;break}}}event=lang.mixin({grid:this},event);if(event.type)event.parentType=event.type;if(!event.bubbles)event.bubbles=true;if(focusedNode){put(focusedNode,"!dgrid-focus[!tabIndex]");if(has("ie")<8)focusedNode.style.position="";event[cellOrRowType]=this[cellOrRowType](focusedNode);
on.emit(element,"dgrid-cellfocusout",event)}focusedNode=this[focusedNodeProperty]=element;event[cellOrRowType]=cell;if(!inputFocused){if(has("ie")<8)element.style.position="relative";element.tabIndex=this.tabIndex;element.focus()}put(element,".dgrid-focus");on.emit(focusedNode,"dgrid-cellfocusin",event)},focusHeader:function(element){this._focusOnNode(element||this._focusedHeaderNode,true)},focus:function(element){this._focusOnNode(element||this._focusedNode,false)}});var moveFocusVertical=Keyboard.moveFocusVertical=
function(event,steps){var cellNavigation=this.cellNavigation,target=this[cellNavigation?"cell":"row"](event),columnId=cellNavigation&&target.column.id,next=this.down(this._focusedNode,steps,true);if(cellNavigation)next=this.cell(next,columnId);this._focusOnNode(next,false,event);event.preventDefault()};var moveFocusUp=Keyboard.moveFocusUp=function(event){moveFocusVertical.call(this,event,-1)};var moveFocusDown=Keyboard.moveFocusDown=function(event){moveFocusVertical.call(this,event,1)};var moveFocusPageUp=
Keyboard.moveFocusPageUp=function(event){moveFocusVertical.call(this,event,-this.pageSkip)};var moveFocusPageDown=Keyboard.moveFocusPageDown=function(event){moveFocusVertical.call(this,event,this.pageSkip)};var moveFocusHorizontal=Keyboard.moveFocusHorizontal=function(event,steps){var isHeader=!this.row(event);var currentNode=this["_focused"+(isHeader?"Header":"")+"Node"];var nextNode=this.right(currentNode,steps);if(nextNode&&nextNode.row)nextNode=nextNode.row;this._focusOnNode(nextNode,isHeader,
event);event.preventDefault()};var moveFocusLeft=Keyboard.moveFocusLeft=function(event){moveFocusHorizontal.call(this,event,-1)};var moveFocusRight=Keyboard.moveFocusRight=function(event){moveFocusHorizontal.call(this,event,1)};var moveHeaderFocusEnd=Keyboard.moveHeaderFocusEnd=function(event,scrollToBeginning){var nodes;if(this.cellNavigation){nodes=this.headerNode.getElementsByTagName("th");this._focusOnNode(nodes[scrollToBeginning?0:nodes.length-1],true,event)}event.preventDefault()};var moveHeaderFocusHome=
Keyboard.moveHeaderFocusHome=function(event){moveHeaderFocusEnd.call(this,event,true)};var moveFocusEnd=Keyboard.moveFocusEnd=function(event,scrollToTop){var self=this,cellNavigation=this.cellNavigation,contentNode=this.contentNode,contentPos=scrollToTop?0:contentNode.scrollHeight,scrollPos=contentNode.scrollTop+contentPos,endChild=contentNode[scrollToTop?"firstChild":"lastChild"],hasPreload=endChild.className.indexOf("dgrid-preload")>-1,endTarget=hasPreload?endChild[(scrollToTop?"next":"previous")+
"Sibling"]:endChild,endPos=endTarget.offsetTop+(scrollToTop?0:endTarget.offsetHeight),handle;if(hasPreload){while(endTarget&&endTarget.className.indexOf("dgrid-row")<0)endTarget=endTarget[(scrollToTop?"next":"previous")+"Sibling"];if(!endTarget)return}if(!hasPreload||endChild.offsetHeight<1){if(cellNavigation)endTarget=this.cell(endTarget,this.cell(event).column.id);this._focusOnNode(endTarget,false,event)}else{if(!has("dom-addeventlistener"))event=lang.mixin({},event);handle=aspect.after(this,"renderArray",
function(rows){handle.remove();return Deferred.when(rows,function(rows){var target=rows[scrollToTop?0:rows.length-1];if(cellNavigation)target=self.cell(target,self.cell(event).column.id);self._focusOnNode(target,false,event)})})}if(scrollPos===endPos)event.preventDefault()};var moveFocusHome=Keyboard.moveFocusHome=function(event){moveFocusEnd.call(this,event,true)};function preventDefault(event){event.preventDefault()}Keyboard.defaultKeyMap={32:preventDefault,33:moveFocusPageUp,34:moveFocusPageDown,
35:moveFocusEnd,36:moveFocusHome,37:moveFocusLeft,38:moveFocusUp,39:moveFocusRight,40:moveFocusDown};Keyboard.defaultHeaderKeyMap={32:preventDefault,35:moveHeaderFocusEnd,36:moveHeaderFocusHome,37:moveFocusLeft,39:moveFocusRight};return Keyboard})},"dojox/mobile/EdgeToEdgeList":function(){define("dojox/mobile/EdgeToEdgeList",["dojo/_base/declare","./RoundRectList"],function(declare,RoundRectList){return declare("dojox.mobile.EdgeToEdgeList",RoundRectList,{filterBoxClass:"mblFilteredEdgeToEdgeListSearchBox",
buildRendering:function(){this.inherited(arguments);this.domNode.className="mblEdgeToEdgeList"}})})},"xide/views/Console":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dojo/_base/lang","xide/widgets/TemplatedWidgetBase","xide/widgets/_CSSMixin","xide/widgets/_StyleMixin","xide/widgets/_InsertionMixin","xide/widgets/_HTMLTemplateMixin","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","xide/utils","xide/types","xide/factory","xide/layout/ContentPane","dojox/encoding/digests/MD5",
"dojo/cookie","dojo/json","./ConsoleKeyboardDelegate","./History","dijit/form/ToggleButton"],function(array,declare,html,on,lang,TemplatedWidgetBase,CSSMixin,_StyleMixin,_InsertionMixin,HTMLTemplateMixin,domClass,domGeometry,domStyle,utils,types,factory,ContentPane,MD5,cookie,json,ConsoleKeyboardDelegate,History,ToggleButton){return dojo.declare("Shell.xfile.widgets.Console",[TemplatedWidgetBase,CSSMixin,_StyleMixin,HTMLTemplateMixin,_InsertionMixin,ConsoleKeyboardDelegate,History],{delegate:null,
value:null,editNode:null,labelTextNode:null,labelNode:null,type:null,linkToggle:null,templateString:"\x3cdiv\x3e\x3cdiv class\x3d'console' data-dojo-attach-point\x3d'root'\x3e"+'\x3ctable class\x3d"" border\x3d"0" cellpadding\x3d"0px" width\x3d"100%" height\x3d"100%" \x3e'+"\x3ctbody data-dojo-attach-point\x3d'tBody' align\x3d'left'\x3e"+"\x3ctr class\x3d'' \x3e"+"\x3ctd class\x3d'linkNode' data-dojo-attach-point\x3d'linkNode' class\x3d'' valign\x3d'middle' width\x3d'30px'\x3e"+"\x3cbutton data-dojo-attach-point\x3d'linkToggle' data-dojo-type\x3d'dijit/form/ToggleButton' data-dojo-props\x3d\"iconClass:'el-icon-remove-circle', checked: true\"\x3e"+
"\x3c/button\x3e"+"\x3c/td\x3e"+"\x3ctd  class\x3d'editNode' data-dojo-attach-point\x3d'editNode' class\x3d'' valign\x3d'middle' width\x3d'100%'\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e"+"\x3c/div\x3e\x3c/div\x3e",isLinked:function(){return this.linkToggle.get("checked")},createWidgets:function(){this.editBox=factory.createEditBox(this.editNode,"",null,"",null,this);var thiz=this;this.editBox.on("keydown",function(evt){thiz.onKey(evt)});this.editBox.on("keyup",function(evt){thiz.onKey(evt)});
this.linkToggle.on("click",function(){if(thiz.delegate&&thiz.delegate.onButton)thiz.delegate.onButton()});domClass.remove(this.linkToggle.iconNode,"dijitReset")},getValue:function(){return this.editBox.get("value")},startup:function(){this.inherited(arguments);this.createWidgets()},onUp:function(){this.editBox.set("value",this.getPrev())},onDown:function(){this.editBox.set("value",this.getNext())},onEnter:function(){var value=this.editBox.get("value");this.delegate.onEnter(value);this.editBox.set("value",
"");this.push(value)}})})},"url:dijit/templates/MenuItem.html":'\x3ctr class\x3d"dijitReset dijitMenuItem" data-dojo-attach-point\x3d"focusNode" role\x3d"menuitem" tabIndex\x3d"-1"\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemIconCell" role\x3d"presentation"\x3e\n\t\t\x3cspan role\x3d"presentation" class\x3d"dijitInline dijitIcon dijitMenuItemIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\x3e\n\t\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemLabel" colspan\x3d"2" data-dojo-attach-point\x3d"containerNode,textDirNode"\x3e\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemAccelKey" style\x3d"display: none" data-dojo-attach-point\x3d"accelKeyNode"\x3e\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuArrowCell" role\x3d"presentation"\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"arrowWrapper" style\x3d"visibility: hidden"\x3e\n\t\t\t\x3cspan class\x3d"dijitInline dijitIcon dijitMenuExpand_ el-icon-caret-right" style\x3d"font-size: 8px"\x3e\x3c/span\x3e\n\t\t\t\x3cspan class\x3d"dijitMenuExpandA11y"\x3e+\x3c/span\x3e\n\t\t\x3c/span\x3e\n\t\x3c/td\x3e\n\x3c/tr\x3e\n',
"dijit/form/TextBox":function(){require({cache:{"url:dijit/form/templates/TextBox.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline dijitLeft" id\x3d"widget_${id}" role\x3d"presentation"\n\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitInputContainer"\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputInner" data-dojo-attach-point\x3d\'textbox,focusNode\' autocomplete\x3d"off"\n\t\t\t${!nameAttrSetting} type\x3d\'${type}\'\n\t/\x3e\x3c/div\n\x3e\x3c/div\x3e\n'}});define("dijit/form/TextBox",
["dojo/_base/declare","dojo/dom-construct","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","dojo/sniff","./_FormValueWidget","./_TextBoxMixin","dojo/text!./templates/TextBox.html","../main"],function(declare,domConstruct,domStyle,kernel,lang,has,_FormValueWidget,_TextBoxMixin,template,dijit){var TextBox=declare("dijit.form.TextBox"+(0?"_NoBidi":""),[_FormValueWidget,_TextBoxMixin],{templateString:template,_singleNodeTemplate:'\x3cinput class\x3d"dijit dijitReset dijitLeft dijitInputField" data-dojo-attach-point\x3d"textbox,focusNode" autocomplete\x3d"off" type\x3d"${type}" ${!nameAttrSetting} /\x3e',
_buttonInputDisabled:has("ie")?"disabled":"",baseClass:"dijitTextBox",postMixInProperties:function(){var type=this.type.toLowerCase();if(this.templateString&&this.templateString.toLowerCase()=="input"||(type=="hidden"||type=="file")&&this.templateString==this.constructor.prototype.templateString)this.templateString=this._singleNodeTemplate;this.inherited(arguments)},postCreate:function(){this.inherited(arguments);if(has("ie")<9)this.defer(function(){try{var s=domStyle.getComputedStyle(this.domNode);
if(s){var ff=s.fontFamily;if(ff){var inputs=this.domNode.getElementsByTagName("INPUT");if(inputs)for(var i=0;i<inputs.length;i++)inputs[i].style.fontFamily=ff}}}catch(e){}})},_setPlaceHolderAttr:function(v){this._set("placeHolder",v);if(!this._phspan){this._attachPoints.push("_phspan");this._phspan=domConstruct.create("span",{onmousedown:function(e){e.preventDefault()},className:"dijitPlaceHolder dijitInputField"},this.textbox,"after")}this._phspan.innerHTML="";this._phspan.appendChild(this._phspan.ownerDocument.createTextNode(v));
this._updatePlaceHolder()},_onInput:function(evt){this.inherited(arguments);this._updatePlaceHolder()},_updatePlaceHolder:function(){if(this._phspan)this._phspan.style.display=this.placeHolder&&!this.textbox.value?"":"none"},_setValueAttr:function(value,priorityChange,formattedValue){this.inherited(arguments);this._updatePlaceHolder()},getDisplayedValue:function(){kernel.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use get('displayedValue') instead.","","2.0");return this.get("displayedValue")},
setDisplayedValue:function(value){kernel.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0");this.set("displayedValue",value)},_onBlur:function(e){if(this.disabled)return;this.inherited(arguments);this._updatePlaceHolder();if(has("mozilla"))if(this.selectOnClick)this.textbox.selectionStart=this.textbox.selectionEnd=undefined},_onFocus:function(by){if(this.disabled||this.readOnly)return;this.inherited(arguments);this._updatePlaceHolder()}});
if(has("ie")){TextBox.prototype._isTextSelected=function(){var range=this.ownerDocument.selection.createRange();var parent=range.parentElement();return parent==this.textbox&&range.text.length>0};dijit._setSelectionRange=_TextBoxMixin._setSelectionRange=function(element,start,stop){if(element.createTextRange){var r=element.createTextRange();r.collapse(true);r.moveStart("character",-99999);r.moveStart("character",start);r.moveEnd("character",stop-start);r.select()}}}if(0)TextBox=declare("dijit.form.TextBox",
TextBox,{_setPlaceHolderAttr:function(v){this.inherited(arguments);this.applyTextDir(this._phspan)}});return TextBox})},"xide/layout/ContentPane":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-style","dojo/on","dojo/_base/lang","dijit/layout/ContentPane","dijit/registry","dojo/dom-class","dojo/dom-geometry","xide/widgets/_CSSMixin","xide/widgets/_PermaMixin","xide/views/_ProgressIndicatorMixin","xide/factory","xide/types","xide/mixins/EventedMixin","xide/mixins/ReloadMixin"],
function(array,declare,html,domStyle,on,lang,ContentPane,registry,domClass,domGeometry,CSSMixin,_PermaMixin,_ProgressIndicatorMixin,factory,types,EventedMixin,ReloadMixin){return declare("xide.layout.ContentPane",[ContentPane,CSSMixin,_PermaMixin,_ProgressIndicatorMixin,EventedMixin,ReloadMixin],{cssClass:"layoutContainer",region:"center",closable:false,adjustChildsToWidth:false,sameWidth:function(){var max=0;var children=this.containerNode.children;for(var i=0;i<children.length;i++){var child=children[i];
if(!child.style)continue;domStyle.set(child,{width:"auto"});var box=domGeometry.getContentBox(child);if(box.w>max)max=box.w}max-=15;for(var i=0;i<children.length;i++){var child=children[i];if(!child.style)continue;domStyle.set(child,{width:max+"px"})}},postMixInProperties:function(){this.inherited(arguments)},buildRendering:function(){this.inherited(arguments)},onResize:function(){if(this.adjustChildsToWidth)this.sameWidth();array.forEach(registry.findWidgets(this.containerNode),function(child){if(child.onResize)child.onResize()})},
onShow:function(){this.inherited(arguments);this.resize();if(this.adjustChildsToWidth)this.sameWidth();if(this.onResize)this.onResize();this.publish(types.EVENTS.ON_VIEW_SHOW,{view:this})},startup:function(){this.inherited(arguments);if(this.onResize)this.subscribe(types.EVENTS.RESIZE,this.onResize);this.initReload()}})})},"cbtree/Tree":function(){require({cache:{"url:cbtree/templates/cbtreeNode.html":'\x3cdiv class\x3d"dijitTreeNode" role\x3d"presentation"\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"rowNode" class\x3d"dijitTreeRow" role\x3d"presentation"\x3e\n\t\t\x3cdiv data-dojo-attach-point\x3d"indentNode" class\x3d"dijitInline"\x3e\x3c/div\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"expandoNode" class\x3d"dijitTreeExpando" role\x3d"presentation" /\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"expandoNodeText" class\x3d"dijitExpandoText" role\x3d"presentation"\x3e\x3c/span\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"checkBoxNode" class\x3d"cbtreeCheckBox" role\x3d"presentation"\x3e\x3c/span\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"contentNode" class\x3d"dijitTreeContent" role\x3d"presentation"\x3e\n\t\t\t\x3cimg src\x3d"${_blankGif}" alt\x3d"" data-dojo-attach-point\x3d"iconNode" class\x3d"dijitIcon dijitTreeIcon" role\x3d"presentation"/\x3e\n\t\t\t\x3cspan data-dojo-attach-point\x3d"labelNode,focusNode" class\x3d"dijitTreeLabel" role\x3d"treeitem" tabindex\x3d"-1" aria-selected\x3d"false"\x3e\x3c/span\x3e\n\t\t\x3c/span\x3e\n\t\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"containerNode" class\x3d"dijitTreeNodeContainer" role\x3d"presentation" style\x3d"display: none;"\x3e\x3c/div\x3e\n\x3c/div\x3e\n'}});
define("cbtree/Tree",["module","require","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/aspect","dojo/Deferred","dojo/dom-construct","dojo/has","dojo/keys","dojo/on","dojo/topic","dojo/text!./templates/cbtreeNode.html","dijit/registry","dijit/Tree","./CheckBox","./errors/createError!./errors/CBTErrors.json","./util/IE8_Event","./util/shim/Array"],function(module,require,connect,declare,lang,aspect,Deferred,domConstruct,has,keys,on,topic,NodeTemplate,registry,Tree,CheckBox,createError,
IE8_Event){var CBTError=createError(module.id);var ie=has("ie");var dojoVers=0;var TreeNode=declare([Tree._TreeNode],{templateString:NodeTemplate,_checkBox:null,_toggle:true,_widget:null,constructor:function(args){var checkBoxWidget={type:CheckBox,target:"INPUT",mixin:null,postCreate:null};var widgetArgs={multiState:null,checked:undefined,value:"on"};var customWidget=args.widget;if(customWidget){lang.mixin(widgetArgs,customWidget.args);lang.mixin(checkBoxWidget,customWidget)}checkBoxWidget.args=widgetArgs;
this._toggle=typeof checkBoxWidget.type.prototype.toggle=="function";this._widget=checkBoxWidget},_getCheckedAttr:function(){if(this._checkBox)return this.tree.model.getChecked(this.item)},_getEnabledAttr:function(){return this.tree.model.getEnabled(this.item)},_set_checked_Attr:function(newState){if(this._checkBox)this._checkBox.set("checked",newState)},_set_enabled_Attr:function(enabled){if(this._checkBox)this._checkBox.set("readOnly",!enabled)},_setCheckedAttr:function(newState){if(this._checkBox)return this.tree.model.setChecked(this.item,
newState,this)},_setEnabledAttr:function(newState){if(this.tree.model.setEnabled(this.item,newState)===undefined)this.set("_enabled_",!!newState)},_createCheckBox:function(multiState){var attach=this.tree.attachToForm===true;var model=this.tree.model;var enabled=true;var checked=model.getChecked(this.item);var widget=this._widget;var args=widget.args;if(typeof model.getEnabled=="function")enabled=model.getEnabled(this.item);if(checked!==undefined){args.multiState=multiState;args.checked=checked;args.value=
this.label;if(typeof widget.mixin=="function")lang.hitch(this,widget.mixin)(args);this._checkBox=new widget.type(args);if(this._checkBox){if(attach)this._checkBox.set("name",this._checkBox.id);else this._checkBox.name=this._checkBox.id;this._checkBox.item=this.item;if(!this.isExpandable&&!this.tree.leafCheckBox||this.isExpandable&&!this.tree.branchCheckBox)this._checkBox.domNode.style.display="none";if(typeof this._widget.postCreate=="function")lang.hitch(this._checkBox,this._widget.postCreate)(this);
domConstruct.place(this._checkBox.domNode,this.checkBoxNode,"replace")}}if(this._checkBox)if(this.isExpandable){if(this.tree.branchReadOnly||!enabled)this._checkBox.set("readOnly",true)}else if(this.tree.leafReadOnly||!enabled)this._checkBox.set("readOnly",true)},_remove:function(){var parent=this.getParent();var tree=this.tree;var model=tree.model;function removeNode(node){if(!node._destroyed){var itemId=model.getIdentity(node.item);var nodes=tree._itemNodesMap[itemId];if(nodes.length==1)delete tree._itemNodesMap[itemId];
else{var index=nodes.indexOf(node);if(index!=-1)nodes.splice(index,1)}tree.dndController.removeTreeNode(node);node.getChildren().forEach(removeNode);if(tree.persist&&node.isExpanded)tree._state(node,false)}}removeNode(this);if(parent&&this!=tree.rootNode)parent.removeChild(this);this.destroyRecursive()},_setExpando:function(){this.rowNode.setAttribute("expandable",this.isExpandable.toString());this.inherited(arguments)},_toggleCheckBox:function(){var newState,oldState;if(this._checkBox){if(this._toggle)newState=
this._checkBox.toggle();else{oldState=this._checkBox.get("checked");newState=oldState=="mixed"?true:!oldState}this._checkBox.set("checked",newState)}return newState},destroy:function(){if(this._checkbox){this._checkbox.destroyRecursive();delete this._checkbox}this.inherited(arguments)},postCreate:function(){var tree=this.tree,itemIcon=null;if(tree.checkBoxes===true)this._createCheckBox(tree._multiState);if(tree._hasStyling&&tree._iconAttr){itemIcon=tree.get("icon",this.item);if(itemIcon)this.set("_icon_",
itemIcon)}this.set("tooltip",this.title);this.inherited(arguments)}});var CBTree=declare([Tree],{attachToForm:false,branchCheckBox:true,branchIcons:true,branchReadOnly:false,checkBoxes:true,clickEventCheckBox:true,closeOnUnchecked:false,deleteRecursive:false,enableDelete:false,leafCheckBox:true,leafIcons:true,leafReadOnly:false,openOnChecked:false,_multiState:true,_customWidget:null,_eventAttrMap:null,_dojoRequired:{min:{major:1,minor:8},max:{major:1,minor:99}},_checkboxBaseClass:CheckBox.prototype.baseClass,
_assertVersion:function(){if(dojo.version){var dojoMax=199,dojoMin=0;dojoVers=dojo.version.major*100+dojo.version.minor;if(this._dojoRequired){if(this._dojoRequired.min!==undefined)dojoMin=this._dojoRequired.min.major*100+this._dojoRequired.min.minor;if(this._dojoRequired.max!==undefined)dojoMax=this._dojoRequired.max.major*100+this._dojoRequired.max.minor;if(dojoVers<dojoMin||dojoVers>dojoMax)throw new CBTError("InvalidVersion","_assertVersion");}}else throw new CBTError("UnknownVersion","_assertVersion");
},_createTreeNode:function(args){args.widget=this._customWidget;if(this._hasStyling&&this._icon)args.icon=this._icon;return new TreeNode(args)},_onCheckBoxClick:function(evt,nodeWidget){var newState=nodeWidget._checkBox.get("checked");var item=nodeWidget.item;this.model.setChecked(item,newState,this);if(newState&&this.openOnChecked)this.expandChecked();else if(!newState&&this.closeOnUnchecked)this.collapseUnchecked();this.onCheckBoxClick(item,nodeWidget,evt);if(this.clickEventCheckBox)this.onClick(item,
nodeWidget,evt);this.focusNode(nodeWidget);topic.publish("checkbox",{item:item,node:nodeWidget,state:newState,evt:evt});evt.stopPropagation();return newState},_onClick:function(nodeWidget,evt){var node=registry.getEnclosingWidget(evt.target);if(node.isInstanceOf(TreeNode))this.inherited(arguments)},_onItemChange:function(item,attr,value){var nodeProp=this._eventAttrMap[attr];if(nodeProp){var identity=this.model.getIdentity(item),nodes=this._itemNodesMap[identity],request={};if(nodes){if(nodeProp.value)if(typeof nodeProp.value==
"function")request[nodeProp.attribute]=lang.hitch(this,nodeProp.value)(item,nodeProp.attribute,value);else request[nodeProp.attribute]=nodeProp.value;else request[nodeProp.attribute]=value;nodes.forEach(function(node){node.item=item;node.set(request)},this)}}},_onItemDelete:function(item){var identity=this.model.getIdentity(item);var nodes=this._itemNodesMap[identity];if(nodes){nodes=nodes.slice(0);nodes.forEach(function(node){node._remove()})}},_onDeleteKey:function(){var evt=arguments[0];if(dojoVers<
109)evt=evt.evt;if(connect.isCopyKey(evt))if(this.enableDelete&&typeof this.model.deleteItem=="function"){var items=this.paths.map(function(path){return path[path.length-1]});if(items.length)this.model.deleteItem(items,this.deleteRecursive)}},_onEnterKey:function(message){var node=message.node;var evt=message.evt;if(!evt.altKey&&evt.keyCode==keys.SPACE)this._onSpaceKey(evt,node);this.inherited(arguments)},_onSpaceKey:function(evt,node){if(node&&node._checkBox)if(!evt.altKey&&evt.keyCode==keys.SPACE){node._toggleCheckBox();
this._onCheckBoxClick(evt,node)}},_onLabelChange:function(oldValue,newValue){this.mapEventToAttr(oldValue,newValue,"label")},_onModelReset:function(){var expanded=lang.clone(this._openedNodes);var model=this.model;var tree=this;this.onLoadDeferred.always(function(){if(tree.rootNode&&!tree.rootNode._destroyed)tree._onItemDelete(tree.rootNode.item);model.ready().then(function(){tree.expandChildrenDeferred=new Deferred;tree.pendingCommandsDeferred=tree.expandChildrenDeferred;if(tree.persist)tree._openedNodes=
expanded;tree._load();tree.onLoadDeferred=tree.pendingCommandsPromise;tree.onLoadDeferred.then(lang.hitch(tree,"onLoad"))},function(err){throw err;})})},_onSubmit:function(evt){var event=evt;if(ie&&ie<9){event=new IE8_Event(this.formNode,"submit",{cancelable:true},evt);event.defaultPrevented=!!evt.returnValue}if(!event.defaultPrevented)if(this.onSubmit(this.formNode,this,event)===false)event.preventDefault();return!event.defaultPrevented},_setAttachToFormAttr:function(value){var extension="./extensions/TreeOnSubmit";
var tree=this;if(value)if(typeof value==="boolean"||typeof value==="object"){if(typeof value==="object"&&!this._hasOnSubmit)require([value.extension||extension],function(extendedTree){aspect.around(tree,"onSubmit",function(){return extendedTree.prototype.onSubmit});this._hasOnSubmit=true});this.attachToForm=value}else throw new CBTError("InvalidType","_setAttachToFormAttr");else this.attachToForm=false},_setWidgetAttr:function(widget){var customWidget=widget,property="checked",message,proto;if(typeof widget==
"string")return this._setWidgetAttr({type:widget});if(lang.isObject(widget)&&widget.hasOwnProperty("type")){customWidget=widget.type;if(typeof customWidget=="function"){proto=customWidget.prototype;this._checkboxBaseClass=customWidget.prototype.baseClass;if(proto&&proto[property]!==undefined)if(typeof proto.get=="function"&&typeof proto.set=="function"){this._customWidget=widget;return}else message="Widget does not support get() and/or set()";else message="widget MUST have a 'checked' property"}else if(typeof customWidget==
"string"&&~customWidget.indexOf("/")){var self=this;require([customWidget],function(newWidget){widget.type=newWidget;self._setWidgetAttr(widget)});return}else message="argument is not a valid module id"}else message="Object is missing required 'type' property";throw new CBTError("InvalidWidget","_setWidgetAttr",message);},collapseUnchecked:function(node){node=node||this.rootNode;if(node&&node.isExpandable&&node.isExpanded){var children=node.getChildren(node);children.forEach(function(child){this.collapseUnchecked(child)},
this);if(this.model.getChecked(node.item)===false)this._collapseNode(node)}},create:function(){this._assertVersion();this.inherited(arguments)},destroy:function(){this.model=null;this.inherited(arguments)},expandChecked:function(node){var expand=false;if(!node){node=this.rootNode;expand=!node._checkBox}if(node&&node.isExpandable&&(expand||this.model.getChecked(node.item))){if(!node.isExpanded)this._expandNode(node);var children=node.getChildren(node);children.forEach(function(child){this.expandChecked(child)},
this)}},getIconStyle:function(item){var isExpandable=this.model.mayHaveChildren(item);var style=this.inherited(arguments)||{};if(isExpandable){if(!this.branchIcons)style.display="none"}else if(!this.leafIcons)style.display="none";return style},mixinEvent:function(item,event,value){if(this.model.isItem(item)&&this._eventAttrMap[event]){this._onItemChange(item,event,value);this.onEvent(item,event,value)}},onCheckBoxClick:function(){},onEvent:function(){},onSubmit:function(){},postMixInProperties:function(){this._eventAttrMap=
{};this.inherited(arguments)},postCreate:function(){var target=this.domNode.parentNode;var model=this.model;var self=this;if(this.model){if(this.checkBoxes===true)if(this._modelOk()){this._multiState=model.multiState;this.mapEventToAttr(null,model.get("checkedAttr")||"checked","_checked_");model.validateData()}else{0&&console.warn(model.id+"::postCreate(): model does not support getChecked() and/or setChecked().");this.checkBoxes=false}aspect.after(model,"onLabelChange",lang.hitch(this,"_onLabelChange"),
true);aspect.after(model,"onReset",lang.hitch(this,"_onModelReset"),true);this.mapEventToAttr(null,model.get("enabledAttr"),"_enabled_");this.mapEventToAttr(null,model.get("labelAttr"),"label");this.inherited(arguments);var cbSelector="."+this._checkboxBaseClass;if(dojoVers<109){this.own(on(this.domNode,on.selector(cbSelector,"click"),function(evt){self._onCheckBoxClick(evt,registry.getEnclosingWidget(this.parentNode))}));this._onKeyDown(null,{});this._keyHandlerMap[keys.DELETE]="_onDeleteKey"}else{this.own(on(this.containerNode,
on.selector(cbSelector,"click"),function(evt){self._onCheckBoxClick(evt,registry.getEnclosingWidget(this.parentNode))}));this._keyNavCodes[keys.DELETE]=lang.hitch(this,"_onDeleteKey");this._keyNavCodes[keys.SPACE]=lang.hitch(this,"_onSpaceKey")}this.on("load",function(){if(!self.autoExpand&&self.openOnChecked)self.expandChecked()});while(target){if(target.nodeName==="FORM"){on(target,"submit",lang.hitch(this,"_onSubmit"));break}target=target.parentNode}this.formNode=target}else throw new CBTError("PropertyMissing",
"postCreate","no model was specified");},mapEventToAttr:function(oldAttr,attr,nodeAttr,value){if(typeof attr=="string"&&typeof nodeAttr=="string")if(attr.length&&nodeAttr.length){if(oldAttr)delete this._eventAttrMap[oldAttr];this._eventAttrMap[attr]={attribute:nodeAttr,value:value}}},_modelOk:function(){if(this.model.getChecked&&typeof this.model.getChecked=="function"&&this.model.setChecked&&typeof this.model.setChecked=="function")return true;return false}});CBTree._TreeNode=TreeNode;return CBTree})},
"dojox/mobile/RoundRectCategory":function(){define("dojox/mobile/RoundRectCategory",["dojo/_base/declare","dojo/_base/window","dojo/dom-construct","dijit/_Contained","dijit/_WidgetBase","dojo/has","require"],function(declare,win,domConstruct,Contained,WidgetBase,has,BidiRoundRectCategory){var RoundRectCategory=declare(0?"dojox.mobile.NonBidiRoundRectCategory":"dojox.mobile.RoundRectCategory",[WidgetBase,Contained],{label:"",tag:"h2",baseClass:"mblRoundRectCategory",buildRendering:function(){var domNode=
this.domNode=this.containerNode=this.srcNodeRef||domConstruct.create(this.tag);this.inherited(arguments);if(!this.label&&domNode.childNodes.length===1&&domNode.firstChild.nodeType===3)this.label=domNode.firstChild.nodeValue},_setLabelAttr:function(label){this.label=label;this.domNode.innerHTML=this._cv?this._cv(label):label}});return 0?declare("dojox.mobile.RoundRectCategory",[RoundRectCategory,BidiRoundRectCategory]):RoundRectCategory})},"dijit/layout/LayoutContainer":function(){define("dijit/layout/LayoutContainer",
["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-style","dojo/_base/kernel","dojo/_base/lang","../_WidgetBase","./_LayoutWidget","./utils"],function(array,declare,domClass,domStyle,kernel,lang,_WidgetBase,_LayoutWidget,layoutUtils){var LayoutContainer=declare("dijit.layout.LayoutContainer",_LayoutWidget,{design:"headline",baseClass:"dijitLayoutContainer",startup:function(){if(this._started)return;array.forEach(this.getChildren(),this._setupChild,this);this.inherited(arguments)},
_setupChild:function(child){this.inherited(arguments);var region=child.region;if(region){domClass.add(child.domNode,this.baseClass+"Pane");var ltr=this.isLeftToRight();if(region=="leading")region=ltr?"left":"right";if(region=="trailing")region=ltr?"right":"left";child.region=region}},_getOrderedChildren:function(){var wrappers=array.map(this.getChildren(),function(child,idx){return{pane:child,weight:[child.region=="center"?Infinity:0,child.layoutPriority,(this.design=="sidebar"?1:-1)*(/top|bottom/.test(child.region)?
1:-1),idx]}},this);wrappers.sort(function(a,b){var aw=a.weight,bw=b.weight;for(var i=0;i<aw.length;i++)if(aw[i]!=bw[i])return aw[i]-bw[i];return 0});return array.map(wrappers,function(w){return w.pane})},layout:function(){layoutUtils.layoutChildren(this.domNode,this._contentBox,this._getOrderedChildren())},addChild:function(child,insertIndex){this.inherited(arguments);if(this._started)this.layout()},removeChild:function(child){this.inherited(arguments);if(this._started)this.layout();domClass.remove(child.domNode,
this.baseClass+"Pane");domStyle.set(child.domNode,{top:"auto",bottom:"auto",left:"auto",right:"auto",position:"static"});domStyle.set(child.domNode,/top|bottom/.test(child.region)?"width":"height","auto")}});LayoutContainer.ChildWidgetProperties={region:"",layoutAlign:"",layoutPriority:0};lang.extend(_WidgetBase,LayoutContainer.ChildWidgetProperties);return LayoutContainer})},"dgrid/util/misc":function(){define(["put-selector/put"],function(put){var extraRules=[],extraSheet,removeMethod,rulesProperty,
invalidCssChars=/([^A-Za-z0-9_\u00A0-\uFFFF-])/g;function removeRule(index){var realIndex=extraRules[index],i,l;if(realIndex===undefined)return;extraSheet[removeMethod](realIndex);extraRules[index]=undefined;for(i=index+1,l=extraRules.length;i<l;i++)if(extraRules[i]>realIndex)extraRules[i]--}var util={defaultDelay:15,throttle:function(cb,context,delay){var ran=false;delay=delay||util.defaultDelay;return function(){if(ran)return;ran=true;cb.apply(context,arguments);setTimeout(function(){ran=false},
delay)}},throttleDelayed:function(cb,context,delay){var ran=false;delay=delay||util.defaultDelay;return function(){if(ran)return;ran=true;var a=arguments;setTimeout(function(){ran=false;cb.apply(context,a)},delay)}},debounce:function(cb,context,delay){var timer;delay=delay||util.defaultDelay;return function(){if(timer){clearTimeout(timer);timer=null}var a=arguments;timer=setTimeout(function(){cb.apply(context,a)},delay)}},each:function(arrayOrObject,callback,context){var i,len;if(!arrayOrObject)return;
if(typeof arrayOrObject.length==="number")for(i=0,len=arrayOrObject.length;i<len;i++)callback.call(context,arrayOrObject[i],i,arrayOrObject);else for(i in arrayOrObject)callback.call(context,arrayOrObject[i],i,arrayOrObject)},addCssRule:function(selector,css){if(!extraSheet){extraSheet=put(document.getElementsByTagName("head")[0],"style");extraSheet=extraSheet.sheet||extraSheet.styleSheet;removeMethod=extraSheet.deleteRule?"deleteRule":"removeRule";rulesProperty=extraSheet.cssRules?"cssRules":"rules"}var index=
extraRules.length;extraRules[index]=(extraSheet.cssRules||extraSheet.rules).length;extraSheet.addRule?extraSheet.addRule(selector,css):extraSheet.insertRule(selector+"{"+css+"}",extraRules[index]);return{get:function(prop){return extraSheet[rulesProperty][extraRules[index]].style[prop]},set:function(prop,value){if(typeof extraRules[index]!=="undefined")extraSheet[rulesProperty][extraRules[index]].style[prop]=value},remove:function(){removeRule(index)}}},escapeCssIdentifier:function(id,replace){return id.replace(invalidCssChars,
replace||"\\$1")}};return util})},"dgrid/extensions/DnD":function(){define(["dojo/_base/declare","dojo/_base/lang","dojo/_base/array","dojo/_base/Deferred","dojo/aspect","dojo/on","dojo/topic","dojo/has","dojo/dnd/Source","dojo/dnd/Manager","dojo/_base/NodeList","put-selector/put","../Selection","dojo/has!touch?../util/touch","dojo/has!touch?./_DnD-touch-autoscroll","xstyle/css!dojo/resources/dnd.css"],function(declare,lang,arrayUtil,Deferred,aspect,on,topic,has,DnDSource,DnDManager,NodeList,put,
Selection,touchUtil){var GridDnDSource=declare(DnDSource,{grid:null,getObject:function(node){var grid=this.grid;return grid.store.get(node.id.slice(grid.id.length+5))},_legalMouseDown:function(evt){var legal=this.inherited(arguments);return legal&&evt.target!=this.grid.bodyNode},onDrop:function(sourceSource,nodes,copy){var targetSource=this,targetRow=this._targetAnchor=this.targetAnchor,grid=this.grid,store=grid.store;if(!this.before&&targetRow)targetRow=targetRow.nextSibling;targetRow=targetRow&&
grid.row(targetRow);Deferred.when(targetRow&&store.get(targetRow.id),function(target){if(targetSource!=sourceSource)targetSource.onDropExternal(sourceSource,nodes,copy,target);else targetSource.onDropInternal(nodes,copy,target)})},onDropInternal:function(nodes,copy,targetItem){var store=this.grid.store,targetSource=this,grid=this.grid,anchor=targetSource._targetAnchor,targetRow;if(anchor)targetRow=this.before?anchor.previousSibling:anchor.nextSibling;if(!copy&&(targetRow===nodes[0]||!targetItem&&
grid.down(grid.row(nodes[0])).element==nodes[0]))return;nodes.forEach(function(node){Deferred.when(targetSource.getObject(node),function(object){store[copy&&store.copy?"copy":"put"](object,{before:targetItem})})})},onDropExternal:function(sourceSource,nodes,copy,targetItem){var store=this.grid.store,sourceGrid=sourceSource.grid;nodes.forEach(function(node,i){Deferred.when(sourceSource.getObject(node),function(object){if(!copy)if(sourceGrid)Deferred.when(sourceGrid.store.getIdentity(object),function(id){!i&&
sourceSource.selectNone();sourceSource.delItem(node.id);sourceGrid.store.remove(id)});else sourceSource.deleteSelectedNodes();store[store.copy?"copy":"put"](object,{before:targetItem})})})},onDndStart:function(source,nodes,copy){this.inherited(arguments);if(source==this){if(this.grid.cancelTouchScroll)this.grid.cancelTouchScroll();DnDManager.manager().avatar.node.style.width=this.grid.domNode.offsetWidth/2+"px"}},onMouseDown:function(evt){if(has("touch")&&this.isDragging&&touchUtil.countCurrentTouches(evt,
this.grid.touchNode)>1){topic.publish("/dnd/cancel");DnDManager.manager().stopDrag()}else this.inherited(arguments)},onMouseMove:function(evt){if(!has("touch")||touchUtil.countCurrentTouches(evt,this.grid.touchNode)<=1)this.inherited(arguments)},checkAcceptance:function(source,nodes){return source.getObject&&DnDSource.prototype.checkAcceptance.apply(this,arguments)},getSelectedNodes:function(){if(!this.grid.selection)return this.inherited(arguments);var t=new NodeList,id;for(id in this.grid.selection)t.push(this._selectedNodes[id]);
return t}});var DnD=declare(Selection,{dndSourceType:"dgrid-row",dndParams:null,dndConstructor:GridDnDSource,postMixInProperties:function(){this.inherited(arguments);this.dndParams=lang.mixin({accept:[this.dndSourceType]},this.dndParams)},postCreate:function(){this.inherited(arguments);this.dndSource=new (this.dndConstructor||GridDnDSource)(this.bodyNode,lang.mixin(this.dndParams,{grid:this,dropParent:this.contentNode}));var selectedNodes=this.dndSource._selectedNodes={};function selectRow(row){selectedNodes[row.id]=
row.element}function deselectRow(row){delete selectedNodes[row.id]}this.on("dgrid-select",function(event){arrayUtil.forEach(event.rows,selectRow)});this.on("dgrid-deselect",function(event){arrayUtil.forEach(event.rows,deselectRow)});aspect.after(this,"destroy",function(){delete this.dndSource._selectedNodes;selectedNodes=null;this.dndSource.destroy()},true)},insertRow:function(object){var row=this.inherited(arguments),type=typeof this.getObjectDndType=="function"?this.getObjectDndType(object):[this.dndSourceType];
put(row,".dojoDndItem");this.dndSource.setItem(row.id,{data:object,type:type instanceof Array?type:[type]});return row},removeRow:function(rowElement){this.dndSource.delItem(this.row(rowElement));this.inherited(arguments)}});DnD.GridSource=GridDnDSource;return DnD})},"dojo/promise/instrumentation":function(){define(["./tracer","../has","../_base/lang","../_base/array"],function(tracer,has,lang,arrayUtil){has.add("config-useDeferredInstrumentation","report-unhandled-rejections");function logError(error,
rejection,deferred){var stack="";if(error&&error.stack)stack+=error.stack;if(rejection&&rejection.stack)stack+="\n    ----------------------------------------\n    rejected"+rejection.stack.split("\n").slice(1).join("\n").replace(/^\s+/," ");if(deferred&&deferred.stack)stack+="\n    ----------------------------------------\n"+deferred.stack;console.error(error,stack)}function reportRejections(error,handled,rejection,deferred){if(!handled)logError(error,rejection,deferred)}var errors=[];var activeTimeout=
false;var unhandledWait=1E3;function trackUnhandledRejections(error,handled,rejection,deferred){if(handled)arrayUtil.some(errors,function(obj,ix){if(obj.error===error){errors.splice(ix,1);return true}});else if(!arrayUtil.some(errors,function(obj){return obj.error===error}))errors.push({error:error,rejection:rejection,deferred:deferred,timestamp:(new Date).getTime()});if(!activeTimeout)activeTimeout=setTimeout(logRejected,unhandledWait)}function logRejected(){var now=(new Date).getTime();var reportBefore=
now-unhandledWait;errors=arrayUtil.filter(errors,function(obj){if(obj.timestamp<reportBefore){logError(obj.error,obj.rejection,obj.deferred);return false}return true});if(errors.length)activeTimeout=setTimeout(logRejected,errors[0].timestamp+unhandledWait-now);else activeTimeout=false}return function(Deferred){var usage=has("config-useDeferredInstrumentation");if(usage){tracer.on("resolved",lang.hitch(console,"log","resolved"));tracer.on("rejected",lang.hitch(console,"log","rejected"));tracer.on("progress",
lang.hitch(console,"log","progress"));var args=[];if(typeof usage==="string"){args=usage.split(",");usage=args.shift()}if(usage==="report-rejections")Deferred.instrumentRejected=reportRejections;else if(usage==="report-unhandled-rejections"||usage===true||usage===1){Deferred.instrumentRejected=trackUnhandledRejections;unhandledWait=parseInt(args[0],10)||unhandledWait}else throw new Error("Unsupported instrumentation usage \x3c"+usage+"\x3e");}}})},"xide/widgets/_StyleMixin":function(){define(["dojo/_base/declare",
"dojo/_base/array","dojo/_base/lang","dojo/dom-style","dojo/dom-attr","xide/utils"],function(declare,array,lang,domStyle,domAttr,utils){return declare("xide.widgets._StyleMixin",null,{doStyleMixin:function(styles){if(styles)for(var i=0;i<styles.length;i++){var _style=styles[i];var nodes=utils.find(_style.selector,this.domNode,false);if(nodes&&nodes.length>0)for(var j=0;j<nodes.length;j++){var _styleAttr=domAttr.get(nodes[j],"style")||"";_styleAttr+=";";_styleAttr+=_style.value;domAttr.set(nodes[j],
"style",_styleAttr)}}},setStyleEx:function(nodes,styleMixin,op){if(nodes&&styleMixin)for(var i=0;i<nodes.length;i++)domStyle[op||"set"](nodes[i],styleMixin)},setStyle:function(nodeQuery,cssClasses,startNode){var result=[];if(lang.isArray(startNode)){for(var i=0;i<startNode.length;i++){this.setStyle(nodeQuery,cssClasses,startNode[i]);result.push(startNode[i])}return result}else{var nodes=utils.find(nodeQuery,startNode||this.domNode,false);if(nodes&&nodes.length>0)this.setStyleEx(nodes,cssClasses);
return nodes}}})})},"xas/views/SettingsBaseView":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dijit/layout/ContentPane"],function(array,declare,html,on,ContentPane){return dojo.declare("xas.view.SettingsBaseView",[ContentPane],{data:null,model:null,widgets:null,delegate:null,helpNodes:null,navigationView:null,currentWidget:null,currentDataItem:null,didLoad:false,getWidgetByType:function(type){for(var i=0;i<this.widgets.length;i++){var widget=this.widgets[i];
if(widget.userData.type==type)return widget}return null},foundIconCB:function(ref,value){console.error("found icon : "+value);if(value){var iconWidget=ref.getWidgetByType(xapp.types.ECIType.ICON);if(iconWidget)iconWidget.updateImageUrl(value)}},updateIconFromContentSelection:function(dataCI,iconCI){var defered=pm.appManager.serviceObject.findIconFromContentSelection(sctx.getSession().getAppId(),sctx.getSession().getAppId(),xas.utils.CIDataToJSON(dataCI));var dst=this;var _foundIconCB=function(value){dst.foundIconCB(dst,
value)};defered.addCallback(_foundIconCB);var iconCI=xapp.utils.getCIByChainAndName(this.data,0,"Icon")},dataSourceChanged:function(datasourceCI){if(!datasourceCI)return;var dsValue=xapp.utils.getCIValue(datasourceCI);var dsDS=xapp.utils.getCIValueByField(datasourceCI,"dataSource");if(datasourceCI);var iconCI=xapp.utils.getCIByChainAndName(this.data,0,"Icon");var iconValue=xapp.utils.getCIValue(iconCI);if(iconCI&&dsValue!="0"&&dsDS!=null)this.updateIconFromContentSelection(datasourceCI,iconCI)},getWidgetsFromTemplate:function(){},
updateItem:function(data){var ciDelegate=sctx.getStoreDelegate();return ciDelegate.updateDataItem(data)},dataSourceReady:function(ds){this.currentDataItem.dataSource=ds.uid;this.updateDataItem(this.currentDataItem)},doEnumChange:function(widget,data){if(data.enumType==xapp.types.ECMTypes.ContentSource)this.doContentSourceChange(widget,data)},onReferenceDialogFinish:function(item){var ciDataSourceItem=xapp.utils.getCIByChainAndName(this.data,0,"Content Source");if(ciDataSourceItem!=null)ciDataSourceItem.dataRef[0]=
item.id[0];this.updateDataItem(ciDataSourceItem)},openReferenceDialog:function(widget,data){var dlg=new xas.views.JoomlaContentTreeView({style:"width:400px;height:400px",content:"",uuid:this.delegate.uuid,appIdentifier:this.delegate.appIdentifier,delegate:this});dlg.startup();dlg.initWidthDataAndDelegate(this.data);dlg.show()},widgetChanged:function(widget){var data=null;var ciDelegate=sctx.getStoreDelegate();data=ciDelegate.widgetChanged(widget);if(data)if(data.type==xapp.types.ECIType.ENUMERATION)this.doEnumChange(widget,
xas.utils.CIStoreDataToJSON(data));if(data)if(data.type==xapp.types.ECIType.REFERENCE)this.openReferenceDialog(widget,data);return data},attachWidgets:function(data){var dstHandler=this;this.helpNodes=new Array;for(var i=0;i<data.length;i++){var widget=data[i];widget.delegate=this;this.domNode.appendChild(widget.domNode);widget.startup()}},empty:function(){if(this.helpNodes)for(var i=0;i<this.helpNodes.length;i++){var widget=this.helpNodes[i];dojo.destroy(widget)}if(this.widgets)for(var i=0;i<this.widgets.length;i++){var widget=
this.widgets[i];widget.destroyRecursive();dojo.destroy(widget)}},initWithDataItem:function(data){this.empty();this.data=data;var thiz=this;this.widgets=cm.factory.createWidgetsFromArray(data.inputs,thiz);if(this.widgets)this.attachWidgets(this.widgets)},templateReady:function(){console.error("content ready :  "+this.id);this.createFormWidget()},startup:function(){if(this.didLoad)return;this.inherited(arguments);this.didLoad=true}})})},"xwordpress/Managers":function(){define("xwordpress/Managers",
["dojo/_base/declare","xas/manager/Context","xapp/manager/SessionBase","xas/manager/ServerActionBase","xas/manager/CIStoreDelegate","xas/manager/ToolTipManager","xapp/manager/Context","xapp/manager/Session","xapp/manager/DataManager","xide/manager/Context","xide/manager/Application","xide/manager/CIStoreDelegate","xide/manager/WorkflowManager","xide/manager/SettingsManager","xide/manager/Session","xide/manager/ManagerBase","xwordpress/manager/WorkflowManager","xwordpress/manager/SettingsManager",
"xwordpress/manager/FileManager","xwordpress/manager/Context","xfile/manager/Context","xfile/manager/ScriptManager","xfile/manager/FileManager","xfile/manager/PanelManagerBase","xfile/manager/PanelManager","xfile/manager/NotificationManager","xfile/manager/ClipboardManager","xfile/manager/PluginManager"],function(declare,Context,SessionBase,ServerActionBase,CIStoreDelegate,ToolTipManager,XAPPContext,XAPPSession,XAPPDataManager,XCMSContext,XCMSApplication,XCMSCIStoreDelegate,XCMSWorkflowManager,XCMSSettingsManager,
XCMSSession,XCMSManagerBase,XJWorkflowManager,XJSettingsManager,XJFileManager,XFContext,XFScriptManager,XFFileManager,XFPanelManagerBase,XFPanelManager,XFNotificationManager,XFClipboardManager,XFPluginManager){return declare("xwordpress.Managers",null,{})})},"xapp/manager/Session":function(){define("xapp/manager/Session",["dojo/_base/declare","xapp/manager/SessionBase"],function(declare,SessionBase){return declare("xapp.manager.Session",[SessionBase],{simulatorDelegate:null,dm:null,html:null,viewPort:null,
currentShareUrl:null,userGeoInformation:{lat:0,lon:0},getCurrentShareUrl:function(url){return this.currentShareUrl},setCurrentShareUrl:function(url){this.currentShareUrl=url},loadDefaultStyles:function(){if(this.ctx.getStyleManager().didLoadDefaultStyles)return;var defaultText=this.toApplicationCSSTransformerPath("Default/Default.css");var defaultListItems=this.toApplicationCSSTransformerPath("ListItems.css");var defaultContent=this.toApplicationCSSTransformerPath("Content.css");var customFields=
this.toApplicationCSSTransformerPath("CustomFields.css");var views=this.toApplicationCSSTransformerPath("Views.css");var launchItems=this.toApplicationCSSTransformerPath("LaunchItems.css");this.ctx.getStyleManager().appendStyle(defaultText,"Default/Default.css");this.ctx.getStyleManager().appendStyle(defaultListItems,"ListItems.css");this.ctx.getStyleManager().appendStyle(defaultContent,"Content.css");this.ctx.getStyleManager().appendStyle(customFields,"CustomFields.css");this.ctx.getStyleManager().appendStyle(launchItems,
"LaunchItems.css");this.ctx.getStyleManager().appendStyle(views,"Views.css");this.ctx.getStyleManager().didLoadDefaultStyles=true}})})},"xfile/manager/PanelManagerBase":function(){define("xfile/manager/PanelManagerBase",["dojo/_base/declare","xide/manager/ManagerBase"],function(declare,ManagerBase){return declare("xfile.manager.PanelManagerBase",[ManagerBase],{})})},"dijit/_base/manager":function(){define("dijit/_base/manager",["dojo/_base/array","dojo/_base/config","dojo/_base/lang","../registry",
"../main"],function(array,config,lang,registry,dijit){var exports={};array.forEach(["byId","getUniqueId","findWidgets","_destroyAll","byNode","getEnclosingWidget"],function(name){exports[name]=registry[name]});lang.mixin(exports,{defaultDuration:config["defaultDuration"]||200});lang.mixin(dijit,exports);return dijit})},"xas/data/LazyStore":function(){define(["dojo/_base/declare","dojo/data/ItemFileWriteStore","xapp/utils"],function(declare,ItemFileWriteStore,utils){return declare("xas.data.LazyStore",
[ItemFileWriteStore],{loadingItem:null,loadingKeywordArgs:null,delegate:null,isItemLoaded:function(item){if(this.getValue(item,"loaded")!=null&&this.getValue(item,"loaded")===false)return false;return true},onError:function(){if(this.loadingItem)this.loadingItem.loaded[0]=true;if(this.loadingKeywordArgs.onItem){var scope=this.loadingKeywordArgs.scope?this.loadingKeywordArgs.scope:dojo.global;this.loadingKeywordArgs.onItem.call(scope,this.loadingItem)}},onData:function(_data){var item=this.loadingItem;
this.loadingItem.loaded[0]=true;var data=[];var pInfo={parent:this.loadingItem,attribute:"children"};var dsUID=null;if(this.loadingItem.dataSourceUID!=null)dsUID=utils.toString(this.loadingItem.dataSourceUID);var urlSchema=null;var cTypeUID=null;if(this.loadingItem.urlSchema!=null){urlSchema=utils.toString(this.loadingItem.urlSchema);cTypeUID=utils.toString(this.loadingItem.id)}else if(this.loadingItem.cType!=null)cTypeUID=utils.toString(this.loadingItem.cType);var contentType=null;if(this.loadingItem.contentType!=
null)contentType=utils.toString(this.loadingItem.contentType);if(_data.items==null)return;for(var k=0;k<_data.items.length;k++){var idNew=utils.createUUID();if(_data.items[k]==null)continue;var _contentType=_data.items[k]["sourceType"];if(_contentType&&_contentType.length>0){contentType=_contentType;urlSchema=_contentType}this.newItem({name:_data.items[k].title,id:idNew,uidStr:_data.items[k].refId,uid:_data.items[k].refId,children:[],type:"leaf",loaded:false,dataSourceUID:dsUID,contentType:contentType,
cType:cTypeUID,urlSchema:urlSchema},pInfo)}if(this.loadingKeywordArgs.onItem){var scope=this.loadingKeywordArgs.scope?this.loadingKeywordArgs.scope:dojo.global;this.loadingKeywordArgs.onItem.call(scope,item)}},loadItem:function(keywordArgs){var item=keywordArgs.item;this._assertIsItem(item);this.loadingItem=item;this.loadingKeywordArgs=keywordArgs;var dstCtx=this.ctx||sctx;if(dstCtx!=null&&dstCtx.getConnectManager()!=null&&dstCtx.getConnectManager().fetchTreeItems){var thiz=this;var readyCB=function(data){thiz.onData(data)};
var errorCB=function(data){thiz.onError()};dstCtx.getConnectManager().fetchTreeItems(item,readyCB,errorCB)}},loadItemEx:function(keywordArgs){var item=keywordArgs.item;this._assertIsItem(item);var itemName=this.getValue(item,"name");var parent=this.getValue(item,"parent");var dataUrl="";if(parent)dataUrl+=parent+"/";dataUrl+=itemName+"/data.json";var self=this;var gotData=function(data){delete item.type;delete item.parent;for(var i in data)if(dojo.isArray(data[i]))item[i]=data[i];else item[i]=[data[i]];
self._arrayOfAllItems[item[self._itemNumPropName]]=item;var attributes=self.getAttributes(item);for(i in attributes){var values=item[attributes[i]];for(var j=0;j<values.length;j++){var value=values[j];if(typeof value==="object")if(value["stub"]){var stub={type:["stub"],name:[value["stub"]],parent:[itemName]};if(parent)stub.parent[0]=parent+"/"+stub.parent[0];self._arrayOfAllItems.push(stub);stub[self._storeRefPropName]=self;stub[self._itemNumPropName]=self._arrayOfAllItems.length-1;values[j]=stub}}}if(keywordArgs.onItem){var scope=
keywordArgs.scope?keywordArgs.scope:dojo.global;keywordArgs.onItem.call(scope,item)}};var gotError=function(error){if(keywordArgs.onError){var scope=keywordArgs.scope?keywordArgs.scope:dojo.global;keywordArgs.onError.call(scope,error)}};var xhrArgs={url:dataUrl,handleAs:"json-comment-optional"};var d=dojo.xhrGet(xhrArgs);d.addCallback(gotData);d.addErrback(gotError)}})})},"xwordpress/main":function(){define("xwordpress/main",["dojo/has","require"],function(has,require){has.add("debug",function(global,
document,anElement){if(typeof rtConfig!="undefined"&&rtConfig==="debug")return true;return"false"});if(1)try{require(["xwordpress/Imports/DojoRPCImports","xwordpress/Imports/DojoxImports","xwordpress/Imports/DijitImports","xwordpress/Widgets","xwordpress/Managers","xfile/config","xfile/boot","xfile/factory/model","xwordpress/Views","xwordpress/Widgets","xwordpress/XWordpressCommons","xwordpress/manager/Context","xwordpress/GUIALL","dojo/_base/lang","dojo/dom-class","dojo/_base/window","xwordpress/types",
"xide/utils","xwordpress/types/Types","cbtree/Tree","cbtree/extensions/TreeStyling","cbtree/models/FileStoreModel","cbtree/data/FileStore","xfile/widgets/BreadCrumb","xfile/widgets/Toaster","dojox/image/Lightbox","dcl/dcl","dojo/domReady!"],function(DojoRPCImports,DojoxImports,DjitImports,Widgets,Managers,XFileConfig,XFileBoot,XFFactory,XJViews,XJWidgets,XWordpressCommons,XWordpressContext,GUIALL,lang,domClass,win,typesMain,utils,types,Tree,TreeStyling,FileStoreModel,FileStore,BreadCrumb,Toaster,
LightboxDialog,dcl){dojo.parser.parse();var root=dojo.byId("main");var thiz=this;var xFileConfiguration=typeof xFileConfig!=="undefined"?xFileConfig:null;if(xFileConfiguration){if(typeof xFileConfigMixin!="undefined")lang.mixin(xFileConfiguration,xFileConfigMixin);var xFileboot=new xfile.boot;xFileboot.initWithConfig(xFileConfiguration)}domClass.add(win.body(),"claro");var footer=dojo.byId("wpfooter");if(footer)utils.destroyWidget(footer);var xasContext=new XWordpressContext(xFileConfiguration);var language=
null;if(navigator.appName=="Netscape")language=navigator.language;else language=navigator.browserLanguage;var mainFn=function(){try{xasContext.constructManagers();xasContext.initManagers();var _messages=xasContext.getLocals("dijit","common");setTimeout(function(){xasContext.getApplication().start(xFileConfiguration)},0)}catch(e){debugger}};mainFn()})}catch(e){debugger}else 0&&console.log("Hello from the server !")})},"dijit/layout/AccordionContainer":function(){require({cache:{"url:dijit/layout/templates/AccordionButton.html":"\x3cdiv data-dojo-attach-event\x3d'ondijitclick:_onTitleClick' class\x3d'dijitAccordionTitle' role\x3d\"presentation\"\x3e\n\t\x3cdiv data-dojo-attach-point\x3d'titleNode,focusNode' data-dojo-attach-event\x3d'onkeydown:_onTitleKeyDown'\n\t\t\tclass\x3d'dijitAccordionTitleFocus' role\x3d\"tab\" aria-expanded\x3d\"false\"\n\t\t\x3e\x3cspan class\x3d'dijitInline dijitAccordionArrow' role\x3d\"presentation\"\x3e\x3c/span\n\t\t\x3e\x3cspan class\x3d'arrowTextUp' role\x3d\"presentation\"\x3e+\x3c/span\n\t\t\x3e\x3cspan class\x3d'arrowTextDown' role\x3d\"presentation\"\x3e-\x3c/span\n\t\t\x3e\x3cspan role\x3d\"presentation\" class\x3d\"dijitInline dijitIcon\" data-dojo-attach-point\x3d\"iconNode\"\x3e\x3c/span\x3e\n\t\t\x3cspan role\x3d\"presentation\" data-dojo-attach-point\x3d'titleTextNode, textDirNode' class\x3d'dijitAccordionText'\x3e\x3c/span\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e\n"}});
define("dijit/layout/AccordionContainer",["require","dojo/_base/array","dojo/_base/declare","dojo/_base/fx","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/topic","../focus","../_base/manager","dojo/ready","../_Widget","../_Container","../_TemplatedMixin","../_CssStateMixin","./StackContainer","./ContentPane","dojo/text!./templates/AccordionButton.html","dijit/a11yclick"],function(require,array,declare,fx,dom,domAttr,
domClass,domConstruct,domGeometry,keys,lang,has,topic,focus,manager,ready,_Widget,_Container,_TemplatedMixin,_CssStateMixin,StackContainer,ContentPane,template){var AccordionButton=declare("dijit.layout._AccordionButton",[_Widget,_TemplatedMixin,_CssStateMixin],{templateString:template,label:"",_setLabelAttr:{node:"titleTextNode",type:"innerHTML"},title:"",_setTitleAttr:{node:"titleTextNode",type:"attribute",attribute:"title"},iconClassAttr:"",_setIconClassAttr:{node:"iconNode",type:"class"},baseClass:"dijitAccordionTitle",
getParent:function(){return this.parent},buildRendering:function(){this.inherited(arguments);var titleTextNodeId=this.id.replace(" ","_");domAttr.set(this.titleTextNode,"id",titleTextNodeId+"_title");this.focusNode.setAttribute("aria-labelledby",domAttr.get(this.titleTextNode,"id"));dom.setSelectable(this.domNode,false)},getTitleHeight:function(){return domGeometry.getMarginSize(this.domNode).h},_onTitleClick:function(){var parent=this.getParent();parent.selectChild(this.contentWidget,true);focus.focus(this.focusNode)},
_onTitleKeyDown:function(evt){return this.getParent()._onKeyDown(evt,this.contentWidget)},_setSelectedAttr:function(isSelected){this._set("selected",isSelected);this.focusNode.setAttribute("aria-expanded",isSelected?"true":"false");this.focusNode.setAttribute("aria-selected",isSelected?"true":"false");this.focusNode.setAttribute("tabIndex",isSelected?"0":"-1")}});if(0)AccordionButton.extend({_setLabelAttr:function(label){this._set("label",label);domAttr.set(this.titleTextNode,"innerHTML",label);this.applyTextDir(this.titleTextNode)},
_setTitleAttr:function(title){this._set("title",title);domAttr.set(this.titleTextNode,"title",title);this.applyTextDir(this.titleTextNode)}});var AccordionInnerContainer=declare("dijit.layout._AccordionInnerContainer"+(0?"_NoBidi":""),[_Widget,_CssStateMixin],{baseClass:"dijitAccordionInnerContainer",isLayoutContainer:true,buildRendering:function(){this.domNode=domConstruct.place("\x3cdiv class\x3d'"+this.baseClass+"' role\x3d'presentation'\x3e",this.contentWidget.domNode,"after");var child=this.contentWidget,
cls=lang.isString(this.buttonWidget)?lang.getObject(this.buttonWidget):this.buttonWidget;this.button=child._buttonWidget=(new cls({contentWidget:child,label:child.title,title:child.tooltip,dir:child.dir,lang:child.lang,textDir:child.textDir||this.textDir,iconClass:child.iconClass,id:child.id+"_button",parent:this.parent})).placeAt(this.domNode);this.containerNode=domConstruct.place("\x3cdiv class\x3d'dijitAccordionChildWrapper' role\x3d'tabpanel' style\x3d'display:none'\x3e",this.domNode);this.containerNode.setAttribute("aria-labelledby",
this.button.id);domConstruct.place(this.contentWidget.domNode,this.containerNode)},postCreate:function(){this.inherited(arguments);var button=this.button,cw=this.contentWidget;this._contentWidgetWatches=[cw.watch("title",lang.hitch(this,function(name,oldValue,newValue){button.set("label",newValue)})),cw.watch("tooltip",lang.hitch(this,function(name,oldValue,newValue){button.set("title",newValue)})),cw.watch("iconClass",lang.hitch(this,function(name,oldValue,newValue){button.set("iconClass",newValue)}))]},
_setSelectedAttr:function(isSelected){this._set("selected",isSelected);this.button.set("selected",isSelected);if(isSelected){var cw=this.contentWidget;if(cw.onSelected)cw.onSelected()}},startup:function(){this.contentWidget.startup()},destroy:function(){this.button.destroyRecursive();array.forEach(this._contentWidgetWatches||[],function(w){w.unwatch()});delete this.contentWidget._buttonWidget;delete this.contentWidget._wrapperWidget;this.inherited(arguments)},destroyDescendants:function(preserveDom){this.contentWidget.destroyRecursive(preserveDom)}});
if(0)AccordionInnerContainer=declare("dijit.layout._AccordionInnerContainer",AccordionInnerContainer,{postCreate:function(){this.inherited(arguments);var button=this.button;this._contentWidgetWatches.push(this.contentWidget.watch("textDir",function(name,oldValue,newValue){button.set("textDir",newValue)}))}});var AccordionContainer=declare("dijit.layout.AccordionContainer",StackContainer,{duration:manager.defaultDuration,buttonWidget:AccordionButton,baseClass:"dijitAccordionContainer",buildRendering:function(){this.inherited(arguments);
this.domNode.style.overflow="hidden";this.domNode.setAttribute("role","tablist")},startup:function(){if(this._started)return;this.inherited(arguments);if(this.selectedChildWidget)this.selectedChildWidget._wrapperWidget.set("selected",true)},layout:function(){var openPane=this.selectedChildWidget;if(!openPane)return;var wrapperDomNode=openPane._wrapperWidget.domNode,wrapperDomNodeMargin=domGeometry.getMarginExtents(wrapperDomNode),wrapperDomNodePadBorder=domGeometry.getPadBorderExtents(wrapperDomNode),
wrapperContainerNode=openPane._wrapperWidget.containerNode,wrapperContainerNodeMargin=domGeometry.getMarginExtents(wrapperContainerNode),wrapperContainerNodePadBorder=domGeometry.getPadBorderExtents(wrapperContainerNode),mySize=this._contentBox;var totalCollapsedHeight=0;array.forEach(this.getChildren(),function(child){if(child!=openPane)totalCollapsedHeight+=domGeometry.getMarginSize(child._wrapperWidget.domNode).h});this._verticalSpace=mySize.h-totalCollapsedHeight-wrapperDomNodeMargin.h-wrapperDomNodePadBorder.h-
wrapperContainerNodeMargin.h-wrapperContainerNodePadBorder.h-openPane._buttonWidget.getTitleHeight();this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-wrapperDomNodeMargin.w-wrapperDomNodePadBorder.w-wrapperContainerNodeMargin.w-wrapperContainerNodePadBorder.w};if(openPane)openPane.resize(this._containerContentBox)},_setupChild:function(child){child._wrapperWidget=AccordionInnerContainer({contentWidget:child,buttonWidget:this.buttonWidget,id:child.id+"_wrapper",dir:child.dir,lang:child.lang,
textDir:child.textDir||this.textDir,parent:this});this.inherited(arguments);domConstruct.place(child.domNode,child._wrapper,"replace")},removeChild:function(child){if(child._wrapperWidget){domConstruct.place(child.domNode,child._wrapperWidget.domNode,"after");child._wrapperWidget.destroy();delete child._wrapperWidget}domClass.remove(child.domNode,"dijitHidden");this.inherited(arguments)},getChildren:function(){return array.map(this.inherited(arguments),function(child){return child.declaredClass==
"dijit.layout._AccordionInnerContainer"?child.contentWidget:child},this)},destroy:function(){if(this._animation)this._animation.stop();array.forEach(this.getChildren(),function(child){if(child._wrapperWidget)child._wrapperWidget.destroy();else child.destroyRecursive()});this.inherited(arguments)},_showChild:function(child){child._wrapperWidget.containerNode.style.display="block";return this.inherited(arguments)},_hideChild:function(child){child._wrapperWidget.containerNode.style.display="none";this.inherited(arguments)},
_transition:function(newWidget,oldWidget,animate){if(has("ie")<8)animate=false;if(this._animation){this._animation.stop(true);delete this._animation}var self=this;if(newWidget){newWidget._wrapperWidget.set("selected",true);var d=this._showChild(newWidget);if(this.doLayout&&newWidget.resize)newWidget.resize(this._containerContentBox)}if(oldWidget){oldWidget._wrapperWidget.set("selected",false);if(!animate)this._hideChild(oldWidget)}if(animate){var newContents=newWidget._wrapperWidget.containerNode,
oldContents=oldWidget._wrapperWidget.containerNode;var wrapperContainerNode=newWidget._wrapperWidget.containerNode,wrapperContainerNodeMargin=domGeometry.getMarginExtents(wrapperContainerNode),wrapperContainerNodePadBorder=domGeometry.getPadBorderExtents(wrapperContainerNode),animationHeightOverhead=wrapperContainerNodeMargin.h+wrapperContainerNodePadBorder.h;oldContents.style.height=self._verticalSpace-animationHeightOverhead+"px";this._animation=new fx.Animation({node:newContents,duration:this.duration,
curve:[1,this._verticalSpace-animationHeightOverhead-1],onAnimate:function(value){value=Math.floor(value);newContents.style.height=value+"px";oldContents.style.height=self._verticalSpace-animationHeightOverhead-value+"px"},onEnd:function(){delete self._animation;newContents.style.height="auto";oldWidget._wrapperWidget.containerNode.style.display="none";oldContents.style.height="auto";self._hideChild(oldWidget)}});this._animation.onStop=this._animation.onEnd;this._animation.play()}return d},_onKeyDown:function(e,
fromTitle){if(this.disabled||e.altKey||!(fromTitle||e.ctrlKey))return;var c=e.keyCode;if(fromTitle&&(c==keys.LEFT_ARROW||c==keys.UP_ARROW)||e.ctrlKey&&c==keys.PAGE_UP){this._adjacent(false)._buttonWidget._onTitleClick();e.stopPropagation();e.preventDefault()}else if(fromTitle&&(c==keys.RIGHT_ARROW||c==keys.DOWN_ARROW)||e.ctrlKey&&(c==keys.PAGE_DOWN||c==keys.TAB)){this._adjacent(true)._buttonWidget._onTitleClick();e.stopPropagation();e.preventDefault()}}});if(has("dijit-legacy-requires"))ready(0,function(){var requires=
["dijit/layout/AccordionPane"];require(requires)});AccordionContainer._InnerContainer=AccordionInnerContainer;AccordionContainer._Button=AccordionButton;return AccordionContainer})},"xapp/utils/CIUtils":function(){define("xapp/utils/CIUtils",["dojo/_base/declare","xapp/utils","xapp/types","dojo/has"],function(declare,utils,types,has){utils.getDataCIByDSParams=function(cis,dsParams){if(!cis||!dsParams)return null;for(var i=0;i<cis.length;i++){var dsuid=utils.toString(cis[i].dataSource);var contentType=
utils.toString(cis[i].value);var dataRef=utils.toString(cis[i].dataRef);if(contentType!=null&&dataRef!=null){var dsMatch=false;if(dsuid===dsParams.dsUid)dsMatch=true;else if(dsuid==null&&dsParams.dsUid==="notset")dsMatch=true;if(dsMatch)if(""+contentType===""+dsParams.dsType){if(""+dataRef===""+dsParams.dsRef)return cis[i]}else;}}return null};utils.toggleVisibility=function(ciOverride){var value=utils.toInt(ciOverride.flags);var newValue=0;if(ciOverride){newValue=value+1;if(newValue>types.CIOverrideFlags.ShowInAllFollowElements)newValue=
0;switch(value){}}return newValue};utils.getPageParentCIByName=function(name,data,store){var parentCI=utils.getCIByChainAndName(data,0,name);var inh=false;if(sctx!=null)inh=sctx.getApplication().hasXASFeature(xas.types.XASFeature.Inherit);if(sctx!=null&&!sctx.getApplication().hasXASFeature(xas.types.XASFeature.Inherit))return parentCI;if(!parentCI){parentCI=utils.findCIByNameAndPage(name,data,store);if(parentCI)parentCI.inherited=true}else parentCI.inherited=false;return parentCI};utils.arrayContains=
function(array,element){for(var i=0;i<array.length;i++){var _e=array[i];if(_e===element)return true}return false};utils.getMetaDataCIS=function(data,store){var res=[];for(var i=0;i<data.inputs.length;i++){var inDef=data.inputs[i];if(inDef.visible[0]===true){res.push(inDef);inDef.inherited=false}}var backgroundCI=utils.getPageParentCIByName(types.CIName.Background,data,store);if(backgroundCI&&!utils.arrayContains(res,backgroundCI))res.push(backgroundCI);var logoCI=utils.getPageParentCIByName(types.CIName.Logo,
data,store);if(logoCI&&!utils.arrayContains(res,logoCI))res.push(logoCI);var bannerCI=utils.getPageParentCIByName(types.CIName.BannerSource,data,store);if(bannerCI&&!utils.arrayContains(res,bannerCI))res.push(bannerCI);return res};utils.getPageDataCIs=function(data,store,recursive){if(!data)return null;var res=[];var dataCI=utils.getPageParentCIByName(types.CIName.ContentSource,data,store);if(dataCI)res.push(dataCI);if(recursive){var subPages=utils.getAppDataElementsByTypeAndParent(store,"view",""+
utils.toInt(data.uid));if(subPages!=null&&subPages)for(var i=0;i<subPages.length;i++){var subPage=subPages[i];var subPageCIs=utils.getPageDataCIs(subPage,store,false);if(subPageCIs)for(var j=0;j<subPageCIs.length;j++){subPageCIs[j]["pageData"]=subPage;subPageCIs[j]["isSubPage"]=true;res.push(subPageCIs[j])}}}return res};utils.getPageCIs=function(d,store){var res=[];for(var i=0;i<d.inputs.length;i++){var inDef=d.inputs[i];if(inDef.visible[0]==true){res.push(inDef);inDef["inherited"]=false}}var backgroundCI=
utils.getPageParentCIByName(types.CIName.Background,d,store);if(backgroundCI&&!utils.arrayContains(res,backgroundCI))res.push(backgroundCI);var logoCI=utils.getPageParentCIByName(types.CIName.Logo,d,store);if(logoCI&&!utils.arrayContains(res,logoCI))res.push(logoCI);var bannerCI=utils.getPageParentCIByName(types.CIName.BannerSource,d,store);if(bannerCI&&!utils.arrayContains(res,bannerCI))res.push(bannerCI);return res};utils.updateStoreCIFromJSONCI=function(dstCI,srcCI){utils.setStoreCIValueByField(dstCI,
"uid",srcCI.uid);utils.setStoreCIValueByField(dstCI,"parentId",srcCI.parentId)};utils.setStoreCIValueByField=function(d,field,value){if(d[field]==null)d[field]=[];d[field][0]=utils.getStringValue(value);return d};utils.createCI=function(name,type,chain,value){return{chainType:chain?chain:0,dataRef:null,dataSource:null,name:name,group:-1,id:name,title:name,type:type,uid:-1,value:value?value:-1,visible:true,enumType:-1,"class":"cmx.types.ConfigurableInformation"}};utils.toTreeCI=function(data){return{chainType:[data.chainType],
dataRef:[data.dataRef],dataSource:[data.dataSource],name:[data.name],group:[data.group],id:[""+data.id],title:[data.title],type:[data.type],uid:[data.uid],value:[data.value],visible:[data.visible],enumType:[data.enumType],parentId:[data.parentId]}};utils.createCIAsArray=function(name,type,chain,value){return{chainType:[chain?chain:0],dataRef:[null],dataSource:[null],params:[],name:[name],group:[-1],id:[name],title:[name],type:[type],uid:[-1],value:[value?value:-1],visible:[true],enumType:[-1],parentId:[-1],
"class":["cmx.types.ConfigurableInformation"]}};utils.hasValue=function(data){return data.value&&data.value[0]!=null&&data.value[0].length>0&&data.value[0]!="0"&&data.value[0]!="undefined"&&data.value[0]!="Unset"};utils.hasValueAndDataRef=function(data){return data.value&&data.value[0]!=null&&data.value[0].length>0&&data.value[0]!="0"&&data.value[0]!="undefined"&&data.value[0]!="Unset"&&data.dataRef&&data.dataRef[0]!=null&&data.dataRef[0].length>0&&data.dataRef[0]!="0"&&data.dataRef[0]!="undefined"};
utils.getInputCIByName=function(data,name){if(!data){console.error("utils.getCIByChainAndName : have no data");return null}var chain=0;var dstChain=chain==0?data.inputs:chain==1?data.outputs:null;if(dstChain!=null)for(var i=0;i<dstChain.length;i++){var ci=dstChain[i];var _n=utils.getStringValue(ci.name);if(_n!=null&&_n===name)return ci}return null};utils.getCIByChainAndName=function(data,chain,name){if(!data){console.error("utils.getCIByChainAndName : have no data");return null}var dstChain=chain==
0?data.inputs:chain==1?data.outputs:null;if(dstChain!=null)for(var i=0;i<dstChain.length;i++){var ci=dstChain[i];var _n=utils.getStringValue(ci.name);if(_n!=null&&_n===name)return ci}return null};utils.getCIByUid=function(dstChain,uid){if(dstChain!=null)for(var i=0;i<dstChain.length;i++){var ci=dstChain[i];var _n=utils.getStringValue(ci.uid);if(_n!=null&&_n===uid)return ci}return null};utils.getCIById=function(data,chain,id){var dstChain=chain==0?data.inputs:chain==1?data.outputs:null;if(dstChain!=
null)for(var i=0;i<dstChain.length;i++){var ci=dstChain[i];if(ci.id[0]==id[0])return ci}return null};utils.getCIInputValueByName=function(data,name){var ci=utils.getCIByChainAndName(data,0,name);if(ci)return ci.value;return null};utils.getCIValue=function(data){return utils.getCIValueByField(data,"value")};utils.getStringValue=function(d){return utils.toString(d)};utils.toString=function(d){if(d!=null){if(!dojo.isArray(d))return""+d;if(d&&d.length==1&&d[0]==null)return null;return""+(d[0]!=null?d[0]:
d)}return null};utils.setIntegerValue=function(data,value){if(data!=null)if(dojo.isArray(data))data[0]=value;else data=value};utils.getBooleanValue=function(data){var resInt=false;if(data!=null){var _dataStr=data[0]?data[0]:data;if(_dataStr!=null)resInt=!!(_dataStr===true||_dataStr==="true"||_dataStr==="1")}return resInt};utils.toInt=function(data){var resInt=-1;if(data!=null){var _dataStr=data.length>1?data:data[0]?data[0]:data;if(_dataStr!=null)try{resInt=parseInt(_dataStr)}catch(e){}}return resInt};
utils.getIntegerValue=function(data){return utils.toInt(data)};utils.getFloatValue=function(data){var resInt=-1;if(data!=null){var _dataStr=data.length>1?data:data[0]?data[0]:data;if(_dataStr!=null)try{resInt=parseFloat(_dataStr)}catch(e){}}return resInt};utils.getCIIntegerValue=function(data){var resInt=-1;if(data!=null){var _dataStr=data[0]?data[0]:data;if(_dataStr!=null)try{resInt=parseInt(_dataStr)}catch(e){}}return resInt};utils.getCIValueByField=function(data,field){if(data[field]!=null)return data[field][0]?
data[field][0]:data[field];return null};utils.setCIValueByField=function(data,field,value){if(!data)return data;if(data[field]==null)data[field]=[];data[field][0]=value;return data};utils.getCIInputValueByNameAndField=function(data,name,field){var ci=utils.getCIByChainAndName(data,0,name);if(ci)return ci[""+field];return null};utils.getCIInputValueByNameAndFieldStr=function(data,name,field){var rawValue=utils.getCIInputValueByNameAndField(data,name,field);if(rawValue)return utils.getStringValue(rawValue);
return null};utils.getCIInputValueByNameAndFieldBool=function(data,name,field){var rawValue=utils.getCIInputValueByNameAndField(data,name,field);if(rawValue)return utils.getBooleanValue(rawValue);return null};return utils})},"xas/factory/ViewFactory":function(){define(["dojo/_base/declare","dojo/_base/window","xas/factory"],function(declare,win,factory){factory.showStandBy=function(dstNode,show){if(show){var standbyWidget=new dojox.widget.Standby({target:dstNode,color:"white"},dojo.doc.createElement("div"));
dojo.place(standbyWidget.domNode,win.body(),"last");standbyWidget.startup();standbyWidget.show();return standbyWidget}return null};factory.createNewResourceDialog=function(delegate,uuid,appId,platform){var result=new xas.views.OkCancelDialog({delegate:delegate,appIdentifier:appId,uuid:uuid,className:"newResourceDialog",platform:"",title:"New Resource",settingsView:null});result.startup();result.settingsView=new xas.views.NewResourceView({appIdentifier:appId,uuid:uuid,"class":"xasResourceView"},dojo.doc.createElement("div"));
result.contentPane.domNode.appendChild(result.settingsView.domNode);result.settingsView.startup();result.show();return result};factory.createNewCustomAppDialog=function(delegate,uuid,appId,platform){var result=new xas.views.OkCancelDialog({delegate:delegate,appIdentifier:appId,uuid:uuid,className:"newCustomAppDialog",platform:"",title:"New Custom App",customAppSettingsView:null});result.startup();result.customAppSettingsView=new xas.views.NewCustomAppView({appIdentifier:appId,uuid:uuid},dojo.doc.createElement("div"));
result.contentPane.domNode.appendChild(result.customAppSettingsView.domNode);result.customAppSettingsView.startup();result.show();return result};factory.createNewCustomPluginDialog=function(delegate,uuid,appId,platform){var result=new xas.views.OkCancelDialog({delegate:delegate,appIdentifier:appId,uuid:uuid,className:"newCustomAppDialog",platform:"",title:"New Custom Plugin",settingsView:null});result.startup();result.settingsView=new xas.views.NewCustomPluginView({appIdentifier:appId,uuid:uuid},
dojo.doc.createElement("div"));result.contentPane.domNode.appendChild(result.settingsView.domNode);result.settingsView.startup();result.show();return result};factory.createAppShareDialog=function(delegate,uuid,appId,platform){var props={templatePath:sctx.getSession().toWebRootProxyCMAC("/panels/qxapp/preview/"+sctx.getValidLanguage()+"/preview.html")};var result=new xas.views.OkCancelDialog({delegate:this,isContentSourceDialog:false,appIdentifier:appId,uuid:uuid,className:"previewDialog",platform:"",
title:"Publish",props:props,mobileAppShareUrl:sctx.getSession().getServicePath()+"mobileClientBoot.jsp?appId\x3d"+appId+"\x26uuid\x3d"+uuid});result.startup();result.addAppShareLink();result.createQRCode();result.show();return result};factory.createMigrationDialog=function(newPageData,delegate){var result=new xas.views.OkCancelDialog({style:"width:400px;height:400px",delegate:delegate,currentDataItem:newPageData,isContentSourceDialog:true});result.show();return result};factory.createTabbedSettingsViewForTemplateSettings=
function(sheet,parent){var tabContainer=new dijit.layout.TabContainer({tabStrip:true,tabPosition:"left-h",splitter:true,style:"width:100%","className":"widgetBase"});parent.domNode.appendChild(tabContainer.domNode);tabContainer.startup();var widgetTabMap=new Hashtable;var widgetGroups=[];var templateParameters=[xas.types.TemplateParameterKeys.TP_LAYOUT,xas.types.TemplateParameterKeys.TP_ICON_SET,xas.types.TemplateParameterKeys.TP_HEADING,xas.types.TemplateParameterKeys.TP_BACKGROUND,xas.types.TemplateParameterKeys.TP_BRAND_COLOR,
xas.types.TemplateParameterKeys.TP_TITLE_COLOR,xas.types.TemplateParameterKeys.TP_TEXT_COLOR,xas.types.TemplateParameterKeys.TP_CAPTION_COLOR,xas.types.TemplateParameterKeys.TP_FOOTER_COLOR_LEFT,xas.types.TemplateParameterKeys.TP_FOOTER_COLOR_RIGHT,xas.types.TemplateParameterKeys.TP_TITLE_FONT,xas.types.TemplateParameterKeys.TP_TEXT_FONT,xas.types.TemplateParameterKeys.TP_CAPTION_FONT,xas.types.TemplateParameterKeys.TP_FOOTER_FONT,xas.types.TemplateParameterKeys.TP_FOOTER_FONT_LEFT,xas.types.TemplateParameterKeys.TP_FOOTER_FONT_RIGHT,
xas.types.TemplateParameterKeys.TP_PADDINGS,xas.types.TemplateParameterKeys.TP_SHADOWS,xas.types.TemplateParameterKeys.TP_BORDERS];for(var i=0;i<templateParameters.length;i++){var par=templateParameters[i];var widgetGroup=xas.utils.getTemplateParameterGroup(par);if(!widgetGroup)continue;var dstTabContainer=widgetTabMap.get(widgetGroup);if(dstTabContainer==null){widgetGroups.push(widgetGroup);dstTabContainer=new dijit.layout.ContentPane({title:xas.utils.getTemplateParameterGroupTitle(widgetGroup),
style:"padding:20px;height:100%"});widgetTabMap.put(widgetGroup,dstTabContainer)}}for(var wgi=0;wgi<widgetGroups.length;wgi++){var widgetGroup=widgetGroups[wgi];var container=widgetTabMap.get(widgetGroup);container.startup();tabContainer.addChild(container)}tabContainer["widgetTabMap"]=widgetTabMap;return tabContainer};factory.createTabbedSettingsViewForSheet=function(sheet,parent){var tabContainer=new dijit.layout.TabContainer({tabStrip:true,tabPosition:"left-h",splitter:false,style:"width:100%",
"className":"widgetBase resourceViewTabContainer"});parent.domNode.appendChild(tabContainer.domNode);tabContainer.startup();var widgetTabMap=new Hashtable;var widgetGroups=new Array;for(var i=0;i<sheet.cssRules.length;i++){var rule=sheet.cssRules[i];if(rule.type!=kJscsspSTYLE_RULE)continue;var hasText=xapp.utils.hasTextDeclarations(rule);var hasBox=xapp.utils.hasBoxShadowDeclarations(rule);var hasPadding=xapp.utils.hasPaddingDeclarations(rule);var hasSize=xapp.utils.hasSizeDeclarations(rule);var hasBackground=
xapp.utils.hasBackgroundDeclarations(rule);if(!hasText&&!hasBox&&!hasPadding&&!hasSize&&!hasBackground)continue;var widgetGroup=rule.mSelectorText;var dstTabContainer=widgetTabMap.get(widgetGroup);if(dstTabContainer==null){widgetGroups.push(widgetGroup);var title=null;title=rule.mSelectorText.replace(".item","");if(title!=".launchItem")title=rule.mSelectorText.replace(".launchItem","");else;if(rule.mSelectorText==".item")title="Item";if(rule.mSelectorText==".textDefault")title="TextDefault";if(rule.mSelectorText==
".itemIcon")title="Icon";if(rule.mSelectorText==".launchItem")title="Item";title=title.replace(".","");title=title.replace("item","");dstTabContainer=new xas.views.WidgetView({title:title,style:"padding:8px;height:100%",didStartup:false,delegate:parent});widgetTabMap.put(widgetGroup,dstTabContainer)}}for(var wgi=0;wgi<widgetGroups.length;wgi++){var widgetGroup=widgetGroups[wgi];var container=widgetTabMap.get(widgetGroup);tabContainer.addChild(container)}tabContainer["widgetTabMap"]=widgetTabMap;return tabContainer};
factory.createTabbedSettingsViewForResources=function(data,parent){var tabContainer=new dijit.layout.TabContainer({tabStrip:true,tabPosition:"left-h",splitter:true,style:"min-width:450px;","className":"widgetBase",tabs:[]});parent.domNode.appendChild(tabContainer.domNode);tabContainer.startup();var widgetTabMap=new Hashtable;var widgetGroups=[];var widgetGroup=null;for(var i=0;i<data.items.length;i++){var item=data.items[i];widgetGroup=item.type;var dstTabContainer=widgetTabMap.get(widgetGroup);if(dstTabContainer==
null){widgetGroups.push(widgetGroup);var title=item.type;if(!title)continue;if(item.type=="CSS")title="CSS";if(item.type=="JS-HEADER-INCLUDE")title="JS-HEAD";if(item.type=="JS-HEADER-SCRIPT-TAG")title="JS-HEAD-TAG";if(item.type=="PROXY")title="Proxy";dstTabContainer=new xas.views.ResourcesView({title:title,type:widgetGroup,delegate:parent,style:"overflow:auto !important"});widgetTabMap.put(widgetGroup,dstTabContainer);tabContainer.tabs.push(dstTabContainer)}}for(var wgi=0;wgi<widgetGroups.length;wgi++){widgetGroup=
widgetGroups[wgi];var container=widgetTabMap.get(widgetGroup);tabContainer.addChild(container)}tabContainer["widgetTabMap"]=widgetTabMap;return tabContainer};factory.createTabbedSettingsView=function(CIS,parent){var tabContainer=new dijit.layout.TabContainer({tabStrip:true,tabPosition:"left-h",splitter:true,style:"min-width:450px;","className":"widgetBase"});parent.domNode.appendChild(tabContainer.domNode);tabContainer.startup();var widgetTabMap=new Hashtable;var widgetGroups=new Array;var dstTabContainerAll=
widgetTabMap.get(xas.types.ECMWidgetGroup.All);if(dstTabContainerAll==null){dstTabContainerAll=new dijit.layout.ContentPane({title:"All",style:"padding:5px;"});widgetTabMap.put(xas.types.ECMWidgetGroup.All,dstTabContainerAll);dstTabContainerAll.startup();tabContainer.addChild(dstTabContainerAll)}for(var i=0;i<CIS.length;i++){var ci=CIS[i];var widgetGroup=xas.utils.getWidgetGroup(ci);if(widgetGroup==xas.types.ECMWidgetGroup.Hidden)continue;var dstTabContainer=widgetTabMap.get(widgetGroup);if(dstTabContainer==
null){widgetGroups.push(widgetGroup);dstTabContainer=new dijit.layout.ContentPane({title:xas.utils.getWidgetGroupTitle(widgetGroup)});widgetTabMap.put(widgetGroup,dstTabContainer)}}widgetGroups.sort(function(a,b){return a-b});for(var wgi=0;wgi<widgetGroups.length;wgi++){var widgetGroup=widgetGroups[wgi];var container=widgetTabMap.get(widgetGroup);container.startup();tabContainer.addChild(container)}tabContainer["widgetTabMap"]=widgetTabMap;return tabContainer};factory.createGroupedSettingsView=function(pageData,
delegate){var result=new xas.views.GroupedSettingsView({title:"Settings",closable:false,selected:true,delegate:delegate},dojo.doc.createElement("div"));return result}})},"dojo/cache":function(){define(["./_base/kernel","./text"],function(dojo){return dojo.cache})},"url:dijit/templates/Menu.html":'\x3ctable class\x3d"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable" role\x3d"menu" tabIndex\x3d"${tabIndex}"\n\t   cellspacing\x3d"0"\x3e\n\t\x3ctbody class\x3d"dijitReset" data-dojo-attach-point\x3d"containerNode"\x3e\x3c/tbody\x3e\n\x3c/table\x3e\n',
"dojo/dom-prop":function(){define(["exports","./_base/kernel","./sniff","./_base/lang","./dom","./dom-style","./dom-construct","./_base/connect"],function(exports,dojo,has,lang,dom,style,ctr,conn){var _evtHdlrMap={},_ctr=0,_attrId=dojo._scopeName+"attrid";has.add("dom-textContent",function(global,doc,element){return"textContent"in element});exports.names={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",textcontent:"textContent",
valuetype:"valueType"};function getText(node){var text="",ch=node.childNodes;for(var i=0,n;n=ch[i];i++)if(n.nodeType!=8)if(n.nodeType==1)text+=getText(n);else text+=n.nodeValue;return text}exports.get=function getProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),propName=exports.names[lc]||name;if(propName=="textContent"&&!has("dom-textContent"))return getText(node);return node[propName]};exports.set=function setProp(node,name,value){node=dom.byId(node);var l=arguments.length;if(l==2&&
typeof name!="string"){for(var x in name)exports.set(node,x,name[x]);return node}var lc=name.toLowerCase(),propName=exports.names[lc]||name;if(propName=="style"&&typeof value!="string"){style.set(node,value);return node}if(propName=="innerHTML"){if(has("ie")&&node.tagName.toLowerCase()in{col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1}){ctr.empty(node);node.appendChild(ctr.toDom(value,node.ownerDocument))}else node[propName]=value;return node}if(propName=="textContent"&&!has("dom-textContent")){ctr.empty(node);
node.appendChild(node.ownerDocument.createTextNode(value));return node}if(lang.isFunction(value)){var attrId=node[_attrId];if(!attrId){attrId=_ctr++;node[_attrId]=attrId}if(!_evtHdlrMap[attrId])_evtHdlrMap[attrId]={};var h=_evtHdlrMap[attrId][propName];if(h)conn.disconnect(h);else try{delete node[propName]}catch(e){}if(value)_evtHdlrMap[attrId][propName]=conn.connect(node,propName,value);else node[propName]=null;return node}node[propName]=value;return node}})},"dijit/_DialogMixin":function(){define("dijit/_DialogMixin",
["dojo/_base/declare","./a11y"],function(declare,a11y){return declare("dijit._DialogMixin",null,{execute:function(){},onCancel:function(){},onExecute:function(){},_onSubmit:function(){this.onExecute();this.execute(this.get("value"))},_getFocusItems:function(){var elems=a11y._getTabNavigable(this.containerNode);this._firstFocusItem=elems.lowest||elems.first||this.closeButtonNode||this.domNode;this._lastFocusItem=elems.last||elems.highest||this._firstFocusItem}})})},"dijit/form/_CheckBoxMixin":function(){define("dijit/form/_CheckBoxMixin",
["dojo/_base/declare","dojo/dom-attr"],function(declare,domAttr){return declare("dijit.form._CheckBoxMixin",null,{type:"checkbox",value:"on",readOnly:false,_aria_attr:"aria-checked",_setReadOnlyAttr:function(value){this._set("readOnly",value);domAttr.set(this.focusNode,"readOnly",value)},_setLabelAttr:undefined,_getSubmitValue:function(value){return value==null||value===""?"on":value},_setValueAttr:function(newValue){newValue=this._getSubmitValue(newValue);this._set("value",newValue);domAttr.set(this.focusNode,
"value",newValue)},reset:function(){this.inherited(arguments);this._set("value",this._getSubmitValue(this.params.value));domAttr.set(this.focusNode,"value",this.value)},_onClick:function(e){if(this.readOnly){e.stopPropagation();e.preventDefault();return false}return this.inherited(arguments)}})})},"xapp/utils/MediaUtils":function(){define("xapp/utils/MediaUtils",["xapp/utils","dojox/encoding/digests/MD5"],function(utils,MD5){utils.createRadioCContent=function(url){var imageUrl="images/radioBG.png";
var width="100%";var description='\x3cp\x3e \x3c/p\x3e\x3cp style\x3d\'text-align: center;\'\x3e \x3cimg class\x3d"RadioPicture" alt\x3d"" src\x3d"'+imageUrl+'" width\x3d"'+width+'px" onclick\x3d"ctx.getUrlHandler().openRadio(\''+url+"',null);\" /\x3e\x3c/p\x3e\x3cp\x3e \x26nbsp;\x3c/p\x3e";return{"applicationId":null,"class":"pmedia.types.CContent","dataSourceUID":"Liferay","description":description,"descriptionNoPictures":"\x3cp\x3e \x3c/p\x3e \n\x3cp\x3e \x3c/p\x3e \n\x3cp\x3e \x26nbsp;\x3c/p\x3e \n\x3cp\x3e \x3c/p\x3e",
"descriptionPicture":"","id":"0","introText":"","refId":url,"refIdStr":url,"sourceType":"52","title":"","type":"Unknown"}};utils.playSoundEffect=function(url){try{var sound=window["soundEffect"+MD5(url,1)];if(sound==null){console.error("create sound effect");window["soundEffect"+MD5(url,1)]=utils.playSoundEx(url,20,null)}else sound.play()}catch(e){}};utils.playSoundEx=function(url,vol,cb){var sound=soundManager.createSound({id:"s"+MD5(url,1),url:url,autoLoad:true,autoPlay:true,onload:function(){0&&
console.log("The sound "+this.id+" loaded!");if(cb)cb()},volume:vol});if(sound!=null);else console.error("couldnt create sound with url : "+url);return sound};utils.playAudioStream=function(url,cb){return utils.playSoundEx(url,100,cb)};utils.pictureItemsToFullScreenPhotoSwipe=function(items){var array=[];if(!dojo.isArray(items))items=dojo.fromJson(items);if(!dojo.isArray(items)){console.error("pictureItemsToFullScreenPhotoSwipe::invalid input");return}var width=ctx.getViewManager().getScreenSize().height>
ctx.getViewManager().getScreenSize().width?ctx.getViewManager().getScreenSize().height:ctx.getViewManager().getScreenSize().width;var addShadow=false;for(var i=0;i<items.length;i++){var pItem=items[i];var url=utils.buildResizeUrlForWidthAndServiceSettings(ctx.getSession().serviceSettings,pItem.fullSizeLocation,width,addShadow);var item={url:url,caption:pItem.title};array.push(item)}return array};utils.makeIconUrlForExternal=function(appConfig,location,width,shadow){var res="";if(utils.isValidString(appConfig.imageProcessorUrl))res+=
appConfig.imageProcessorUrl;res+="servlets/";if(location.indexOf("http")==-1)res+="ImageScaleIcon?src\x3d"+appConfig.www+location+"\x26width\x3d"+width;else res+="ImageScaleIcon?src\x3d"+location+"\x26width\x3d"+width;if(shadow===true)res+="\x26shadow\x3dtrue";else res+="\x26shadow\x3dfalse";res+="\x26icon\x3dfalse";return res};utils.buildResizeUrlForHeight=function(serviceSettings,location,height,shadow){var res="";if(utils.isValidString(serviceSettings.imageScaleServlet))res+=serviceSettings.imageScaleServlet;
res+="servlets/";if(location.indexOf("http")==-1)res+="ImageScaleIcon?src\x3d"+appConfig.www+location+"\x26height\x3d"+height;else res+="ImageScaleIcon?src\x3d"+location+"\x26height\x3d"+height;if(shadow===true)res+="\x26shadow\x3dtrue";else res+="\x26shadow\x3dfalse";res+="\x26icon\x3dtrue";return res};utils.buildResizeUrlForWidth=function(serviceSettings,location,width,shadow){var res="";if(utils.isValidString(serviceSettings.imageProcessorUrl))res+=serviceSettings.imageProcessorUrl;res+="servlets/";
if(location.indexOf("http")==-1)res+="ImageScaleIcon?src\x3d"+appConfig.www+location+"\x26width\x3d"+width;else if(location.indexOf("ImageScaleIcon")!=-1)return location;else res+="ImageScaleIcon?src\x3d"+location+"\x26width\x3d"+width;if(shadow===true)res+="\x26shadow\x3dtrue";else res+="\x26shadow\x3dfalse";res+="\x26icon\x3dfalse";return res};utils.buildResizeUrlForWidthAndServiceSettings=function(serviceSettings,location,width,shadow,icon){var locationEncoded=encodeURIComponent(location);var res=
"";if(utils.isValidString(serviceSettings.imageScaleServlet))res+=serviceSettings.imageScaleServlet;res+="servlets/";if(location.indexOf("http")==-1)res+="ImageScaleIcon?src\x3d"+locationEncoded+"\x26width\x3d"+width;else if(location.indexOf("ImageScaleIcon")!=-1)return location;else res+="ImageScaleIcon?src\x3d"+locationEncoded+"\x26width\x3d"+width;if(shadow===true)res+="\x26shadow\x3dtrue";else res+="\x26shadow\x3dfalse";if(icon&&icon===true)res+="\x26icon\x3dtrue";return res};return utils})},
"xas/manager/CIStoreDelegate":function(){define(["dojo/_base/declare","xapp/manager/ManagerBase"],function(declare,ManagerBase){return declare("xas.manager.CIStoreDelegate",[ManagerBase],{uuid:null,appIdentifier:null,appStore:null,ciOverrideStore:null,appService:null,deleteDataItem:function(normalizedItem){var dstStore=this.appStore;var test=""+normalizedItem["id"];var thiz=this;var theItem=null;dstStore.fetch({query:{id:test},queryOptions:{"deep":true},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=
items[i];if(thiz.appService){if(item.qxappTabIdentifier!=null)delete item["qxappTabIdentifier"];thiz.appService.itemDeleted(thiz.ctx.getSession().getAppId(),thiz.ctx.getSession().getUUID(),xas.utils.CIPageToJSON(item));dstStore.deleteItem(item);dstStore.save()}break}}});return theItem},addPageItem:function(child,parentId){var thiz=this;var result=null;if(child)thiz.appStore.fetchItemByIdentity({identity:parentId,onItem:function(item){if(item){console.error("ci delegate add_item : "+item);result=thiz.appStore.newItem(child,
item);thiz.appStore.save()}}});return result},initWithStoreAndAppService:function(store,service,ciOverrideStore){this.appStore=store;this.appService=service;this.ciOverrideStore=ciOverrideStore},onCIOverrideChanged:function(item){if(this.appService)this.appService.updateCIOverride(this.ctx.getSession().getAppId(),this.ctx.getSession().getUUID(),xas.utils.ciPlatformOverrideToJSON(item));else console.error("have no app service")},deleteCIPlatformOverride:function(item){if(this.appService)this.appService.deleteCIOverride(this.ctx.getSession().getAppId(),
this.ctx.getSession().getUUID(),xas.utils.ciPlatformOverrideToJSON(item));else console.error("have no app service");try{xapp.utils.deleteStoreItemById(this.ciOverrideStore,xapp.utils.toString(item.id))}catch(e){}},onCIPlatformOverrideChanged:function(item){if(this.appService)this.appService.updateCIOverride(this.ctx.getSession().getAppId(),this.ctx.getSession().getUUID(),xas.utils.ciPlatformOverrideToJSON(item));else console.error("have no app service")},onStyleOverrideChanged:function(item){if(this.appService)this.appService.updateCIOverride(this.ctx.getSession().getAppId(),
this.ctx.getSession().getUUID(),xas.utils.ciOverrideToJSON(item));else console.error("have no app service")},onItemChanged:function(item){if(this.appService)this.appService.itemChanged(this.ctx.getSession().getAppId(),this.ctx.getSession().getUUID(),item);else console.error("have no app service")},saveStoreItem:function(item,userData,widget){if(!widget.ciField)item.value=widget.value;else item[""+widget.ciField]=widget.value;this.appStore.save(item);this.onItemChanged(xas.utils.CIDataToJSON(item))},
widgetChanged:function(widget){var userData=widget.userData;var dstStore=this.appStore;var test=""+userData["id"];var testUID=userData["uid"];var parendId=""+userData["parentId"][0];var thiz=this;var theItem=null;var foundItem=false;var storeDestination=null;if(userData.storeDestination){storeDestination=xapp.utils.toString(userData.storeDestination);if(xapp.utils.isValidString(storeDestination)&&storeDestination=="metaDataStore")dstStore=this.ctx.getMetaDataStore()}dstStore.fetch({query:{id:parendId},
queryOptions:{"deep":true,testObject:userData},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(req.queryOptions.testObject!=null)if(item.inputs!=null&&item.inputs.length>0)theItem=xapp.utils.getCIByUid(item.inputs,req.queryOptions.testObject.uid)}}});if(theItem){this.saveStoreItem(theItem,userData,widget);return theItem}dstStore.fetch({query:{uid:testUID[0]},queryOptions:{"deep":true,testObject:userData},onComplete:function(items,req){for(i=0;i<items.length;i++)var item=
items[i]}});dstStore.fetch({query:{uid:"*"},queryOptions:{"deep":true,testObject:userData},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(item==req.queryOptions.testObject);}}});dstStore.fetch({query:{id:test},queryOptions:{"deep":true},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(!widget.ciField)item.value=widget.value;else item[""+widget.ciField]=widget.value;theItem=item;dstStore.save(item);thiz.onItemChanged(xas.utils.CIDataToJSON(item))}}});
if(theItem)return;dstStore.fetch({query:{id:"*"},queryOptions:{"deep":true},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(item.id[0]==test){if(!widget.ciField);theItem=item;dstStore.save(item);thiz.onItemChanged(xas.utils.CIDataToJSON(item))}}}});if(theItem==null)console.error("null widhet item");return theItem},updateDataItem:function(normalizedItem){if(normalizedItem==null){console.error("no item");return}if(normalizedItem["isUpdating"]!=null)normalizedItem["isUpdating"]=
false;var dstStore=this.appStore;var test=""+normalizedItem["id"];var thiz=this;var theItem=null;var storeDestination=null;if(normalizedItem.storeDestination){storeDestination=xapp.utils.toString(normalizedItem.storeDestination);if(xapp.utils.isValidString(storeDestination)&&storeDestination=="metaDataStore")dstStore=this.ctx.getMetaDataStore()}dstStore.fetch({query:{id:test},queryOptions:{"deep":true},onComplete:function(items,req){for(var i=0;i<items.length;i++){var item=items[i];item.value=normalizedItem.value;
item.dataSource=normalizedItem.dataSource;theItem=item;dstStore.save(item);thiz.onItemChanged(xas.utils.CIDataToJSON(item));break}}});if(theItem)return theItem;var testUID=""+normalizedItem.uid;var parendId=""+normalizedItem.parentId;dstStore.fetch({query:{id:parendId},queryOptions:{"deep":true},onComplete:function(items,req){for(i=0;i<items.length;i++){var item=items[i];if(item.inputs!=null&&item.inputs.length>0)theItem=xapp.utils.getCIByUid(item.inputs,testUID)}}});if(theItem){theItem.value=normalizedItem.value;
dstStore.save(theItem);thiz.onItemChanged(xas.utils.CIDataToJSON(theItem));return theItem}}})})},"dojox/mobile":function(){define("dojox/mobile",[".","dojo/_base/lang","dojox/mobile/_base"],function(dojox,lang,base){lang.getObject("mobile",true,dojox);return dojox.mobile})},"dojo/_base/json":function(){define(["./kernel","../json"],function(dojo,json){dojo.fromJson=function(js){return eval("("+js+")")};dojo._escapeString=json.stringify;dojo.toJsonIndentStr="\t";dojo.toJson=function(it,prettyPrint){return json.stringify(it,
function(key,value){if(value){var tf=value.__json__||value.json;if(typeof tf=="function")return tf.call(value)}return value},prettyPrint&&dojo.toJsonIndentStr)};return dojo})},"url:dojox/image/resources/Lightbox.html":'\x3cdiv class\x3d"dojoxLightbox" dojoAttachPoint\x3d"containerNode"\x3e\n\t\x3cdiv style\x3d"position:relative"\x3e\n\t\t\x3cdiv dojoAttachPoint\x3d"imageContainer" class\x3d"dojoxLightboxContainer" dojoAttachEvent\x3d"onclick: _onImageClick"\x3e\n\t\t\t\x3cimg dojoAttachPoint\x3d"imgNode" src\x3d"${imgUrl}" class\x3d"${imageClass}" alt\x3d"${title}"\x3e\n\t\t\t\x3cdiv class\x3d"dojoxLightboxFooter" dojoAttachPoint\x3d"titleNode"\x3e\n\t\t\t\t\x3cdiv class\x3d"dijitInline LightboxClose" dojoAttachPoint\x3d"closeButtonNode"\x3e\x3c/div\x3e\n\t\t\t\t\x3cdiv class\x3d"dijitInline LightboxNext" dojoAttachPoint\x3d"nextButtonNode"\x3e\x3c/div\x3e\t\n\t\t\t\t\x3cdiv class\x3d"dijitInline LightboxPrev" dojoAttachPoint\x3d"prevButtonNode"\x3e\x3c/div\x3e\n\t\t\t\t\x3cdiv class\x3d"dojoxLightboxText" dojoAttachPoint\x3d"titleTextNode"\x3e\x3cspan dojoAttachPoint\x3d"textNode"\x3e${title}\x3c/span\x3e\x3cspan dojoAttachPoint\x3d"groupCount" class\x3d"dojoxLightboxGroupText"\x3e\x3c/span\x3e\x3c/div\x3e\n\t\t\t\x3c/div\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e',
"cbtree/data/BreadCrumb":function(){require({cache:{"url:cbtree/templates/TrailBarItem.html":'\x3cdiv class\x3d"dijitReset dijitInline dijitMenuItem" data-dojo-attach-point\x3d"focusNode" role\x3d"menuitem" tabIndex\x3d"-1"\x3e\n\t\x3cimg src\x3d"${_blankGif}" alt\x3d"" class\x3d"dijitIcon dijitMenuItemIcon" data-dojo-attach-point\x3d"iconNode"/\x3e\n\t\x3cspan data-dojo-attach-point\x3d"containerNode"\x3e\x3c/span\x3e\n\x3c/div\x3e\n'}});define("cbtree/data/BreadCrumb",["dojo/_base/array","dojo/_base/declare",
"dojo/_base/event","dojo/_base/lang","dijit/MenuBar","dijit/MenuItem","dijit/MenuBarItem","dijit/DropDownMenu","dijit/registry","dojo/text!../templates/TrailBarItem.html","../Evented"],function(array,declare,event,lang,MenuBar,MenuItem,MenuBarItem,DropDownMenu,registry,TrailBarItemTemplate,Evented){var DirectoryItem=declare([MenuItem],{iconClass:"dijitEditorIcon dijitEditorIconTabIndent",templateString:TrailBarItemTemplate,popup:null,constructor:function(args){this.popup=new DropDownMenu({})}});var BreadCrumb=
declare([MenuBarItem,Evented],{trail:null,item:null,moduleName:"cbTree/stores/BreadCrumb",constructor:function(args){this.trail=args.trail;this.item=args.item;if(this.trail&&this.item){var store=this.trail.store;var item=this.item;this.label=store.getLabel(item);this.path=store.getValue(item,"path");if(this.item.directory){this.tag=new DirectoryItem;store.fetchChildren({item:item,query:{directory:true},queryOptions:{storeOnly:true},onComplete:this._dropDownMenu,scope:this})}}else throw new Error(this.moduleName+
"::constructor(): Both trail and item are required arguments.");},_addToTrail:function(){this.trail.addChild(this);this.trail.addChild(this.tag)},_dropDownMenu:function(items){var popupMenu=this.tag.popup;var menuItem;array.forEach(items,function(item){menuItem=new MenuItem({label:item.name,iconClass:this.trail._dirIconClass,onClick:lang.hitch(this,this.onClick)});menuItem.item=item;popupMenu.addChild(menuItem)},this)},postCreate:function(){this._addToTrail()},onClick:function(evt){var menuItem=registry.getEnclosingWidget(evt.target);
this.trail.onClick(menuItem.item,menuItem,evt);event.stop(evt)}});var CrumbTrail=declare([MenuBar,Evented],{store:null,moduleName:"cbTree/stores/CrumbTrail",_dirIconClass:"dijitIcon dijitFolderClosed",constructor:function(args){this._customIcon=false;this._crumbs={};this.store=args.store||null;if(this.store){this._setTrailAttr(".");if(args.cssBaseClass)if(args.cssBaseClass!=="fileIcon")this._dirIconClass=args.cssBaseClass+" "+args.cssBaseClass+"Collapsed";else this._dirIconClass="fileIcon fileIconDIR fileIconDIRCollapsed"}else throw new Error(this.moduleName+
"::constructor(): store argument is required.");},_addBreadCrumb:function(item){if(item){var identity=this.store.getIdentity(item);var breadCrumb=this._crumbs[identity];if(!breadCrumb){breadCrumb=new BreadCrumb({trail:this,item:item});this._crumbs[identity]=breadCrumb}else breadCrumb._addToTrail()}},_clearTrail:function(){var children=this.getChildren();var i;for(i=0;i<children.length;i++)this.removeChild(children[i])},_setTrailAttr:function(path){var store=this.store;var self=this;if(path&&lang.isString(path)){var segm=
path.split("/");var identity="",i;this._clearTrail();for(i=0;i<segm.length;i++){identity=identity+segm[i];store.fetchItemByIdentity({identity:identity,queryOptions:{storeOnly:true},onItem:self._addBreadCrumb,scope:this});identity=identity+"/"}}else throw new Error(this.moduleName+"::_setTrailAttr(): invalid path argument.");return true},setTrail:function(path){return this._setTrailAttr(path)},onClick:function(){}});return CrumbTrail})},"xide/widgets/FileWidget":function(){define(["dojo/_base/declare",
"dojo/_base/lang","xide/widgets/WidgetBase","xide/factory","xide/utils","xfile/factory"],function(declare,lang,WidgetBase,factory,utils,xFileFactory){return declare("xide.widgets.FileWidget",[WidgetBase],{wContentSelectorButton:null,lastUploadedFileName:null,ajaxplorerIframe:null,ajaxplorerDialog:null,oriPath:null,minHeight:"54px;",value:"",options:null,onPlatformChanged:function(newPlatform){this.inherited(arguments)},clearValue:function(){this.setValue(null)},templateString:"\x3cdiv class\x3d'widgetContainer widgetBorder widgetTable' style\x3d''\x3e"+
"\x3ctable border\x3d'0' cellpadding\x3d'5px' width\x3d'100%' \x3e"+"\x3ctbody\x3e"+"\x3ctr data-dojo-attach-point\x3d'extensionRoot'\x3e"+"\x3ctd width\x3d'15%' class\x3d'widgetTitle'\x3e\x3cspan\x3e\x3cb\x3e${!title}\x3c/b\x3e\x3cspan\x3e\x3c/td\x3e"+"\x3ctd width\x3d'100px' class\x3d'widgetValue2' valign\x3d'middle' data-dojo-attach-point\x3d'previewNode'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button0'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button1'\x3e\x3c/td\x3e"+
"\x3ctd class\x3d'extension' width\x3d'25px' data-dojo-attach-point\x3d'button2'\x3e\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e"+"\x3cdiv data-dojo-attach-point\x3d'expander' onclick\x3d'' style\x3d'width:100%;'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'last'\x3e\x3c/div\x3e"+"\x3c/div\x3e",filePathValidator:function(value,constraints){var thiz=this;var result=false;var reg=new RegExp(/^[0-9a-zA-Z ..._/ ]+$/);if(value&&reg.test(value)){var doExistCheck=false;if(doExistCheck){result=
false;thiz.promptMessage="Item already exists";thiz.message="Item already exists"}else{result=true;thiz.message="Enter new file name"}}else{thiz.promptMessage="This is not a valid path, try without special characters!";thiz.message="This is not a path filename, try without special characters!";result=false}this.fileNameValid=result;if(this.owner&&this.owner.onValidated)this.owner.onValidated(result);return result},onFileSelected:function(path){this.editBox.set("value",path);this.value=path;this.setValue(path)},
onSelect:function(){var thiz=this;var _defaultOptions={title:"Select Script",owner:window["xFileContext"],dst:{name:"Select",path:"."},src:".",ctx:window["xFileContext"]};if(this.options)lang.mixin(_defaultOptions,this.options);xFileFactory.createFileSelectDialog(_defaultOptions,function(path){thiz.onFileSelected(path)})},fillTemplate:function(){var thiz=this;var value=utils.toString(this.userData["value"]);this.editBox=factory.createValidationTextBox(this.previewNode,"","",value,this.filePathValidator,
this.delegate,"Not a path!","I need some input");this.selectButton=factory.createButton(this.button0,"el-icon-folder-open","elusiveButton","","",this.onSelect,this);this.addClearButton()},startup:function(){this.inherited(arguments);this.fillTemplate();this.onReady()}})})},"dijit/form/_Spinner":function(){require({cache:{"url:dijit/form/templates/Spinner.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tid\x3d"widget_${id}" role\x3d"presentation"\n\t\x3e\x3cdiv class\x3d"dijitReset dijitButtonNode dijitSpinnerButtonContainer"\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitSpinnerButtonInner" type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t/\x3e\x3cdiv class\x3d"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton"\n\t\t\tdata-dojo-attach-point\x3d"upArrowNode"\n\t\t\t\x3e\x3cdiv class\x3d"dijitArrowButtonInner"\n\t\t\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField" value\x3d"\x26#9650; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/\x3e\x3c/div\n\t\t\x3e\x3c/div\n\t\t\x3e\x3cdiv class\x3d"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton"\n\t\t\tdata-dojo-attach-point\x3d"downArrowNode"\n\t\t\t\x3e\x3cdiv class\x3d"dijitArrowButtonInner"\n\t\t\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField" value\x3d"\x26#9660; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/\x3e\x3c/div\n\t\t\x3e\x3c/div\n\t\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d\'dijitReset dijitValidationContainer\'\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value\x3d"\x26#935; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t/\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitInputContainer"\n\t\t\x3e\x3cinput class\x3d\'dijitReset dijitInputInner\' data-dojo-attach-point\x3d"textbox,focusNode" type\x3d"${type}" data-dojo-attach-event\x3d"onkeydown:_onKeyDown"\n\t\t\trole\x3d"spinbutton" autocomplete\x3d"off" ${!nameAttrSetting}\n\t/\x3e\x3c/div\n\x3e\x3c/div\x3e\n'}});
define("dijit/form/_Spinner",["dojo/_base/declare","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/mouse","dojo/on","../typematic","./RangeBoundTextBox","dojo/text!./templates/Spinner.html","./_TextBoxMixin"],function(declare,keys,lang,has,mouse,on,typematic,RangeBoundTextBox,template,_TextBoxMixin){return declare("dijit.form._Spinner",RangeBoundTextBox,{defaultTimeout:500,minimumTimeout:10,timeoutChangeRate:0.9,smallDelta:1,largeDelta:10,templateString:template,baseClass:"dijitTextBox dijitSpinner",
cssStateNodes:{"upArrowNode":"dijitUpArrowButton","downArrowNode":"dijitDownArrowButton"},adjust:function(val){return val},_arrowPressed:function(nodePressed,direction,increment){if(this.disabled||this.readOnly)return;this._setValueAttr(this.adjust(this.get("value"),direction*increment),false);_TextBoxMixin.selectInputText(this.textbox,this.textbox.value.length)},_arrowReleased:function(){this._wheelTimer=null},_typematicCallback:function(count,node,evt){var inc=this.smallDelta;if(node==this.textbox){var key=
evt.keyCode;inc=key==keys.PAGE_UP||key==keys.PAGE_DOWN?this.largeDelta:this.smallDelta;node=key==keys.UP_ARROW||key==keys.PAGE_UP?this.upArrowNode:this.downArrowNode}if(count==-1)this._arrowReleased(node);else this._arrowPressed(node,node==this.upArrowNode?1:-1,inc)},_wheelTimer:null,_mouseWheeled:function(evt){evt.stopPropagation();evt.preventDefault();var wheelDelta=evt.wheelDelta/120;if(Math.floor(wheelDelta)!=wheelDelta)wheelDelta=evt.wheelDelta>0?1:-1;var scrollAmount=evt.detail?evt.detail*-1:
wheelDelta;if(scrollAmount!==0){var node=this[scrollAmount>0?"upArrowNode":"downArrowNode"];this._arrowPressed(node,scrollAmount,this.smallDelta);if(this._wheelTimer)this._wheelTimer.remove();this._wheelTimer=this.defer(function(){this._arrowReleased(node)},50)}},_setConstraintsAttr:function(constraints){this.inherited(arguments);if(this.focusNode){if(this.constraints.min!==undefined)this.focusNode.setAttribute("aria-valuemin",this.constraints.min);else this.focusNode.removeAttribute("aria-valuemin");
if(this.constraints.max!==undefined)this.focusNode.setAttribute("aria-valuemax",this.constraints.max);else this.focusNode.removeAttribute("aria-valuemax")}},_setValueAttr:function(value,priorityChange){this.focusNode.setAttribute("aria-valuenow",value);this.inherited(arguments)},postCreate:function(){this.inherited(arguments);this.own(on(this.domNode,mouse.wheel,lang.hitch(this,"_mouseWheeled")),typematic.addListener(this.upArrowNode,this.textbox,{keyCode:keys.UP_ARROW,ctrlKey:false,altKey:false,
shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout),typematic.addListener(this.downArrowNode,this.textbox,{keyCode:keys.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout),typematic.addListener(this.upArrowNode,this.textbox,{keyCode:keys.PAGE_UP,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",
this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout),typematic.addListener(this.downArrowNode,this.textbox,{keyCode:keys.PAGE_DOWN,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout))}})})},"xfile/views/KeyboardHandler":function(){define("xfile/views/KeyboardHandler",["dojo/_base/declare","dojo/keys","dojo/has"],function(declare,keys,has){return declare("xfiles.views.KeyboardDelegate",null,{ctlrKeyDown:false,
onKeyUp:function(evt){switch(evt.keyCode){case keys.META:case keys.SHIFT:case keys.ALT:case keys.CTRL:this.ctlrKeyDown=false;break}},onKey:function(evt){var thiz=this;if(evt.type&&evt.type=="keyup")return this.onKeyUp(evt);var vKey=86,cKey=67,cutKey=88;if(evt.keyCode==keys.ENTER)if(this.ctlrKeyDown){if(this.openItemAlternate){evt.preventDefault();this.openItemAlternate(null)}}else{if(this.openItem){this.openItem(null);evt.preventDefault()}}else switch(evt.keyCode){case keys.META:case keys.ALT:case keys.SHIFT:case keys.CTRL:this.ctlrKeyDown=
true;setTimeout(function(){thiz.ctlrKeyDown=false},2E3);break;case keys.SPACE:if(this.onPreview){evt.preventDefault();this.onPreview()}break;case keys.F1:if(this.openSourceMenu){evt.preventDefault();this.openSourceMenu()}break;case keys.F2:if(this.onRename){evt.preventDefault();this.onRename()}break;case keys.TAB:if(this.onTab){this.onTab(evt);evt.preventDefault()}break;case keys.BACKSPACE:var doBack=true;if(has("chrome")&&this.ctlrKeyDown==false)doBack=false;if(doBack)if(this.onBack){evt.preventDefault();
this.onBack()}break;case keys.F5:if(this.copyItem){evt.preventDefault();this.copyItem()}break;case keys.F6:if(this.moveItem){evt.preventDefault();this.moveItem()}break;case keys.F7:if(this.mkdir){evt.preventDefault();this.mkdir()}break;case keys.F9:if(this.mkfile){evt.preventDefault();this.mkfile()}break;case keys.F8:case keys.DELETE:if(this.deleteItem){evt.preventDefault();this.deleteItem()}break;case 70:if(this.ctlrKeyDown&&this.onFind){evt.preventDefault();this.onFind()}break;case keys.F4:case 87:if(this.ctlrKeyDown&&
this.closeItem){evt.preventDefault();this.closeItem();if(has("chrome"))this.onClose()}break;case cKey:if(this.ctlrKeyDown&&this.onClipBoardCopy){evt.preventDefault();this.onClipBoardCopy()}break;case vKey:if(this.ctlrKeyDown&&this.onClipBoardPaste){evt.preventDefault();this.onClipBoardPaste()}break;case cutKey:if(this.ctlrKeyDown&&this.onClipBoardCut){evt.preventDefault();this.onClipBoardCut()}break}}})})},"dijit/Menu":function(){define("dijit/Menu",["require","dojo/_base/array","dojo/_base/declare",
"dojo/dom","dojo/dom-attr","dojo/dom-geometry","dojo/dom-style","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","dojo/_base/window","dojo/window","./popup","./DropDownMenu","dojo/ready"],function(require,array,declare,dom,domAttr,domGeometry,domStyle,keys,lang,on,has,win,winUtils,pm,DropDownMenu,ready){if(has("dijit-legacy-requires"))ready(0,function(){var requires=["dijit/MenuItem","dijit/PopupMenuItem","dijit/CheckedMenuItem","dijit/MenuSeparator"];require(requires)});return declare("dijit.Menu",
DropDownMenu,{constructor:function(){this._bindings=[]},targetNodeIds:[],selector:"",contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){if(this.contextMenuForWindow)this.bindDomNode(this.ownerDocumentBody);else array.forEach(this.targetNodeIds,this.bindDomNode,this);this.inherited(arguments)},_iframeContentWindow:function(iframe_el){return winUtils.get(this._iframeContentDocument(iframe_el))||this._iframeContentDocument(iframe_el)["__parent__"]||iframe_el.name&&document.frames[iframe_el.name]||
null},_iframeContentDocument:function(iframe_el){return iframe_el.contentDocument||iframe_el.contentWindow&&iframe_el.contentWindow.document||iframe_el.name&&document.frames[iframe_el.name]&&document.frames[iframe_el.name].document||null},bindDomNode:function(node){node=dom.byId(node,this.ownerDocument);var cn;if(node.tagName.toLowerCase()=="iframe"){var iframe=node,window=this._iframeContentWindow(iframe);cn=win.body(window.document)}else cn=node==win.body(this.ownerDocument)?this.ownerDocument.documentElement:
node;var binding={node:node,iframe:iframe};domAttr.set(node,"_dijitMenu"+this.id,this._bindings.push(binding));var doConnects=lang.hitch(this,function(cn){var selector=this.selector,delegatedEvent=selector?function(eventType){return on.selector(selector,eventType)}:function(eventType){return eventType},self=this;return[on(cn,delegatedEvent(this.leftClickToOpen?"click":"contextmenu"),function(evt){evt.stopPropagation();evt.preventDefault();self._scheduleOpen(this,iframe,{x:evt.pageX,y:evt.pageY})}),
on(cn,delegatedEvent("keydown"),function(evt){if(evt.shiftKey&&evt.keyCode==keys.F10){evt.stopPropagation();evt.preventDefault();self._scheduleOpen(this,iframe)}})]});binding.connects=cn?doConnects(cn):[];if(iframe){binding.onloadHandler=lang.hitch(this,function(){var window=this._iframeContentWindow(iframe),cn=win.body(window.document);binding.connects=doConnects(cn)});if(iframe.addEventListener)iframe.addEventListener("load",binding.onloadHandler,false);else iframe.attachEvent("onload",binding.onloadHandler)}},
unBindDomNode:function(nodeName){var node;try{node=dom.byId(nodeName,this.ownerDocument)}catch(e){return}var attrName="_dijitMenu"+this.id;if(node&&domAttr.has(node,attrName)){var bid=domAttr.get(node,attrName)-1,b=this._bindings[bid],h;while(h=b.connects.pop())h.remove();var iframe=b.iframe;if(iframe)if(iframe.removeEventListener)iframe.removeEventListener("load",b.onloadHandler,false);else iframe.detachEvent("onload",b.onloadHandler);domAttr.remove(node,attrName);delete this._bindings[bid]}},_scheduleOpen:function(target,
iframe,coords){if(!this._openTimer)this._openTimer=this.defer(function(){delete this._openTimer;this._openMyself({target:target,iframe:iframe,coords:coords})},1)},_openMyself:function(args){var target=args.target,iframe=args.iframe,coords=args.coords,byKeyboard=!coords;this.currentTarget=target;if(coords){if(iframe){var ifc=domGeometry.position(iframe,true),window=this._iframeContentWindow(iframe),scroll=domGeometry.docScroll(window.document);var cs=domStyle.getComputedStyle(iframe),tp=domStyle.toPixelValue,
left=(has("ie")&&has("quirks")?0:tp(iframe,cs.paddingLeft))+(has("ie")&&has("quirks")?tp(iframe,cs.borderLeftWidth):0),top=(has("ie")&&has("quirks")?0:tp(iframe,cs.paddingTop))+(has("ie")&&has("quirks")?tp(iframe,cs.borderTopWidth):0);coords.x+=ifc.x+left-scroll.x;coords.y+=ifc.y+top-scroll.y}}else{coords=domGeometry.position(target,true);coords.x+=10;coords.y+=10}var self=this;var prevFocusNode=this._focusManager.get("prevNode");var curFocusNode=this._focusManager.get("curNode");var savedFocusNode=
!curFocusNode||dom.isDescendant(curFocusNode,this.domNode)?prevFocusNode:curFocusNode;function closeAndRestoreFocus(){if(self.refocus&&savedFocusNode)savedFocusNode.focus();pm.close(self)}pm.open({popup:this,x:coords.x,y:coords.y,onExecute:closeAndRestoreFocus,onCancel:closeAndRestoreFocus,orient:this.isLeftToRight()?"L":"R"});this.focus();if(!byKeyboard)this._cleanUp(true);this._onBlur=function(){this.inherited("_onBlur",arguments);pm.close(this)}},destroy:function(){array.forEach(this._bindings,
function(b){if(b)this.unBindDomNode(b.node)},this);this.inherited(arguments)}})})},"dijit/layout/utils":function(){define("dijit/layout/utils",["dojo/_base/array","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/lang","../main"],function(array,domClass,domGeometry,domStyle,lang,dijit){var layout=lang.getObject("layout",true,dijit);layout.marginBox2contentBox=function(node,mb){var cs=domStyle.getComputedStyle(node);var me=domGeometry.getMarginExtents(node,cs);var pb=domGeometry.getPadBorderExtents(node,
cs);return{l:domStyle.toPixelValue(node,cs.paddingLeft),t:domStyle.toPixelValue(node,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)}};function capitalize(word){return word.substring(0,1).toUpperCase()+word.substring(1)}function size(widget,dim){var newSize=widget.resize?widget.resize(dim):domGeometry.setMarginBox(widget.domNode,dim);if(newSize)lang.mixin(widget,newSize);else{lang.mixin(widget,domGeometry.getMarginBox(widget.domNode));lang.mixin(widget,dim)}}layout.layoutChildren=function(container,
dim,children,changedRegionId,changedRegionSize){dim=lang.mixin({},dim);domClass.add(container,"dijitLayoutContainer");children=array.filter(children,function(item){return item.region!="center"&&item.layoutAlign!="client"}).concat(array.filter(children,function(item){return item.region=="center"||item.layoutAlign=="client"}));array.forEach(children,function(child){var elm=child.domNode,pos=child.region||child.layoutAlign;if(!pos)throw new Error("No region setting for "+child.id);var elmStyle=elm.style;
elmStyle.left=dim.l+"px";elmStyle.top=dim.t+"px";elmStyle.position="absolute";domClass.add(elm,"dijitAlign"+capitalize(pos));var sizeSetting={};if(changedRegionId&&changedRegionId==child.id)sizeSetting[child.region=="top"||child.region=="bottom"?"h":"w"]=changedRegionSize;if(pos=="top"||pos=="bottom"){sizeSetting.w=dim.w;size(child,sizeSetting);dim.h-=child.h;if(pos=="top")dim.t+=child.h;else elmStyle.top=dim.t+dim.h+"px"}else if(pos=="left"||pos=="right"){sizeSetting.h=dim.h;size(child,sizeSetting);
dim.w-=child.w;if(pos=="left")dim.l+=child.w;else elmStyle.left=dim.l+dim.w+"px"}else if(pos=="client"||pos=="center")size(child,dim)})};return{marginBox2contentBox:layout.marginBox2contentBox,layoutChildren:layout.layoutChildren}})},"xapp/utils/PageUtils":function(){define("xapp/utils/PageUtils",["xapp/utils","xapp/types"],function(utils,types){utils.getPagesSorted=function(store,rootPage,populate){var result=[];if(!rootPage)return result;var tabs=utils.getAppDataElementsByTypeAndParent(store,"view",
""+utils.toInt(rootPage.uid));tabs.sort(function(a,b){var orderA=0;var orderB=0;var dataCI=ctx.getApplication().getCIByChainAndName(a,0,types.CIName.ContentSource,true);if(dataCI)orderA=utils.toInt(dataCI.order);var dataCIB=ctx.getApplication().getCIByChainAndName(b,0,types.CIName.ContentSource,true);if(dataCIB)orderB=utils.toInt(dataCIB.order);return orderA-orderB});for(var i=0;i<tabs.length;i++){var item=tabs[i];var dataCI=ctx.getApplication().getCIByChainAndName(item,0,types.CIName.ContentSource,
true);if(dataCI){if(dataCI.enabled&&!dataCI.enabled[0])continue;result.push(item);if(populate){var titleCi=utils.getCIByChainAndName(item,0,types.CIName.Title,true);if(titleCi)item["title"]=utils.toString(titleCi.value)}}}store["pagesSorted"]=result;return result};utils.findPageByQXTabIdentifier=function(store,title,rootId){var result=null;var pages=utils.getAppDataElementsByTypeAndParent(store,"view",rootId);if(pages)for(var i=0;i<pages.length;i++){var page=pages[i];if(page.qxappTabIdentifier!=null)if(utils.toString(page.qxappTabIdentifier)==
title)return page}return result};utils.findPageByTitle=function(store,title,rootId){var result=null;var pages=utils.getAppDataElementsByTypeAndParent(store,"view",rootId);if(pages)for(var i=0;i<pages.length;i++){var page=pages[i];var titleCI=ctx.getApplication().getCIByChainAndName(page,0,types.CIName.Title,true);if(titleCI!=null)if(utils.toString(titleCI.value)==title)return page}return result};utils.findCIByNameAndPage=function(name,page,store){if(!page)return null;if(!page.inputs&&!page.inputs.length>
0)return null;var ci=utils.getCIByChainAndName(page,0,name);if(ci)return ci;else{var parentId=utils.toString(page.parent);var parentPage=utils.getAppDataElementById(store,parentId);if(parentPage)return utils.findCIByNameAndPage(name,parentPage,store)}return null};utils.findCIByName=function(baseController,name,page){if(!page||page.length==0||page.inputs==null)return null;if(!page.inputs&&!page.inputs.length>0)return null;var ci=utils.getCIByChainAndName(page,0,name);if(ci)return ci;else if(baseController.parentPage&&
baseController.parentPage!=page)return utils.findCIByName(baseController,name,baseController.parentPage);else{var store=page._S;if(!store)return null;if(baseController.parentPage){var _parent=utils.getCIIntegerValue(baseController.parentPage.parent);if(_parent){var _parentPage=utils.getPageDataByParent(store,_parent);if(_parentPage)return utils.findCIByName(baseController,name,_parentPage)}}}return null};utils.getPageByUID=function(store,parent){};utils.getNextPageFromParent=function(store,parent,
type,refId){var _refId=refId;if(_refId.indexOf("http"))_refId=_refId.replace("tt://rss/","");if(parent==null)return null;var result=null;var _subPages=utils.getAppDataElementsByTypeAndParent(store,"view",""+parent.uid[0]);if(!_subPages)return null;var _aL=_subPages.length;for(var index=0;index<_aL;index++){var _subPage=_subPages[index];var _contentSourceCI=utils.getInputCIByName(_subPage,types.CIName.ContentSource);if(_contentSourceCI!=null){var _cRef=utils.toString(_contentSourceCI.dataRef);var _cValue=
utils.getCIIntegerValue(_contentSourceCI.value);var _cValueStr=utils.toString(_contentSourceCI.value);if(_cRef&&_cValue)if(_cValue==type&&_cRef==_refId){result=_subPage;break}if(_cRef&&isNaN(_cValue)&&_cValueStr)if(_cValueStr==type&&_cRef==_refId){result=_subPage;break}if(_cValue){var _pageUID=utils.toInt(_subPage.uid);if(_pageUID&&_cValue==type&&_pageUID==refId){result=_subPage;break}}}}return result};return utils})},"xide/manager/Session":function(){define(["dojo/_base/declare","xapp/manager/SessionBase"],
function(declare,SessionBase){declare("xide.manager.Session",[SessionBase],{applicationId:null,uuid:null,userAgent:"empty",dataHost:null,appStore:null,ciOverrideStore:null,application:null,dataContextName:null,currentSimulator:null,serviceSettings:null,lastDataSource:null,isLiferay:false,getBaseURL:function(){if(typeof dataHost!="undefined")return dataHost;return""},getServicePath:function(){return this.getBaseURL()},toRelativeAssetUrl:function(fileName){if(fileName==null)return null;if(fileName.indexOf("SharedAssets")==
-1&&fileName.indexOf("themes")==-1){if(xapp.utils.contains(fileName,"http"))return fileName;var res=this.getBaseURL()+this.servletContextName()+"/CMAC/";if(this.serviceSettings)res=this.serviceSettings.webPath+"CMAC/";res+=this.getUUID()+"/apps/"+fileName;return res}if(fileName.indexOf("SharedAssets")!=-1){if(xapp.utils.contains(fileName,"http"))return fileName;var res="";if(this.serviceSettings)res=this.serviceSettings.webPath+"CMAC/shared/";res+=fileName;return res}if(fileName.indexOf("themes")!=
-1){if(xapp.utils.contains(fileName,"http"))return fileName;var res="";if(this.serviceSettings)res=this.serviceSettings.webPath+"CMAC/";res+=fileName;return res}},toRelativeRemoteAssetUrl:function(fileName){if(fileName.indexOf("SharedAssets")==-1){var res="";res+=this.getUUID()+"/apps/"+fileName;return res}else{var res="";res+=this.serviceSettings.webPath+"CMAC/shared/"+fileName;return res}return""},getAssetUrlBaseRelative:function(){var res="";return res}})})},"dojo/i18n":function(){define(["./_base/kernel",
"require","./has","./_base/array","./_base/config","./_base/lang","./_base/xhr","./json","module"],function(dojo,require,has,array,config,lang,xhr,json,module){has.add("dojo-preload-i18n-Api",1);1||has.add("dojo-v1x-i18n-Api",1);var thisModule=dojo.i18n={},nlsRe=/(^.*(^|\/)nls)(\/|$)([^\/]*)\/?([^\/]*)/,getAvailableLocales=function(root,locale,bundlePath,bundleName){for(var result=[bundlePath+bundleName],localeParts=locale.split("-"),current="",i=0;i<localeParts.length;i++){current+=(current?"-":
"")+localeParts[i];if(!root||root[current]){result.push(bundlePath+current+"/"+bundleName);result.specificity=current}}return result},cache={},getBundleName=function(moduleName,bundleName,locale){locale=locale?locale.toLowerCase():dojo.locale;moduleName=moduleName.replace(/\./g,"/");bundleName=bundleName.replace(/\./g,"/");return/root/i.test(locale)?moduleName+"/nls/"+bundleName:moduleName+"/nls/"+locale+"/"+bundleName},getL10nName=dojo.getL10nName=function(moduleName,bundleName,locale){return moduleName=
module.id+"!"+getBundleName(moduleName,bundleName,locale)},doLoad=function(require,bundlePathAndName,bundlePath,bundleName,locale,load){require([bundlePathAndName],function(root){var current=lang.clone(root.root||root.ROOT),availableLocales=getAvailableLocales(!root._v1x&&root,locale,bundlePath,bundleName);require(availableLocales,function(){for(var i=1;i<availableLocales.length;i++)current=lang.mixin(lang.clone(current),arguments[i]);var target=bundlePathAndName+"/"+locale;cache[target]=current;
current.$locale=availableLocales.specificity;load()})})},normalize=function(id,toAbsMid){return/^\./.test(id)?toAbsMid(id):id},getLocalesToLoad=function(targetLocale){var list=config.extraLocale||[];list=lang.isArray(list)?list:[list];list.push(targetLocale);return list},load=function(id,require,load){if(has("dojo-preload-i18n-Api")){var split=id.split("*"),preloadDemand=split[1]=="preload";if(preloadDemand){if(!cache[id]){cache[id]=1;preloadL10n(split[2],json.parse(split[3]),1,require)}load(1)}if(preloadDemand||
waitForPreloads(id,require,load))return}var match=nlsRe.exec(id),bundlePath=match[1]+"/",bundleName=match[5]||match[4],bundlePathAndName=bundlePath+bundleName,localeSpecified=match[5]&&match[4],targetLocale=localeSpecified||dojo.locale||"",loadTarget=bundlePathAndName+"/"+targetLocale,loadList=localeSpecified?[targetLocale]:getLocalesToLoad(targetLocale),remaining=loadList.length,finish=function(){if(!--remaining)load(lang.delegate(cache[loadTarget]))};array.forEach(loadList,function(locale){var target=
bundlePathAndName+"/"+locale;if(has("dojo-preload-i18n-Api"))checkForLegacyModules(target);if(!cache[target])doLoad(require,bundlePathAndName,bundlePath,bundleName,locale,finish);else finish()})};if(has("dojo-unit-tests"))var unitTests=thisModule.unitTests=[];if(has("dojo-preload-i18n-Api")||1)var normalizeLocale=thisModule.normalizeLocale=function(locale){var result=locale?locale.toLowerCase():dojo.locale;return result=="root"?"ROOT":result},isXd=function(mid,contextRequire){return 0&&1?contextRequire.isXdUrl(require.toUrl(mid+
".js")):true},preloading=0,preloadWaitQueue=[],preloadL10n=thisModule._preloadLocalizations=function(bundlePrefix,localesGenerated,guaranteedAmdFormat,contextRequire){contextRequire=contextRequire||require;function doRequire(mid,callback){if(isXd(mid,contextRequire)||guaranteedAmdFormat)contextRequire([mid],callback);else syncRequire([mid],callback,contextRequire)}function forEachLocale(locale,func){var parts=locale.split("-");while(parts.length){if(func(parts.join("-")))return;parts.pop()}func("ROOT")}
function preloadingAddLock(){preloading++}function preloadingRelLock(){--preloading;while(!preloading&&preloadWaitQueue.length)load.apply(null,preloadWaitQueue.shift())}function cacheId(path,name,loc,require){return require.toAbsMid(path+name+"/"+loc)}function preload(locale){locale=normalizeLocale(locale);forEachLocale(locale,function(loc){if(array.indexOf(localesGenerated,loc)>=0){var mid=bundlePrefix.replace(/\./g,"/")+"_"+loc;preloadingAddLock();doRequire(mid,function(rollup){for(var p in rollup){var bundle=
rollup[p],match=p.match(/(.+)\/([^\/]+)$/),bundleName,bundlePath;if(!match)continue;bundleName=match[2];bundlePath=match[1]+"/";bundle._localized=bundle._localized||{};var localized;if(loc==="ROOT"){var root=localized=bundle._localized;delete bundle._localized;root.root=bundle;cache[require.toAbsMid(p)]=root}else{localized=bundle._localized;cache[cacheId(bundlePath,bundleName,loc,require)]=bundle}if(loc!==locale){function improveBundle(bundlePath,bundleName,bundle,localized){var requiredBundles=[],
cacheIds=[];forEachLocale(locale,function(loc){if(localized[loc]){requiredBundles.push(require.toAbsMid(bundlePath+loc+"/"+bundleName));cacheIds.push(cacheId(bundlePath,bundleName,loc,require))}});if(requiredBundles.length){preloadingAddLock();contextRequire(requiredBundles,function(){for(var i=0;i<requiredBundles.length;i++){bundle=lang.mixin(lang.clone(bundle),arguments[i]);cache[cacheIds[i]]=bundle}cache[cacheId(bundlePath,bundleName,locale,require)]=lang.clone(bundle);preloadingRelLock()})}else cache[cacheId(bundlePath,
bundleName,locale,require)]=bundle}improveBundle(bundlePath,bundleName,bundle,localized)}}preloadingRelLock()});return true}return false})}preload();array.forEach(dojo.config.extraLocale,preload)},waitForPreloads=function(id,require,load){if(preloading)preloadWaitQueue.push([id,require,load]);return preloading},checkForLegacyModules=function(){};if(1){var amdValue={},evalBundle=new Function("__bundle","__checkForLegacyModules","__mid","__amdValue","var define \x3d function(mid, factory){define.called \x3d 1; __amdValue.result \x3d factory || mid;},"+
"\t   require \x3d function(){define.called \x3d 1;};"+"try{"+"define.called \x3d 0;"+"eval(__bundle);"+"if(define.called\x3d\x3d1)"+"return __amdValue;"+"if((__checkForLegacyModules \x3d __checkForLegacyModules(__mid)))"+"return __checkForLegacyModules;"+"}catch(e){}"+"try{"+"return eval('('+__bundle+')');"+"}catch(e){"+"return e;"+"}"),syncRequire=function(deps,callback,require){var results=[];array.forEach(deps,function(mid){var url=require.toUrl(mid+".js");function load(text){var result=evalBundle(text,
checkForLegacyModules,mid,amdValue);if(result===amdValue)results.push(cache[url]=amdValue.result);else{if(result instanceof Error){console.error("failed to evaluate i18n bundle; url\x3d"+url,result);result={}}results.push(cache[url]=/nls\/[^\/]+\/[^\/]+$/.test(url)?result:{root:result,_v1x:1})}}if(cache[url])results.push(cache[url]);else{var bundle=require.syncLoadNls(mid);if(bundle)results.push(bundle);else if(!xhr)try{require.getText(url,true,load)}catch(e){results.push(cache[url]={})}else xhr.get({url:url,
sync:true,load:load,error:function(){results.push(cache[url]={})}})}});callback&&callback.apply(null,results)};checkForLegacyModules=function(target){for(var result,names=target.split("/"),object=dojo.global[names[0]],i=1;object&&i<names.length-1;object=object[names[i++]]);if(object){result=object[names[i]];if(!result)result=object[names[i].replace(/-/g,"_")];if(result)cache[target]=result}return result};thisModule.getLocalization=function(moduleName,bundleName,locale){var result,l10nName=getBundleName(moduleName,
bundleName,locale);load(l10nName,!isXd(l10nName,require)?function(deps,callback){syncRequire(deps,callback,require)}:require,function(result_){result=result_});return result};if(has("dojo-unit-tests"))unitTests.push(function(doh){doh.register("tests.i18n.unit",function(t){var check;check=evalBundle("{prop:1}",checkForLegacyModules,"nonsense",amdValue);t.is({prop:1},check);t.is(undefined,check[1]);check=evalBundle("({prop:1})",checkForLegacyModules,"nonsense",amdValue);t.is({prop:1},check);t.is(undefined,
check[1]);check=evalBundle("{'prop-x':1}",checkForLegacyModules,"nonsense",amdValue);t.is({"prop-x":1},check);t.is(undefined,check[1]);check=evalBundle("({'prop-x':1})",checkForLegacyModules,"nonsense",amdValue);t.is({"prop-x":1},check);t.is(undefined,check[1]);check=evalBundle("define({'prop-x':1})",checkForLegacyModules,"nonsense",amdValue);t.is(amdValue,check);t.is({"prop-x":1},amdValue.result);check=evalBundle("define('some/module', {'prop-x':1})",checkForLegacyModules,"nonsense",amdValue);t.is(amdValue,
check);t.is({"prop-x":1},amdValue.result);check=evalBundle("this is total nonsense and should throw an error",checkForLegacyModules,"nonsense",amdValue);t.is(check instanceof Error,true)})})}return lang.mixin(thisModule,{dynamic:true,normalize:normalize,load:load,cache:cache,getL10nName:getL10nName})})},"cbtree/CheckBox":function(){define("cbtree/CheckBox",["dijit/form/CheckBox","dojo/_base/declare","dojo/_base/event","dojo/dom-attr"],function(CheckBox,declare,event,domAttr){return declare([CheckBox],
{baseClass:"cbtreeCheckBox",toggleState:{"mixed":true,"true":false,"false":true},multiState:true,_getCheckedAttr:function(){return this.checked},_onClick:function(evt){if(!this.readOnly&&!this.disabled){this.toggle();return this.onClick(evt)}return event.stop(evt)},_setCheckedAttr:function(checked,priorityChange){var newState=checked,txtState;if(newState!=="mixed"||!this.multiState)newState=newState?true:false;txtState=newState=="mixed"?newState:newState?"true":"false";this._set("checked",newState);
domAttr.set(this.focusNode||this.domNode,"checked",newState);(this.focusNode||this.domNode).setAttribute("aria-checked",txtState);this._handleOnChange(newState,priorityChange);return newState},_setValueAttr:function(newValue){if(typeof newValue=="string"){this.value=newValue;domAttr.set(this.focusNode,"value",newValue)}},toggle:function(){var curState=this.get("checked");var nxtState;if(!this.readOnly&&!this.disabled){nxtState=this.toggleState[curState.toString()];curState=this._setCheckedAttr(nxtState!==
undefined?nxtState:true)}return curState}})})},"dojo/store/Memory":function(){define(["../_base/declare","./util/QueryResults","./util/SimpleQueryEngine"],function(declare,QueryResults,SimpleQueryEngine){var base=null;return declare("dojo.store.Memory",base,{constructor:function(options){for(var i in options)this[i]=options[i];this.setData(this.data||[])},data:null,idProperty:"id",index:null,queryEngine:SimpleQueryEngine,get:function(id){return this.data[this.index[id]]},getIdentity:function(object){return object[this.idProperty]},
put:function(object,options){var data=this.data,index=this.index,idProperty=this.idProperty;var id=object[idProperty]=options&&"id"in options?options.id:idProperty in object?object[idProperty]:Math.random();if(id in index){if(options&&options.overwrite===false)throw new Error("Object already exists");data[index[id]]=object}else index[id]=data.push(object)-1;return id},add:function(object,options){(options=options||{}).overwrite=false;return this.put(object,options)},remove:function(id){var index=
this.index;var data=this.data;if(id in index){data.splice(index[id],1);this.setData(data);return true}},query:function(query,options){return QueryResults(this.queryEngine(query,options)(this.data))},setData:function(data){if(data.items){this.idProperty=data.identifier||this.idProperty;data=this.data=data.items}else this.data=data;this.index={};for(var i=0,l=data.length;i<l;i++)this.index[data[i][this.idProperty]]=i}})})},"xide/utils":function(){define(["../dojo/_base/declare"],function(declare){return declare("xide.utils",
null,{})})},"dojo/promise/tracer":function(){define(["../_base/lang","./Promise","../Evented"],function(lang,Promise,Evented){var evented=new Evented;var emit=evented.emit;evented.emit=null;function emitAsync(args){setTimeout(function(){emit.apply(evented,args)},0)}Promise.prototype.trace=function(){var args=lang._toArray(arguments);this.then(function(value){emitAsync(["resolved",value].concat(args))},function(error){emitAsync(["rejected",error].concat(args))},function(update){emitAsync(["progress",
update].concat(args))});return this};Promise.prototype.traceRejected=function(){var args=lang._toArray(arguments);this.otherwise(function(error){emitAsync(["rejected",error].concat(args))});return this};return evented})},"dojo/request":function(){define(["./request/default!"],function(request){return request})},"xas/manager/ServerActionBase":function(){define(["dojo/_base/declare","dojo/rpc/JsonService","xapp/manager/ManagerBase"],function(declare,JsonService,ManagerBase){return dojo.declare("xas.manager.ServerActionBase",
[ManagerBase],{serviceObject:null,uuid:null,applicationId:null,serverActionName:null,buildsReadyCB:null,init:function(){this.check()},_initService:function(){var ctxo=sctx;if(mctx!=null&&mctx.getSession&&mctx.getSession())ctxo=mctx;var sessionObject=ctxo.getSession();if(!sessionObject)sessionObject=null;if(!this.serviceObject)this.serviceObject=new JsonService(sessionObject.getServicePath()+this.serverActionName+".action?")},check:function(){if(!this.serviceObject)this._initService()}})})},"xfile/config":function(){define("xfile/config",
["dojo/_base/declare","xide/types"],function(declare,types){types.config={ROOT_NODE:"xFileRoot",FILES_STORE_URL:"",FILE_SERVICE:"",FILE_SERVICE_FULL:"",DOWNLOAD_URL:null,UPLOAD_URL:null,CODDE_MIRROR:"",THEME_ROOT:"",WEB_ROOT:"",REPO_URL:"",START_PATH:"./",FILES_STORE_PROTO:null,FILES_STORE_SERVICE_CLASS:null,FILES_MODEL_PROTO:null,IS_MEDIA_PICKER:null,EDITOR_NODE:null,EDITOR_AFTER_NODE:null,ACTION_TOOLBAR:null,ALLOWED_DISPLAY_MODES:{TREE:1,LIST:1,THUMB:1},LAYOUT_PRESET:null};return types})},"dijit/form/Select":function(){require({cache:{"url:dijit/form/templates/Select.html":'\x3ctable class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tdata-dojo-attach-point\x3d"_buttonNode,tableNode,focusNode,_popupStateNode" cellspacing\x3d\'0\' cellpadding\x3d\'0\'\n\trole\x3d"listbox" aria-haspopup\x3d"true"\n\t\x3e\x3ctbody role\x3d"presentation"\x3e\x3ctr role\x3d"presentation"\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitStretch dijitButtonContents" role\x3d"presentation"\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitButtonText"  data-dojo-attach-point\x3d"containerNode,textDirNode" role\x3d"presentation"\x3e\x3c/div\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitValidationContainer"\n\t\t\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value\x3d"\x26#935; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t\t/\x3e\x3c/div\n\t\t\t\x3e\x3cinput type\x3d"hidden" ${!nameAttrSetting} data-dojo-attach-point\x3d"valueNode" value\x3d"${value}" aria-hidden\x3d"true"\n\t\t/\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer"\n\t\t\tdata-dojo-attach-point\x3d"titleNode" role\x3d"presentation"\n\t\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitArrowButtonInner" value\x3d"\x26#9660; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t\t\t${_buttonInputDisabled}\n\t\t/\x3e\x3c/td\n\t\x3e\x3c/tr\x3e\x3c/tbody\n\x3e\x3c/table\x3e\n'}});
define("dijit/form/Select",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/i18n","dojo/_base/lang","dojo/on","dojo/sniff","./_FormSelectWidget","../_HasDropDown","../DropDownMenu","../MenuItem","../MenuSeparator","../Tooltip","../_KeyNavMixin","../registry","dojo/text!./templates/Select.html","dojo/i18n!./nls/validate"],function(array,declare,domAttr,domClass,domGeometry,i18n,lang,on,has,_FormSelectWidget,_HasDropDown,DropDownMenu,MenuItem,MenuSeparator,
Tooltip,_KeyNavMixin,registry,template){var _SelectMenu=declare("dijit.form._SelectMenu",DropDownMenu,{autoFocus:true,buildRendering:function(){this.inherited(arguments);this.domNode.setAttribute("role","listbox")},postCreate:function(){this.inherited(arguments);this.own(on(this.domNode,"selectstart",function(evt){evt.preventDefault();evt.stopPropagation()}))},focus:function(){var found=false,val=this.parentWidget.value;if(lang.isArray(val))val=val[val.length-1];if(val)array.forEach(this.parentWidget._getChildren(),
function(child){if(child.option&&val===child.option.value){found=true;this.focusChild(child,false)}},this);if(!found)this.inherited(arguments)}});var Select=declare("dijit.form.Select"+(0?"_NoBidi":""),[_KeyNavMixin,_FormSelectWidget,_HasDropDown],{baseClass:"dijitSelect dijitValidationTextBox",templateString:template,_buttonInputDisabled:has("ie")?"disabled":"",required:false,state:"",message:"",tooltipPosition:[],emptyLabel:"\x26#160;",_isLoaded:false,_childrenLoaded:false,_fillContent:function(){this.inherited(arguments);
if(this.options.length&&!this.value&&this.srcNodeRef){var si=this.srcNodeRef.selectedIndex||0;this._set("value",this.options[si>=0?si:0].value)}this.dropDown=new _SelectMenu({id:this.id+"_menu",parentWidget:this});domClass.add(this.dropDown.domNode,this.baseClass.replace(/\s+|$/g,"Menu "))},_getMenuItemForOption:function(option){if(!option.value&&!option.label)return new MenuSeparator({ownerDocument:this.ownerDocument});else{var click=lang.hitch(this,"_setValueAttr",option);var item=new MenuItem({option:option,
label:option.label||this.emptyLabel,onClick:click,ownerDocument:this.ownerDocument,dir:this.dir,textDir:this.textDir,disabled:option.disabled||false});item.focusNode.setAttribute("role","option");return item}},_addOptionItem:function(option){if(this.dropDown)this.dropDown.addChild(this._getMenuItemForOption(option))},_getChildren:function(){if(!this.dropDown)return[];return this.dropDown.getChildren()},focusChild:function(widget){if(widget)this.set("value",widget.option)},_getFirst:function(){var children=
this._getChildren();return children.length?children[0]:null},_getLast:function(){var children=this._getChildren();return children.length?children[children.length-1]:null},childSelector:function(node){var node=registry.byNode(node);return node&&node.getParent()==this.dropDown},onKeyboardSearch:function(item,evt,searchString,numMatches){if(item)this.focusChild(item)},_loadChildren:function(loadMenuItems){if(loadMenuItems===true){if(this.dropDown){delete this.dropDown.focusedChild;this.focusedChild=
null}if(this.options.length)this.inherited(arguments);else{array.forEach(this._getChildren(),function(child){child.destroyRecursive()});var item=new MenuItem({ownerDocument:this.ownerDocument,label:this.emptyLabel});this.dropDown.addChild(item)}}else this._updateSelection();this._isLoaded=false;this._childrenLoaded=true;if(!this._loadingStore)this._setValueAttr(this.value,false)},_refreshState:function(){if(this._started)this.validate(this.focused)},startup:function(){this.inherited(arguments);this._refreshState()},
_setValueAttr:function(value){this.inherited(arguments);domAttr.set(this.valueNode,"value",this.get("value"));this._refreshState()},_setNameAttr:"valueNode",_setDisabledAttr:function(value){this.inherited(arguments);this._refreshState()},_setRequiredAttr:function(value){this._set("required",value);this.focusNode.setAttribute("aria-required",value);this._refreshState()},_setOptionsAttr:function(options){this._isLoaded=false;this._set("options",options)},_setDisplay:function(newDisplay){var lbl=newDisplay||
this.emptyLabel;this.containerNode.innerHTML='\x3cspan role\x3d"option" class\x3d"dijitReset dijitInline '+this.baseClass.replace(/\s+|$/g,"Label ")+'"\x3e'+lbl+"\x3c/span\x3e"},validate:function(isFocused){var isValid=this.disabled||this.isValid(isFocused);this._set("state",isValid?"":this._hasBeenBlurred?"Error":"Incomplete");this.focusNode.setAttribute("aria-invalid",isValid?"false":"true");var message=isValid?"":this._missingMsg;if(message&&this.focused&&this._hasBeenBlurred)Tooltip.show(message,
this.domNode,this.tooltipPosition,!this.isLeftToRight());else Tooltip.hide(this.domNode);this._set("message",message);return isValid},isValid:function(){return!this.required||this.value===0||!/^\s*$/.test(this.value||"")},reset:function(){this.inherited(arguments);Tooltip.hide(this.domNode);this._refreshState()},postMixInProperties:function(){this.inherited(arguments);this._missingMsg=i18n.getLocalization("dijit.form","validate",this.lang).missingMessage},postCreate:function(){this.inherited(arguments);
this.own(on(this.domNode,"selectstart",function(evt){evt.preventDefault();evt.stopPropagation()}));this.domNode.setAttribute("aria-expanded","false");if(has("ie")<9)this.defer(function(){try{var s=domStyle.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var inputs=this.domNode.getElementsByTagName("INPUT");if(inputs)for(var i=0;i<inputs.length;i++)inputs[i].style.fontFamily=ff}}}catch(e){}})},_setStyleAttr:function(value){this.inherited(arguments);domClass.toggle(this.domNode,this.baseClass.replace(/\s+|$/g,
"FixedWidth "),!!this.domNode.style.width)},isLoaded:function(){return this._isLoaded},loadDropDown:function(loadCallback){this._loadChildren(true);this._isLoaded=true;loadCallback()},destroy:function(preserveDom){if(this.dropDown&&!this.dropDown._destroyed){this.dropDown.destroyRecursive(preserveDom);delete this.dropDown}this.inherited(arguments)},_onFocus:function(){this.validate(true);this.inherited(arguments)},_onBlur:function(){Tooltip.hide(this.domNode);this.inherited(arguments);this.validate(false)}});
if(0)Select=declare("dijit.form.Select",Select,{_setDisplay:function(newDisplay){this.inherited(arguments);this.applyTextDir(this.containerNode)}});Select._Menu=_SelectMenu;function _onEventAfterLoad(method){return function(evt){if(!this._isLoaded)this.loadDropDown(lang.hitch(this,method,evt));else this.inherited(method,arguments)}}Select.prototype._onContainerKeydown=_onEventAfterLoad("_onContainerKeydown");Select.prototype._onContainerKeypress=_onEventAfterLoad("_onContainerKeypress");return Select})},
"xfile/factory":function(){define("xfile/factory",["dojo/_base/declare"],function(declare){return declare("xfile.factory",null,{})})},"dojo/has":function(){define(["require","module"],function(require,module){var has=require.has||function(){};if(!1){var isBrowser=typeof window!="undefined"&&typeof location!="undefined"&&typeof document!="undefined"&&window.location==location&&window.document==document,global=this,doc=isBrowser&&document,element=doc&&doc.createElement("DiV"),cache=module.config&&module.config()||
{};has=function(name){return typeof cache[name]=="function"?cache[name]=cache[name](global,doc,element):cache[name]};has.cache=cache;has.add=function(name,test,now,force){(typeof cache[name]=="undefined"||force)&&(cache[name]=test);return now&&has(name)};1||has.add("host-browser",isBrowser);0&&has.add("host-node",typeof process=="object"&&process.versions&&process.versions.node&&process.versions.v8);0&&has.add("host-rhino",typeof load=="function"&&(typeof Packages=="function"||typeof Packages=="object"));
1||has.add("dom",isBrowser);1||has.add("dojo-dom-ready-api",1);1||has.add("dojo-sniff",1)}if(1){has.add("dom-addeventlistener",!!document.addEventListener);has.add("touch","ontouchstart"in document||window.navigator.msMaxTouchPoints>0);has.add("device-width",screen.availWidth||innerWidth);var form=document.createElement("form");has.add("dom-attributes-explicit",form.attributes.length==0);has.add("dom-attributes-specified-flag",form.attributes.length>0&&form.attributes.length<40)}has.clearElement=
function(element){element.innerHTML="";return element};has.normalize=function(id,toAbsMid){var tokens=id.match(/[\?:]|[^:\?]*/g),i=0,get=function(skip){var term=tokens[i++];if(term==":")return 0;else{if(tokens[i++]=="?")if(!skip&&has(term))return get();else{get(true);return get(skip)}return term||0}};id=get();return id&&toAbsMid(id)};has.load=function(id,parentRequire,loaded){if(id)parentRequire([id],loaded);else loaded()};return has})},"url:dijit/form/templates/Select.html":'\x3ctable class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tdata-dojo-attach-point\x3d"_buttonNode,tableNode,focusNode,_popupStateNode" cellspacing\x3d\'0\' cellpadding\x3d\'0\'\n\trole\x3d"listbox" aria-haspopup\x3d"true"\n\t\x3e\x3ctbody role\x3d"presentation"\x3e\x3ctr role\x3d"presentation"\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitStretch dijitButtonContents" role\x3d"presentation"\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitButtonText"  data-dojo-attach-point\x3d"containerNode,textDirNode" role\x3d"presentation"\x3e\x3c/div\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitValidationContainer"\n\t\t\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value\x3d"\x26#935; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t\t/\x3e\x3c/div\n\t\t\t\x3e\x3cinput type\x3d"hidden" ${!nameAttrSetting} data-dojo-attach-point\x3d"valueNode" value\x3d"${value}" aria-hidden\x3d"true"\n\t\t/\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer"\n\t\t\tdata-dojo-attach-point\x3d"titleNode" role\x3d"presentation"\n\t\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitArrowButtonInner" value\x3d"\x26#9660; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t\t\t\t${_buttonInputDisabled}\n\t\t/\x3e\x3c/td\n\t\x3e\x3c/tr\x3e\x3c/tbody\n\x3e\x3c/table\x3e\n',
"dgrid/extensions/Pagination":function(){define(["../_StoreMixin","dojo/_base/declare","dojo/_base/array","dojo/_base/lang","dojo/_base/Deferred","dojo/on","dojo/query","dojo/string","dojo/has","put-selector/put","dojo/i18n!./nls/pagination","dojo/_base/sniff","xstyle/css!../css/extensions/Pagination.css"],function(_StoreMixin,declare,arrayUtil,lang,Deferred,on,query,string,has,put,i18n){function cleanupContent(grid){if(grid.noDataNode){put(grid.noDataNode,"!");delete grid.noDataNode}else grid.cleanup();
grid.contentNode.innerHTML=""}function cleanupLoading(grid){if(grid.loadingNode){put(grid.loadingNode,"!");delete grid.loadingNode}else if(grid._oldPageNodes){for(var id in grid._oldPageNodes)grid.removeRow(grid._oldPageNodes[id]);delete grid._oldPageNodes;if(grid._oldPageObserver){grid._oldPageObserver.cancel();grid._numObservers--;delete grid._oldPageObserver}}delete grid._isLoading}return declare(_StoreMixin,{rowsPerPage:10,pagingTextBox:false,previousNextArrows:true,firstLastArrows:false,pagingLinks:2,
pageSizeOptions:null,showLoadingMessage:true,i18nPagination:i18n,showFooter:true,_currentPage:1,_total:0,buildRendering:function(){this.inherited(arguments);var grid=this,paginationNode=this.paginationNode=put(this.footerNode,"div.dgrid-pagination"),statusNode=this.paginationStatusNode=put(paginationNode,"div.dgrid-status"),i18n=this.i18nPagination,navigationNode,node,i;statusNode.tabIndex=0;this._updatePaginationSizeSelect();this._updateRowsPerPageOption();statusNode.innerHTML=string.substitute(i18n.status,
{start:1,end:1,total:0});navigationNode=this.paginationNavigationNode=put(paginationNode,"div.dgrid-navigation");if(this.firstLastArrows){node=this.paginationFirstNode=put(navigationNode,"span.dgrid-first.dgrid-page-link","\u00ab");node.setAttribute("aria-label",i18n.gotoFirst);node.tabIndex=0}if(this.previousNextArrows){node=this.paginationPreviousNode=put(navigationNode,"span.dgrid-previous.dgrid-page-link","\u2039");node.setAttribute("aria-label",i18n.gotoPrev);node.tabIndex=0}this.paginationLinksNode=
put(navigationNode,"span.dgrid-pagination-links");if(this.previousNextArrows){node=this.paginationNextNode=put(navigationNode,"span.dgrid-next.dgrid-page-link","\u203a");node.setAttribute("aria-label",i18n.gotoNext);node.tabIndex=0}if(this.firstLastArrows){node=this.paginationLastNode=put(navigationNode,"span.dgrid-last.dgrid-page-link","\u00bb");node.setAttribute("aria-label",i18n.gotoLast);node.tabIndex=0}this._listeners.push(on(navigationNode,".dgrid-page-link:click,.dgrid-page-link:keydown",function(event){if(event.type===
"keydown"&&event.keyCode!==13)return;var cls=this.className,curr,max;if(grid._isLoading||cls.indexOf("dgrid-page-disabled")>-1)return;curr=grid._currentPage;max=Math.ceil(grid._total/grid.rowsPerPage);if(this===grid.paginationPreviousNode)grid.gotoPage(curr-1);else if(this===grid.paginationNextNode)grid.gotoPage(curr+1);else if(this===grid.paginationFirstNode)grid.gotoPage(1);else if(this===grid.paginationLastNode)grid.gotoPage(max);else if(cls==="dgrid-page-link")grid.gotoPage(+this.innerHTML,true)}))},
destroy:function(){this.inherited(arguments);if(this._pagingTextBoxHandle)this._pagingTextBoxHandle.remove()},_updatePaginationSizeSelect:function(){var pageSizeOptions=this.pageSizeOptions,paginationSizeSelect=this.paginationSizeSelect,handle;if(pageSizeOptions&&pageSizeOptions.length){if(!paginationSizeSelect){paginationSizeSelect=this.paginationSizeSelect=put(this.paginationNode,"select.dgrid-page-size");handle=this._paginationSizeChangeHandle=on(paginationSizeSelect,"change",lang.hitch(this,function(){this.set("rowsPerPage",
+this.paginationSizeSelect.value)}));this._listeners.push(handle)}paginationSizeSelect.options.length=0;for(i=0;i<pageSizeOptions.length;i++)put(paginationSizeSelect,"option",pageSizeOptions[i],{value:pageSizeOptions[i],selected:this.rowsPerPage===pageSizeOptions[i]});this._updateRowsPerPageOption()}else if(!(pageSizeOptions&&pageSizeOptions.length)&&paginationSizeSelect){put(paginationSizeSelect,"!");this.paginationSizeSelect=null;this._paginationSizeChangeHandle.remove()}},_setPageSizeOptions:function(pageSizeOptions){this.pageSizeOptions=
pageSizeOptions&&pageSizeOptions.sort(function(a,b){return a-b});this._updatePaginationSizeSelect()},_updateRowsPerPageOption:function(){var rowsPerPage=this.rowsPerPage,pageSizeOptions=this.pageSizeOptions,paginationSizeSelect=this.paginationSizeSelect;if(paginationSizeSelect)if(arrayUtil.indexOf(pageSizeOptions,rowsPerPage)<0)this._setPageSizeOptions(pageSizeOptions.concat([rowsPerPage]));else paginationSizeSelect.value=""+rowsPerPage},_setRowsPerPage:function(rowsPerPage){this.rowsPerPage=rowsPerPage;
this._updateRowsPerPageOption();this.gotoPage(1)},_updateNavigation:function(focusLink){var grid=this,i18n=this.i18nPagination,linksNode=this.paginationLinksNode,currentPage=this._currentPage,pagingLinks=this.pagingLinks,paginationNavigationNode=this.paginationNavigationNode,end=Math.ceil(this._total/this.rowsPerPage),pagingTextBoxHandle=this._pagingTextBoxHandle;function pageLink(page,addSpace){var link;if(grid.pagingTextBox&&page==currentPage&&end>1){link=put(linksNode,"input.dgrid-page-input[type\x3dtext][value\x3d$]",
currentPage);link.setAttribute("aria-label",i18n.jumpPage);grid._pagingTextBoxHandle=on(link,"change",function(){var value=+this.value;if(!isNaN(value)&&value>0&&value<=end)grid.gotoPage(+this.value,true)})}else{link=put(linksNode,"span"+(page==currentPage?".dgrid-page-disabled":"")+".dgrid-page-link",page+(addSpace?" ":""));link.setAttribute("aria-label",i18n.gotoPage);link.tabIndex=0}if(page==currentPage&&focusLink)link.focus()}if(pagingTextBoxHandle)pagingTextBoxHandle.remove();linksNode.innerHTML=
"";query(".dgrid-first, .dgrid-previous",paginationNavigationNode).forEach(function(link){put(link,(currentPage==1?".":"!")+"dgrid-page-disabled")});query(".dgrid-last, .dgrid-next",paginationNavigationNode).forEach(function(link){put(link,(currentPage>=end?".":"!")+"dgrid-page-disabled")});if(pagingLinks&&end>0){pageLink(1,true);var start=currentPage-pagingLinks;if(start>2)put(linksNode,"span.dgrid-page-skip","...");else start=2;for(var i=start;i<Math.min(currentPage+pagingLinks+1,end);i++)pageLink(i,
true);if(currentPage+pagingLinks+1<end)put(linksNode,"span.dgrid-page-skip","...");if(end>1)pageLink(end)}else if(grid.pagingTextBox)pageLink(currentPage)},refresh:function(){var self=this;this.inherited(arguments);if(!this.store){0&&console.warn("Pagination requires a store to operate.");return}return this.gotoPage(1).then(function(results){setTimeout(function(){on.emit(self.domNode,"dgrid-refresh-complete",{bubbles:true,cancelable:false,grid:self,results:results})},0);return results})},_onNotification:function(rows){if(rows.length!==
this._rowsOnPage)this.gotoPage(this._currentPage)},renderArray:function(results,beforeNode){var grid=this,rows=this.inherited(arguments);this._lastCollection=null;if(!beforeNode){if(this._topLevelRequest&&this._topLevelRequest!==results){this._topLevelRequest.cancel();delete this._topLevelRequest}if(typeof results.cancel==="function")this._topLevelRequest=results;Deferred.when(results,function(){if(grid._topLevelRequest)delete grid._topLevelRequest})}return rows},insertRow:function(){var oldNodes=
this._oldPageNodes,row=this.inherited(arguments);if(oldNodes&&row===oldNodes[row.id])delete oldNodes[row.id];return row},gotoPage:function(page,focusLink){var grid=this,dfd=new Deferred;var result=this._trackError(function(){var count=grid.rowsPerPage,start=(page-1)*count,options=lang.mixin(grid.get("queryOptions"),{start:start,count:count}),results,contentNode=grid.contentNode,loadingNode,oldNodes,children,i,len;if(grid.showLoadingMessage){cleanupContent(grid);loadingNode=grid.loadingNode=put(contentNode,
"div.dgrid-loading");loadingNode.innerHTML=grid.loadingMessage}else{grid._oldPageNodes=oldNodes={};children=contentNode.children;for(i=0,len=children.length;i<len;i++)oldNodes[children[i].id]=children[i];grid._oldPageObserver=grid.observers.pop()}grid._isLoading=true;results=grid.store.query(grid.query,options);Deferred.when(grid.renderArray(results,null,options),function(rows){cleanupLoading(grid);grid.scrollTo({y:0});Deferred.when(results.total,function(total){if(!total){if(grid.noDataNode){put(grid.noDataNode,
"!");delete grid.noDataNode}grid.noDataNode=put(grid.contentNode,"div.dgrid-no-data");grid.noDataNode.innerHTML=grid.noDataMessage}grid.paginationStatusNode.innerHTML=string.substitute(grid.i18nPagination.status,{start:Math.min(start+1,total),end:Math.min(total,start+count),total:total});grid._total=total;grid._currentPage=page;grid._rowsOnPage=rows.length;grid._updateNavigation(focusLink)});if(has("ie")<7||has("ie")&&has("quirks"))grid.resize();dfd.resolve(results)},function(error){cleanupLoading(grid);
dfd.reject(error)});return dfd.promise});if(!result)dfd.reject();return dfd.promise}})})},"dojo/data/ItemFileWriteStore":function(){define(["../_base/lang","../_base/declare","../_base/array","../_base/json","../_base/kernel","./ItemFileReadStore","../date/stamp"],function(lang,declare,arrayUtil,jsonUtil,kernel,ItemFileReadStore,dateStamp){return declare("dojo.data.ItemFileWriteStore",ItemFileReadStore,{constructor:function(keywordParameters){this._features["dojo.data.api.Write"]=true;this._features["dojo.data.api.Notification"]=
true;this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};if(!this._datatypeMap["Date"].serialize)this._datatypeMap["Date"].serialize=function(obj){return dateStamp.toISOString(obj,{zulu:true})};if(keywordParameters&&keywordParameters.referenceIntegrity===false)this.referenceIntegrity=false;this._saveInProgress=false},referenceIntegrity:true,_assert:function(condition){if(!condition)throw new Error("assertion failed in ItemFileWriteStore");},_getIdentifierAttribute:function(){return this.getFeatures()["dojo.data.api.Identity"]},
newItem:function(keywordArgs,parentInfo){this._assert(!this._saveInProgress);if(!this._loadFinished)this._forceLoad();if(typeof keywordArgs!="object"&&typeof keywordArgs!="undefined")throw new Error("newItem() was passed something other than an object");var newIdentity=null;var identifierAttribute=this._getIdentifierAttribute();if(identifierAttribute===Number)newIdentity=this._arrayOfAllItems.length;else{newIdentity=keywordArgs[identifierAttribute];if(typeof newIdentity==="undefined")throw new Error("newItem() was not passed an identity for the new item");
if(lang.isArray(newIdentity))throw new Error("newItem() was not passed an single-valued identity");}if(this._itemsByIdentity)this._assert(typeof this._itemsByIdentity[newIdentity]==="undefined");this._assert(typeof this._pending._newItems[newIdentity]==="undefined");this._assert(typeof this._pending._deletedItems[newIdentity]==="undefined");var newItem={};newItem[this._storeRefPropName]=this;newItem[this._itemNumPropName]=this._arrayOfAllItems.length;if(this._itemsByIdentity){this._itemsByIdentity[newIdentity]=
newItem;newItem[identifierAttribute]=[newIdentity]}this._arrayOfAllItems.push(newItem);var pInfo=null;if(parentInfo&&parentInfo.parent&&parentInfo.attribute){pInfo={item:parentInfo.parent,attribute:parentInfo.attribute,oldValue:undefined};var values=this.getValues(parentInfo.parent,parentInfo.attribute);if(values&&values.length>0){var tempValues=values.slice(0,values.length);if(values.length===1)pInfo.oldValue=values[0];else pInfo.oldValue=values.slice(0,values.length);tempValues.push(newItem);this._setValueOrValues(parentInfo.parent,
parentInfo.attribute,tempValues,false);pInfo.newValue=this.getValues(parentInfo.parent,parentInfo.attribute)}else{this._setValueOrValues(parentInfo.parent,parentInfo.attribute,newItem,false);pInfo.newValue=newItem}}else{newItem[this._rootItemPropName]=true;this._arrayOfTopLevelItems.push(newItem)}this._pending._newItems[newIdentity]=newItem;for(var key in keywordArgs){if(key===this._storeRefPropName||key===this._itemNumPropName)throw new Error("encountered bug in ItemFileWriteStore.newItem");var value=
keywordArgs[key];if(!lang.isArray(value))value=[value];newItem[key]=value;if(this.referenceIntegrity)for(var i=0;i<value.length;i++){var val=value[i];if(this.isItem(val))this._addReferenceToMap(val,newItem,key)}}this.onNew(newItem,pInfo);return newItem},_removeArrayElement:function(array,element){var index=arrayUtil.indexOf(array,element);if(index!=-1){array.splice(index,1);return true}return false},deleteItem:function(item){this._assert(!this._saveInProgress);this._assertIsItem(item);var indexInArrayOfAllItems=
item[this._itemNumPropName];var identity=this.getIdentity(item);if(this.referenceIntegrity){var attributes=this.getAttributes(item);if(item[this._reverseRefMap])item["backup_"+this._reverseRefMap]=lang.clone(item[this._reverseRefMap]);arrayUtil.forEach(attributes,function(attribute){arrayUtil.forEach(this.getValues(item,attribute),function(value){if(this.isItem(value)){if(!item["backupRefs_"+this._reverseRefMap])item["backupRefs_"+this._reverseRefMap]=[];item["backupRefs_"+this._reverseRefMap].push({id:this.getIdentity(value),
attr:attribute});this._removeReferenceFromMap(value,item,attribute)}},this)},this);var references=item[this._reverseRefMap];if(references)for(var itemId in references){var containingItem=null;if(this._itemsByIdentity)containingItem=this._itemsByIdentity[itemId];else containingItem=this._arrayOfAllItems[itemId];if(containingItem)for(var attribute in references[itemId]){var oldValues=this.getValues(containingItem,attribute)||[];var newValues=arrayUtil.filter(oldValues,function(possibleItem){return!(this.isItem(possibleItem)&&
this.getIdentity(possibleItem)==identity)},this);this._removeReferenceFromMap(item,containingItem,attribute);if(newValues.length<oldValues.length)this._setValueOrValues(containingItem,attribute,newValues,true)}}}this._arrayOfAllItems[indexInArrayOfAllItems]=null;item[this._storeRefPropName]=null;if(this._itemsByIdentity)delete this._itemsByIdentity[identity];this._pending._deletedItems[identity]=item;if(item[this._rootItemPropName])this._removeArrayElement(this._arrayOfTopLevelItems,item);this.onDelete(item);
return true},setValue:function(item,attribute,value){return this._setValueOrValues(item,attribute,value,true)},setValues:function(item,attribute,values){return this._setValueOrValues(item,attribute,values,true)},unsetAttribute:function(item,attribute){return this._setValueOrValues(item,attribute,[],true)},_setValueOrValues:function(item,attribute,newValueOrValues,callOnSet){this._assert(!this._saveInProgress);this._assertIsItem(item);this._assert(lang.isString(attribute));this._assert(typeof newValueOrValues!==
"undefined");var identifierAttribute=this._getIdentifierAttribute();if(attribute==identifierAttribute)throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");var oldValueOrValues=this._getValueOrValues(item,attribute);var identity=this.getIdentity(item);if(!this._pending._modifiedItems[identity]){var copyOfItemState={};for(var key in item)if(key===this._storeRefPropName||key===this._itemNumPropName||key===this._rootItemPropName)copyOfItemState[key]=
item[key];else if(key===this._reverseRefMap)copyOfItemState[key]=lang.clone(item[key]);else copyOfItemState[key]=item[key].slice(0,item[key].length);this._pending._modifiedItems[identity]=copyOfItemState}var success=false;if(lang.isArray(newValueOrValues)&&newValueOrValues.length===0){success=delete item[attribute];newValueOrValues=undefined;if(this.referenceIntegrity&&oldValueOrValues){var oldValues=oldValueOrValues;if(!lang.isArray(oldValues))oldValues=[oldValues];for(var i=0;i<oldValues.length;i++){var value=
oldValues[i];if(this.isItem(value))this._removeReferenceFromMap(value,item,attribute)}}}else{var newValueArray;if(lang.isArray(newValueOrValues))newValueArray=newValueOrValues.slice(0,newValueOrValues.length);else newValueArray=[newValueOrValues];if(this.referenceIntegrity)if(oldValueOrValues){var oldValues=oldValueOrValues;if(!lang.isArray(oldValues))oldValues=[oldValues];var map={};arrayUtil.forEach(oldValues,function(possibleItem){if(this.isItem(possibleItem)){var id=this.getIdentity(possibleItem);
map[id.toString()]=true}},this);arrayUtil.forEach(newValueArray,function(possibleItem){if(this.isItem(possibleItem)){var id=this.getIdentity(possibleItem);if(map[id.toString()])delete map[id.toString()];else this._addReferenceToMap(possibleItem,item,attribute)}},this);for(var rId in map){var removedItem;if(this._itemsByIdentity)removedItem=this._itemsByIdentity[rId];else removedItem=this._arrayOfAllItems[rId];this._removeReferenceFromMap(removedItem,item,attribute)}}else for(var i=0;i<newValueArray.length;i++){var value=
newValueArray[i];if(this.isItem(value))this._addReferenceToMap(value,item,attribute)}item[attribute]=newValueArray;success=true}if(callOnSet)this.onSet(item,attribute,oldValueOrValues,newValueOrValues);return success},_addReferenceToMap:function(refItem,parentItem,attribute){var parentId=this.getIdentity(parentItem);var references=refItem[this._reverseRefMap];if(!references)references=refItem[this._reverseRefMap]={};var itemRef=references[parentId];if(!itemRef)itemRef=references[parentId]={};itemRef[attribute]=
true},_removeReferenceFromMap:function(refItem,parentItem,attribute){var identity=this.getIdentity(parentItem);var references=refItem[this._reverseRefMap];var itemId;if(references){for(itemId in references)if(itemId==identity){delete references[itemId][attribute];if(this._isEmpty(references[itemId]))delete references[itemId]}if(this._isEmpty(references))delete refItem[this._reverseRefMap]}},_dumpReferenceMap:function(){var i;for(i=0;i<this._arrayOfAllItems.length;i++){var item=this._arrayOfAllItems[i];
if(item&&item[this._reverseRefMap])0&&console.log("Item: ["+this.getIdentity(item)+"] is referenced by: "+jsonUtil.toJson(item[this._reverseRefMap]))}},_getValueOrValues:function(item,attribute){var valueOrValues=undefined;if(this.hasAttribute(item,attribute)){var valueArray=this.getValues(item,attribute);if(valueArray.length==1)valueOrValues=valueArray[0];else valueOrValues=valueArray}return valueOrValues},_flatten:function(value){if(this.isItem(value))return{_reference:this.getIdentity(value)};
else{if(typeof value==="object")for(var type in this._datatypeMap){var typeMap=this._datatypeMap[type];if(lang.isObject(typeMap)&&!lang.isFunction(typeMap)){if(value instanceof typeMap.type){if(!typeMap.serialize)throw new Error("ItemFileWriteStore:  No serializer defined for type mapping: ["+type+"]");return{_type:type,_value:typeMap.serialize(value)}}}else if(value instanceof typeMap)return{_type:type,_value:value.toString()}}return value}},_getNewFileContentString:function(){var serializableStructure=
{};var identifierAttribute=this._getIdentifierAttribute();if(identifierAttribute!==Number)serializableStructure.identifier=identifierAttribute;if(this._labelAttr)serializableStructure.label=this._labelAttr;serializableStructure.items=[];for(var i=0;i<this._arrayOfAllItems.length;++i){var item=this._arrayOfAllItems[i];if(item!==null){var serializableItem={};for(var key in item)if(key!==this._storeRefPropName&&key!==this._itemNumPropName&&key!==this._reverseRefMap&&key!==this._rootItemPropName){var valueArray=
this.getValues(item,key);if(valueArray.length==1)serializableItem[key]=this._flatten(valueArray[0]);else{var serializableArray=[];for(var j=0;j<valueArray.length;++j){serializableArray.push(this._flatten(valueArray[j]));serializableItem[key]=serializableArray}}}serializableStructure.items.push(serializableItem)}}var prettyPrint=true;return jsonUtil.toJson(serializableStructure,prettyPrint)},_isEmpty:function(something){var empty=true;if(lang.isObject(something)){var i;for(i in something){empty=false;
break}}else if(lang.isArray(something))if(something.length>0)empty=false;return empty},save:function(keywordArgs){this._assert(!this._saveInProgress);this._saveInProgress=true;var self=this;var saveCompleteCallback=function(){self._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};self._saveInProgress=false;if(keywordArgs&&keywordArgs.onComplete){var scope=keywordArgs.scope||kernel.global;keywordArgs.onComplete.call(scope)}};var saveFailedCallback=function(err){self._saveInProgress=false;
if(keywordArgs&&keywordArgs.onError){var scope=keywordArgs.scope||kernel.global;keywordArgs.onError.call(scope,err)}};if(this._saveEverything){var newFileContentString=this._getNewFileContentString();this._saveEverything(saveCompleteCallback,saveFailedCallback,newFileContentString)}if(this._saveCustom)this._saveCustom(saveCompleteCallback,saveFailedCallback);if(!this._saveEverything&&!this._saveCustom)saveCompleteCallback()},revert:function(){this._assert(!this._saveInProgress);var identity;for(identity in this._pending._modifiedItems){var copyOfItemState=
this._pending._modifiedItems[identity];var modifiedItem=null;if(this._itemsByIdentity)modifiedItem=this._itemsByIdentity[identity];else modifiedItem=this._arrayOfAllItems[identity];copyOfItemState[this._storeRefPropName]=this;for(var key in modifiedItem)delete modifiedItem[key];lang.mixin(modifiedItem,copyOfItemState)}var deletedItem;for(identity in this._pending._deletedItems){deletedItem=this._pending._deletedItems[identity];deletedItem[this._storeRefPropName]=this;var index=deletedItem[this._itemNumPropName];
if(deletedItem["backup_"+this._reverseRefMap]){deletedItem[this._reverseRefMap]=deletedItem["backup_"+this._reverseRefMap];delete deletedItem["backup_"+this._reverseRefMap]}this._arrayOfAllItems[index]=deletedItem;if(this._itemsByIdentity)this._itemsByIdentity[identity]=deletedItem;if(deletedItem[this._rootItemPropName])this._arrayOfTopLevelItems.push(deletedItem)}for(identity in this._pending._deletedItems){deletedItem=this._pending._deletedItems[identity];if(deletedItem["backupRefs_"+this._reverseRefMap]){arrayUtil.forEach(deletedItem["backupRefs_"+
this._reverseRefMap],function(reference){var refItem;if(this._itemsByIdentity)refItem=this._itemsByIdentity[reference.id];else refItem=this._arrayOfAllItems[reference.id];this._addReferenceToMap(refItem,deletedItem,reference.attr)},this);delete deletedItem["backupRefs_"+this._reverseRefMap]}}for(identity in this._pending._newItems){var newItem=this._pending._newItems[identity];newItem[this._storeRefPropName]=null;this._arrayOfAllItems[newItem[this._itemNumPropName]]=null;if(newItem[this._rootItemPropName])this._removeArrayElement(this._arrayOfTopLevelItems,
newItem);if(this._itemsByIdentity)delete this._itemsByIdentity[identity]}this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};return true},isDirty:function(item){if(item){var identity=this.getIdentity(item);return(new Boolean(this._pending._newItems[identity]||this._pending._modifiedItems[identity]||this._pending._deletedItems[identity])).valueOf()}else return!this._isEmpty(this._pending._newItems)||!this._isEmpty(this._pending._modifiedItems)||!this._isEmpty(this._pending._deletedItems)},
onSet:function(item,attribute,oldValue,newValue){},onNew:function(newItem,parentInfo){},onDelete:function(deletedItem){},close:function(request){if(this.clearOnClose)if(!this.isDirty())this.inherited(arguments);else throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store.  Please save or revert the changes before invoking close.");}})})},"xide/manager/ManagerBase":function(){define(["dojo/_base/declare","dojo/Stateful","xide/mixins/EventedMixin"],function(declare,
Stateful,EventedMixin){return declare("xide.types.ManagerBase",[Stateful,EventedMixin],{ctx:null,init:function(){}})})},"dijit/_base/focus":function(){define("dijit/_base/focus",["dojo/_base/array","dojo/dom","dojo/_base/lang","dojo/topic","dojo/_base/window","../focus","../main"],function(array,dom,lang,topic,win,focus,dijit){var exports={_curFocus:null,_prevFocus:null,isCollapsed:function(){return dijit.getBookmark().isCollapsed},getBookmark:function(){var bm,rg,tg,sel=win.doc.selection,cf=focus.curNode;
if(win.global.getSelection){sel=win.global.getSelection();if(sel)if(sel.isCollapsed){tg=cf?cf.tagName:"";if(tg){tg=tg.toLowerCase();if(tg=="textarea"||tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text")){sel={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};return{isCollapsed:sel.end<=sel.start,mark:sel}}}bm={isCollapsed:true};if(sel.rangeCount)bm.mark=sel.getRangeAt(0).cloneRange()}else{rg=sel.getRangeAt(0);bm={isCollapsed:false,mark:rg.cloneRange()}}}else if(sel){tg=cf?cf.tagName:
"";tg=tg.toLowerCase();if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input"))if(sel.type&&sel.type.toLowerCase()=="none")return{isCollapsed:true,mark:null};else{rg=sel.createRange();return{isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}}}bm={};try{rg=sel.createRange();bm.isCollapsed=!(sel.type=="Text"?rg.htmlText.length:rg.length)}catch(e){bm.isCollapsed=true;return bm}if(sel.type.toUpperCase()=="CONTROL")if(rg.length){bm.mark=[];var i=0,len=rg.length;while(i<len)bm.mark.push(rg.item(i++))}else{bm.isCollapsed=
true;bm.mark=null}else bm.mark=rg.getBookmark()}else 0&&console.warn("No idea how to store the current selection for this browser!");return bm},moveToBookmark:function(bookmark){var _doc=win.doc,mark=bookmark.mark;if(mark)if(win.global.getSelection){var sel=win.global.getSelection();if(sel&&sel.removeAllRanges)if(mark.pRange){var n=mark.node;n.selectionStart=mark.start;n.selectionEnd=mark.end}else{sel.removeAllRanges();sel.addRange(mark)}else 0&&console.warn("No idea how to restore selection for this browser!")}else if(_doc.selection&&
mark){var rg;if(mark.pRange)rg=mark.range;else if(lang.isArray(mark)){rg=_doc.body.createControlRange();array.forEach(mark,function(n){rg.addElement(n)})}else{rg=_doc.body.createTextRange();rg.moveToBookmark(mark)}rg.select()}},getFocus:function(menu,openedForWindow){var node=!focus.curNode||menu&&dom.isDescendant(focus.curNode,menu.domNode)?dijit._prevFocus:focus.curNode;return{node:node,bookmark:node&&node==focus.curNode&&win.withGlobal(openedForWindow||win.global,dijit.getBookmark),openedForWindow:openedForWindow}},
_activeStack:[],registerIframe:function(iframe){return focus.registerIframe(iframe)},unregisterIframe:function(handle){handle&&handle.remove()},registerWin:function(targetWindow,effectiveNode){return focus.registerWin(targetWindow,effectiveNode)},unregisterWin:function(handle){handle&&handle.remove()}};focus.focus=function(handle){if(!handle)return;var node="node"in handle?handle.node:handle,bookmark=handle.bookmark,openedForWindow=handle.openedForWindow,collapsed=bookmark?bookmark.isCollapsed:false;
if(node){var focusNode=node.tagName.toLowerCase()=="iframe"?node.contentWindow:node;if(focusNode&&focusNode.focus)try{focusNode.focus()}catch(e){}focus._onFocusNode(node)}if(bookmark&&win.withGlobal(openedForWindow||win.global,dijit.isCollapsed)&&!collapsed){if(openedForWindow)openedForWindow.focus();try{win.withGlobal(openedForWindow||win.global,dijit.moveToBookmark,null,[bookmark])}catch(e2){}}};focus.watch("curNode",function(name,oldVal,newVal){dijit._curFocus=newVal;dijit._prevFocus=oldVal;if(newVal)topic.publish("focusNode",
newVal)});focus.watch("activeStack",function(name,oldVal,newVal){dijit._activeStack=newVal});focus.on("widget-blur",function(widget,by){topic.publish("widgetBlur",widget,by)});focus.on("widget-focus",function(widget,by){topic.publish("widgetFocus",widget,by)});lang.mixin(dijit,exports);return dijit})},"dgrid/OnDemandGrid":function(){define(["dojo/_base/declare","./Grid","./OnDemandList"],function(declare,Grid,OnDemandList){return declare([Grid,OnDemandList],{})})},"dojo/cldr/nls/en-gb/number":function(){define({"currencyFormat":"\u00a4#,##0.00"})},
"dojox/mobile/sniff":function(){define("dojox/mobile/sniff",["dojo/_base/kernel","dojo/sniff"],function(kernel,has){kernel.deprecated("dojox/mobile/sniff","Use dojo/sniff instead","2.0");has.add("iphone",has("ios"));return has})},"xfile/widgets/SourceSelector":function(){define("xfile/widgets/SourceSelector",["dojo/_base/declare","dojo/_base/lang","dojo/_base/html","dojo/dom-class","dojo/on","xide/widgets/TemplatedWidgetBase","xfile/types/Types","xide/factory","dijit/MenuItem","dijit/MenuSeparator",
"dojo/aspect"],function(declare,lang,html,domClass,on,TemplatedWidgetBase,types,factory,MenuItem,MenuSeparator,aspect){return declare("xfile.widgets.SourceSelector",[TemplatedWidgetBase],{wButton:null,wThumb:null,wList:null,wTree:null,layout:null,menu:null,_didCreateDefaultItems:false,addJQueryClasses:true,menuItems:null,firstItem:null,templateString:"\x3cdiv\x3e\x3cdiv class\x3d'sourceSelector' data-dojo-type\x3d'dijit.form.DropDownButton' data-dojo-props\x3d\"iconClass:'el-icon-hdd'\" data-dojo-attach-point\x3d'wButton'\x3e"+
"\x3cspan\x3e\x3c/span\x3e"+"\x3cdiv data-dojo-attach-point\x3d'menu' data-dojo-type\x3d'dijit.Menu' style\x3d'display: none;'\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",_patchMenu:function(widget){aspect.after(widget,"onOpen",function(){factory.publish(types.EVENTS.ON_SOURCE_MENU_OPEN,{menu:widget})})},open:function(){this.wButton.domNode.focus();this.wButton.openDropDown();if(this.firstItem)this.firstItem.focus()},postMixInProperties:function(){this.inherited(arguments)},_defaultItems:function(){var items=
[];items.push({name:"Root",path:"root",owner:this.delegate,iconClass:"fileSelectDiscIcon"});items.push({name:"Ftp",path:"ftp",owner:this.delegate,iconClass:"el-icon-picture"});items.push({name:"Dropbox",path:"dropbox",owner:this.delegate,iconClass:"el-icon-picture"});items.push({name:"SVN",path:"svn",owner:this.delegate,iconClass:"el-icon-picture"});return items},onMenuItemClick:function(menuItem){try{this.wButton.closeDropDown();this.delegate.changeRoot(menuItem.item.path)}catch(e){debugger}},fixButton:function(button){if(button&&
button.iconNode){domClass.add(button.domNode,"ui-menu-item");domClass.remove(button.iconNode,"dijitReset");domClass.add(button.iconNode,"actionToolbarButtonElusive")}},editMount:function(mount){if(this.delegate&&this.delegate.editMount)this.delegate.editMount(mount)},removeMount:function(mount){if(this.delegate&&this.delegate.removeMount)this.delegate.removeMount(mount)},addActions:function(menuItem,edit,remove){if(!edit&&!remove)return;var pSubMenu=new dijit.Menu({parentMenu:menuItem});if(edit){var local=
new dijit.MenuItem({label:"Edit",onClick:lang.hitch(this,"editMount"),"iconClass":"el-icon-file-edit"});pSubMenu.addChild(local)}if(remove){var db=new dijit.MenuItem({label:"Remove",onClick:lang.hitch(this,"removeMount"),"iconClass":"el-icon-remove-circle"});pSubMenu.addChild(db)}menu.addChild(new dijit.PopupMenuItem({label:"Add",popup:pSubMenu,iconClass:"el-icon-plus"}))},createMenuItem:function(itemData,edit,remove){var thiz=this;if(!edit&&!remove){var icon=itemData.icon||itemData.iconClass||"fileSelectDiscIcon";
var item=new MenuItem({item:itemData,iconClass:icon,label:itemData.label||itemData.name});this.menu.addChild(item);dojo.connect(item,"onClick",function(){thiz.onMenuItemClick(item)});this.fixButton(item);return item}var pSubMenu=new dijit.Menu({parentMenu:this.menu});if(edit){var edit=new dijit.MenuItem({label:"Edit","iconClass":"el-icon-file-edit"});dojo.connect(edit,"onClick",function(){thiz.editMount(itemData)});pSubMenu.addChild(edit)}if(remove){var remove=new dijit.MenuItem({label:"Remove","iconClass":"el-icon-remove-circle"});
dojo.connect(remove,"onClick",function(){thiz.removeMount(itemData)});pSubMenu.addChild(remove)}var icon=itemData.icon||itemData.iconClass||"fileSelectDiscIcon";var item=new dijit.PopupMenuItem({item:itemData,iconClass:icon,label:itemData.label||itemData.name,popup:pSubMenu});this.menu.addChild(item);dojo.connect(item,"onClick",function(){thiz.onMenuItemClick(item)});item.domNode["onclick"]=function(){thiz.onMenuItemClick(item)};this.fixButton(item);return item},_createDefaultItems:function(mounts){this.menuItems=
[];this.firstItem=null;var items=mounts||this.delegate.getSources()||this._defaultItems();for(var i=0;i<items.length;i++){var item=this.createMenuItem(items[i],this.config.ALLOWED_ACTIONS[types.OPERATION_INT.EDIT_MOUNT],this.config.ALLOWED_ACTIONS[types.OPERATION_INT.REMOVE_MOUNT]);if(!this.firstItem)this.firstItem=item;this.menuItems.push(item)}this.menu.addChild(new MenuSeparator);this._didCreateDefaultItems=true},onOpen:function(){if(!this._didCreateDefaultItems)this._createDefaultItems()},onMountDataReady:function(evt){var menuItems=
this.menu.getChildren();for(var i=0;i<menuItems.length;i++)this.menu.removeChild(menuItems[i]);this.menu["mountMenu"]=null;var items=evt["data"];this._createDefaultItems(items)},startup:function(){this.inherited(arguments);if(!this._didCreateDefaultItems)this._createDefaultItems();if(this.addJQueryClasses)domClass.add(this.menu.containerNode,"ui-menu ui-widget ui-widget-content ui-corner-all");this.fixButton(this.wButton);this._patchMenu(this.menu);this.subscribe(types.EVENTS.ON_MOUNT_DATA_READY,
this.onMountDataReady)}})})},"xide/widgets/TemplatedWidgetBase":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dijit/_Widget","dijit/_WidgetBase","dijit/_TemplatedMixin","dijit/_WidgetsInTemplateMixin","xide/mixins/EventedMixin","xide/mixins/ReloadMixin","dojo/i18n","dojo/i18n!./nls/TemplatedWidgetBase"],function(array,declare,html,on,_Widget,_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,EventedMixin,ReloadMixin){return declare("xide.widgets.TemplatedWidgetBase",
[_Widget,_TemplatedMixin,_WidgetsInTemplateMixin,EventedMixin,ReloadMixin],{data:null,delegate:null,didLoad:false,templateString:null,translate:function(value){if(this._messages==null||this._messages.length==0)this._setupTranslations();if(value){var _titleKey=value.toLocaleLowerCase();_titleKey=_titleKey.replace(/\s+/g,"_");if(_titleKey&&this._messages!=null){var _titleValue=this._messages[_titleKey];if(_titleValue&&_titleValue.length>0)return _titleValue}}return value||""},_setupTranslations:function(){var dstCtx=
this.ctx;if(dstCtx&&dstCtx.getLocals){var l=dstCtx.getValidLanguage();this._messages=dstCtx.getLocals("xide.widgets","TemplatedWidgetBase")}else this._messages=[]},postMixInProperties:function(){this.inherited(arguments);this._setupTranslations()},startup:function(){try{this.inherited(arguments)}catch(e){debugger}this.initReload()},updateTitleNode:function(value){if(value&&this.titleNode){var _titleKey=value.toLocaleLowerCase();_titleKey=_titleKey.replace(/\s+/g,"_");if(_titleKey){var _titleValue=
this._messages[_titleKey];if(_titleValue)this.titleNode.innerHTML=_titleValue}}}})})},"dojo/on":function(){define(["./has!dom-addeventlistener?:./aspect","./_base/kernel","./sniff"],function(aspect,dojo,has){if(1){var major=window.ScriptEngineMajorVersion;has.add("jscript",major&&major()+ScriptEngineMinorVersion()/10);has.add("event-orientationchange",has("touch")&&!has("android"));has.add("event-stopimmediatepropagation",window.Event&&!!window.Event.prototype&&!!window.Event.prototype.stopImmediatePropagation);
has.add("event-focusin",function(global,doc,element){return"onfocusin"in element})}var on=function(target,type,listener,dontFix){if(typeof target.on=="function"&&typeof type!="function"&&!target.nodeType)return target.on(type,listener);return on.parse(target,type,listener,addListener,dontFix,this)};on.pausable=function(target,type,listener,dontFix){var paused;var signal=on(target,type,function(){if(!paused)return listener.apply(this,arguments)},dontFix);signal.pause=function(){paused=true};signal.resume=
function(){paused=false};return signal};on.once=function(target,type,listener,dontFix){var signal=on(target,type,function(){signal.remove();return listener.apply(this,arguments)});return signal};on.parse=function(target,type,listener,addListener,dontFix,matchesTarget){if(type.call)return type.call(matchesTarget,target,listener);if(type.indexOf(",")>-1)var events=type.split(/\s*,\s*/);else if(type instanceof Array)events=type;if(events){var handles=[];var i=0;var eventName;while(eventName=events[i++])handles.push(on.parse(target,
eventName,listener,addListener,dontFix,matchesTarget));handles.remove=function(){for(var i=0;i<handles.length;i++)handles[i].remove()};return handles}return addListener(target,type,listener,dontFix,matchesTarget)};var touchEvents=/^touch/;function addListener(target,type,listener,dontFix,matchesTarget){var selector=type.match(/(.*):(.*)/);if(selector){type=selector[2];selector=selector[1];return on.selector(selector,type).call(matchesTarget,target,listener)}if(has("touch")){if(touchEvents.test(type))listener=
fixTouchListener(listener);if(!has("event-orientationchange")&&type=="orientationchange"){type="resize";target=window;listener=fixTouchListener(listener)}}if(addStopImmediate)listener=addStopImmediate(listener);if(target.addEventListener){var capture=type in captures,adjustedType=capture?captures[type]:type;target.addEventListener(adjustedType,listener,capture);return{remove:function(){target.removeEventListener(adjustedType,listener,capture)}}}type="on"+type;if(fixAttach&&target.attachEvent)return fixAttach(target,
type,listener);throw new Error("Target must be an event emitter");}on.selector=function(selector,eventType,children){return function(target,listener){var matchesTarget=typeof selector=="function"?{matches:selector}:this,bubble=eventType.bubble;function select(eventTarget){matchesTarget=matchesTarget&&matchesTarget.matches?matchesTarget:dojo.query;if(eventTarget.nodeType!=1)eventTarget=eventTarget.parentNode;while(!matchesTarget.matches(eventTarget,selector,target))if(eventTarget==target||children===
false||!(eventTarget=eventTarget.parentNode)||eventTarget.nodeType!=1)return;return eventTarget}if(bubble)return on(target,bubble(select),listener);return on(target,eventType,function(event){var eventTarget=select(event.target);return eventTarget&&listener.call(eventTarget,event)})}};function syntheticPreventDefault(){this.cancelable=false;this.defaultPrevented=true}function syntheticStopPropagation(){this.bubbles=false}var slice=[].slice,syntheticDispatch=on.emit=function(target,type,event){var args=
slice.call(arguments,2);var method="on"+type;if("parentNode"in target){var newEvent=args[0]={};for(var i in event)newEvent[i]=event[i];newEvent.preventDefault=syntheticPreventDefault;newEvent.stopPropagation=syntheticStopPropagation;newEvent.target=target;newEvent.type=type;event=newEvent}do target[method]&&target[method].apply(target,args);while(event&&event.bubbles&&(target=target.parentNode));return event&&event.cancelable&&event};var captures=has("event-focusin")?{}:{focusin:"focus",focusout:"blur"};
if(!has("event-stopimmediatepropagation")){var stopImmediatePropagation=function(){this.immediatelyStopped=true;this.modified=true};var addStopImmediate=function(listener){return function(event){if(!event.immediatelyStopped){event.stopImmediatePropagation=stopImmediatePropagation;return listener.apply(this,arguments)}}}}if(has("dom-addeventlistener"))on.emit=function(target,type,event){if(target.dispatchEvent&&document.createEvent){var ownerDocument=target.ownerDocument||document;var nativeEvent=
ownerDocument.createEvent("HTMLEvents");nativeEvent.initEvent(type,!!event.bubbles,!!event.cancelable);for(var i in event)if(!(i in nativeEvent))nativeEvent[i]=event[i];return target.dispatchEvent(nativeEvent)&&nativeEvent}return syntheticDispatch.apply(on,arguments)};else{on._fixEvent=function(evt,sender){if(!evt){var w=sender&&(sender.ownerDocument||sender.document||sender).parentWindow||window;evt=w.event}if(!evt)return evt;try{if(lastEvent&&evt.type==lastEvent.type&&evt.srcElement==lastEvent.target)evt=
lastEvent}catch(e){}if(!evt.target){evt.target=evt.srcElement;evt.currentTarget=sender||evt.srcElement;if(evt.type=="mouseover")evt.relatedTarget=evt.fromElement;if(evt.type=="mouseout")evt.relatedTarget=evt.toElement;if(!evt.stopPropagation){evt.stopPropagation=stopPropagation;evt.preventDefault=preventDefault}switch(evt.type){case "keypress":var c="charCode"in evt?evt.charCode:evt.keyCode;if(c==10){c=0;evt.keyCode=13}else if(c==13||c==27)c=0;else if(c==3)c=99;evt.charCode=c;_setKeyChar(evt);break}}return evt};
var lastEvent,IESignal=function(handle){this.handle=handle};IESignal.prototype.remove=function(){delete _dojoIEListeners_[this.handle]};var fixListener=function(listener){return function(evt){evt=on._fixEvent(evt,this);var result=listener.call(this,evt);if(evt.modified){if(!lastEvent)setTimeout(function(){lastEvent=null});lastEvent=evt}return result}};var fixAttach=function(target,type,listener){listener=fixListener(listener);if(((target.ownerDocument?target.ownerDocument.parentWindow:target.parentWindow||
target.window||window)!=top||has("jscript")<5.8)&&!has("config-_allow_leaks")){if(typeof _dojoIEListeners_=="undefined")_dojoIEListeners_=[];var emitter=target[type];if(!emitter||!emitter.listeners){var oldListener=emitter;emitter=Function("event","var callee \x3d arguments.callee; for(var i \x3d 0; i\x3ccallee.listeners.length; i++){var listener \x3d _dojoIEListeners_[callee.listeners[i]]; if(listener){listener.call(this,event);}}");emitter.listeners=[];target[type]=emitter;emitter.global=this;if(oldListener)emitter.listeners.push(_dojoIEListeners_.push(oldListener)-
1)}var handle;emitter.listeners.push(handle=emitter.global._dojoIEListeners_.push(listener)-1);return new IESignal(handle)}return aspect.after(target,type,listener,true)};var _setKeyChar=function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode};var stopPropagation=function(){this.cancelBubble=true};var preventDefault=on._preventDefault=function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey)try{this.keyCode=0}catch(e){}this.defaultPrevented=
true;this.returnValue=false;this.modified=true}}if(has("touch")){var Event=function(){};var windowOrientation=window.orientation;var fixTouchListener=function(listener){return function(originalEvent){var event=originalEvent.corrected;if(!event){var type=originalEvent.type;try{delete originalEvent.type}catch(e){}if(originalEvent.type){if(has("mozilla")){var event={};for(var name in originalEvent)event[name]=originalEvent[name]}else{Event.prototype=originalEvent;var event=new Event}event.preventDefault=
function(){originalEvent.preventDefault()};event.stopPropagation=function(){originalEvent.stopPropagation()}}else{event=originalEvent;event.type=type}originalEvent.corrected=event;if(type=="resize"){if(windowOrientation==window.orientation)return null;windowOrientation=window.orientation;event.type="orientationchange";return listener.call(this,event)}if(!("rotation"in event)){event.rotation=0;event.scale=1}var firstChangeTouch=event.changedTouches[0];for(var i in firstChangeTouch){delete event[i];
event[i]=firstChangeTouch[i]}}return listener.call(this,event)}}}return on})},"dojox/mobile/ViewController":function(){define("dojox/mobile/ViewController",["dojo/_base/kernel","dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/_base/window","dojo/_base/Deferred","dojo/dom","dojo/dom-class","dojo/dom-construct","dojo/on","dojo/ready","dijit/registry","./ProgressIndicator","./TransitionEvent","./viewRegistry"],function(dojo,array,connect,declare,lang,win,Deferred,
dom,domClass,domConstruct,on,ready,registry,ProgressIndicator,TransitionEvent,viewRegistry){var Controller=declare("dojox.mobile.ViewController",null,{dataHandlerClass:"dojox/mobile/dh/DataHandler",dataSourceClass:"dojox/mobile/dh/UrlDataSource",fileTypeMapClass:"dojox/mobile/dh/SuffixFileTypeMap",constructor:function(){this.viewMap={};ready(lang.hitch(this,function(){on(win.body(),"startTransition",lang.hitch(this,"onStartTransition"))}))},findTransitionViews:function(moveTo){if(!moveTo)return[];
moveTo.match(/^#?([^&?]+)(.*)/);var params=RegExp.$2;var view=registry.byId(RegExp.$1);if(!view)return[];for(var v=view.getParent();v;v=v.getParent())if(v.isVisible&&!v.isVisible()){var sv=view.getShowingView();if(sv&&sv.id!==view.id)view.show();view=v}return[view.getShowingView(),view,params]},openExternalView:function(transOpts,target){var d=new Deferred;var id=this.viewMap[transOpts.url];if(id){transOpts.moveTo=id;if(transOpts.noTransition)registry.byId(id).hide();else(new TransitionEvent(win.body(),
transOpts)).dispatch();d.resolve(true);return d}var refNode=null;for(var i=target.childNodes.length-1;i>=0;i--){var c=target.childNodes[i];if(c.nodeType===1){var fixed=c.getAttribute("fixed")||c.getAttribute("data-mobile-fixed")||registry.byNode(c)&&registry.byNode(c).fixed;if(fixed==="bottom"){refNode=c;break}}}var dh=transOpts.dataHandlerClass||this.dataHandlerClass;var ds=transOpts.dataSourceClass||this.dataSourceClass;var ft=transOpts.fileTypeMapClass||this.fileTypeMapClass;require([dh,ds,ft],
lang.hitch(this,function(DataHandler,DataSource,FileTypeMap){var handler=new DataHandler(new DataSource(transOpts.data||transOpts.url),target,refNode);var contentType=transOpts.contentType||FileTypeMap.getContentType(transOpts.url)||"html";handler.processData(contentType,lang.hitch(this,function(id){if(id){this.viewMap[transOpts.url]=transOpts.moveTo=id;if(transOpts.noTransition)registry.byId(id).hide();else(new TransitionEvent(win.body(),transOpts)).dispatch();d.resolve(true)}else d.reject("Failed to load "+
transOpts.url)}))}));return d},onStartTransition:function(evt){evt.preventDefault();if(!evt.detail)return;var detail=evt.detail;if(!detail.moveTo&&!detail.href&&!detail.url&&!detail.scene)return;if(detail.url&&!detail.moveTo){var urlTarget=detail.urlTarget;var w=registry.byId(urlTarget);var target=w&&w.containerNode||dom.byId(urlTarget);if(!target){w=viewRegistry.getEnclosingView(evt.target);target=w&&w.domNode.parentNode||win.body()}this.openExternalView(detail,target);return}else if(detail.href){if(detail.hrefTarget&&
detail.hrefTarget!="_self")win.global.open(detail.href,detail.hrefTarget);else{var view;for(var v=viewRegistry.getEnclosingView(evt.target);v;v=viewRegistry.getParentView(v))view=v;if(view)view.performTransition(null,detail.transitionDir,detail.transition,evt.target,function(){location.href=detail.href})}return}else if(detail.scene){connect.publish("/dojox/mobile/app/pushScene",[detail.scene]);return}var arr=this.findTransitionViews(detail.moveTo),fromView=arr[0],toView=arr[1],params=arr[2];if(!location.hash&&
!detail.hashchange)viewRegistry.initialView=fromView;if(detail.moveTo&&toView)detail.moveTo=(detail.moveTo.charAt(0)==="#"?"#"+toView.id:toView.id)+params;if(!fromView||detail.moveTo&&fromView===registry.byId(detail.moveTo.replace(/^#?([^&?]+).*/,"$1")))return;var src=registry.getEnclosingWidget(evt.target);if(src&&src.callback){detail.context=src;detail.method=src.callback}fromView.performTransition(detail)}});Controller._instance=new Controller;Controller.getInstance=function(){return Controller._instance};
return Controller})},"dojo/window":function(){define(["./_base/lang","./sniff","./_base/window","./dom","./dom-geometry","./dom-style","./dom-construct"],function(lang,has,baseWindow,dom,geom,style,domConstruct){has.add("rtl-adjust-position-for-verticalScrollBar",function(win,doc){var body=baseWindow.body(doc),scrollable=domConstruct.create("div",{style:{overflow:"scroll",overflowX:"visible",direction:"rtl",visibility:"hidden",position:"absolute",left:"0",top:"0",width:"64px",height:"64px"}},body,
"last"),div=domConstruct.create("div",{style:{overflow:"hidden",direction:"ltr"}},scrollable,"last"),ret=geom.position(div).x!=0;scrollable.removeChild(div);body.removeChild(scrollable);return ret});has.add("position-fixed-support",function(win,doc){var body=baseWindow.body(doc),outer=domConstruct.create("span",{style:{visibility:"hidden",position:"fixed",left:"1px",top:"1px"}},body,"last"),inner=domConstruct.create("span",{style:{position:"fixed",left:"0",top:"0"}},outer,"last"),ret=geom.position(inner).x!=
geom.position(outer).x;outer.removeChild(inner);body.removeChild(outer);return ret});var window={getBox:function(doc){doc=doc||baseWindow.doc;var scrollRoot=doc.compatMode=="BackCompat"?baseWindow.body(doc):doc.documentElement,scroll=geom.docScroll(doc),w,h;if(has("touch")){var uiWindow=window.get(doc);w=uiWindow.innerWidth||scrollRoot.clientWidth;h=uiWindow.innerHeight||scrollRoot.clientHeight}else{w=scrollRoot.clientWidth;h=scrollRoot.clientHeight}return{l:scroll.x,t:scroll.y,w:w,h:h}},get:function(doc){if(has("ie")&&
window!==document.parentWindow){doc.parentWindow.execScript("document._parentWindow \x3d window;","Javascript");var win=doc._parentWindow;doc._parentWindow=null;return win}return doc.parentWindow||doc.defaultView},scrollIntoView:function(node,pos){try{node=dom.byId(node);var doc=node.ownerDocument||baseWindow.doc,body=baseWindow.body(doc),html=doc.documentElement||body.parentNode,isIE=has("ie"),isWK=has("webkit");if(node==body||node==html)return;if(!(has("mozilla")||isIE||isWK||has("opera")||has("trident"))&&
"scrollIntoView"in node){node.scrollIntoView(false);return}var backCompat=doc.compatMode=="BackCompat",rootWidth=Math.min(body.clientWidth||html.clientWidth,html.clientWidth||body.clientWidth),rootHeight=Math.min(body.clientHeight||html.clientHeight,html.clientHeight||body.clientHeight),scrollRoot=isWK||backCompat?body:html,nodePos=pos||geom.position(node),el=node.parentNode,isFixed=function(el){return isIE<=6||isIE==7&&backCompat?false:has("position-fixed-support")&&style.get(el,"position").toLowerCase()==
"fixed"},self=this,scrollElementBy=function(el,x,y){if(el.tagName=="BODY"||el.tagName=="HTML")self.get(el.ownerDocument).scrollBy(x,y);else{x&&(el.scrollLeft+=x);y&&(el.scrollTop+=y)}};if(isFixed(node))return;while(el){if(el==body)el=scrollRoot;var elPos=geom.position(el),fixedPos=isFixed(el),rtl=style.getComputedStyle(el).direction.toLowerCase()=="rtl";if(el==scrollRoot){elPos.w=rootWidth;elPos.h=rootHeight;if(scrollRoot==html&&isIE&&rtl)elPos.x+=scrollRoot.offsetWidth-elPos.w;if(elPos.x<0||!isIE||
isIE>=9)elPos.x=0;if(elPos.y<0||!isIE||isIE>=9)elPos.y=0}else{var pb=geom.getPadBorderExtents(el);elPos.w-=pb.w;elPos.h-=pb.h;elPos.x+=pb.l;elPos.y+=pb.t;var clientSize=el.clientWidth,scrollBarSize=elPos.w-clientSize;if(clientSize>0&&scrollBarSize>0){if(rtl&&has("rtl-adjust-position-for-verticalScrollBar"))elPos.x+=scrollBarSize;elPos.w=clientSize}clientSize=el.clientHeight;scrollBarSize=elPos.h-clientSize;if(clientSize>0&&scrollBarSize>0)elPos.h=clientSize}if(fixedPos){if(elPos.y<0){elPos.h+=elPos.y;
elPos.y=0}if(elPos.x<0){elPos.w+=elPos.x;elPos.x=0}if(elPos.y+elPos.h>rootHeight)elPos.h=rootHeight-elPos.y;if(elPos.x+elPos.w>rootWidth)elPos.w=rootWidth-elPos.x}var l=nodePos.x-elPos.x,t=nodePos.y-elPos.y,r=l+nodePos.w-elPos.w,bot=t+nodePos.h-elPos.h;var s,old;if(r*l>0&&(!!el.scrollLeft||el==scrollRoot||el.scrollWidth>el.offsetHeight)){s=Math[l<0?"max":"min"](l,r);if(rtl&&(isIE==8&&!backCompat||isIE>=9))s=-s;old=el.scrollLeft;scrollElementBy(el,s,0);s=el.scrollLeft-old;nodePos.x-=s}if(bot*t>0&&
(!!el.scrollTop||el==scrollRoot||el.scrollHeight>el.offsetHeight)){s=Math.ceil(Math[t<0?"max":"min"](t,bot));old=el.scrollTop;scrollElementBy(el,0,s);s=el.scrollTop-old;nodePos.y-=s}el=el!=scrollRoot&&!fixedPos&&el.parentNode}}catch(error){console.error("scrollIntoView: "+error);node.scrollIntoView(false)}}};1&&lang.setObject("dojo.window",window);return window})},"cbtree/models/ItemWriteStoreEX":function(){define("cbtree/models/ItemWriteStoreEX",["dojo/_base/array","dojo/_base/lang","dojo/data/ItemFileWriteStore"],
function(array,lang,ItemFileWriteStore){lang.extend(ItemFileWriteStore,{_validated:false,addReference:function(refItem,parentItem,attribute,index){if(!this.isItem(refItem)||!this.isItem(parentItem))throw new Error("ItemWriteStoreEX::addReference(): refItem and/or parentItem is not a valid store item");if(refItem!==parentItem){var oldValue;if(parentItem[attribute]){oldValue=parentItem[attribute];this._addReferenceToMap(refItem,parentItem,attribute);if(typeof index==="number")parentItem[attribute].splice(index,
0,refItem);else parentItem[attribute].push(refItem)}else{this._addReferenceToMap(refItem,parentItem,attribute);parentItem[attribute]=[refItem]}this.onSet(parentItem,attribute,oldValue,parentItem[attribute]);return true}throw new Error("ItemWriteStoreEX::addReference(): parent and reference items are identical");},attachToRoot:function(item,insertIndex){if(!this.isRootItem(item)){item[this._rootItemPropName]=true;if(insertIndex!==undefined)this._arrayOfTopLevelItems.splice(insertIndex,0,item);else this._arrayOfTopLevelItems.push(item);
this.onRoot(item,"attach")}},detachFromRoot:function(item){if(this.isRootItem(item)){this._removeArrayElement(this._arrayOfTopLevelItems,item);delete item[this._rootItemPropName];this.onRoot(item,"detach")}},getIdentifierAttr:function(){if(!this._loadFinished)this._forceLoad();return this._getIdentifierAttribute()},getParents:function(item){var parents=[],itemId;if(item){var references=item[this._reverseRefMap]||item["backup_"+this._reverseRefMap];if(references)for(itemId in references)parents.push(this._getItemByIdentity(itemId));
return parents}},isRootItem:function(item){this._assertIsItem(item);return item[this._rootItemPropName]?true:false},isValidated:function(){return this._validated},itemExist:function(keywordArgs){var identifierAttr,itemIdentity,item;if(typeof keywordArgs!="object"&&typeof keywordArgs!="undefined")throw new Error("ItemWriteStoreEX::itemExist(): argument is not an object");this._assert(!this._saveInProgress);identifierAttr=this.getIdentifierAttr();if(identifierAttr!==Number&&this._itemsByIdentity){itemIdentity=
keywordArgs[identifierAttr];if(typeof itemIdentity==="undefined")throw new Error("ItemWriteStoreEX::itemExist(): item has no identity");if(!this._pending._deletedItems[itemIdentity])item=this._itemsByIdentity[itemIdentity];else throw new Error("ItemWriteStoreEX::itemExist(): item is pending deletion");}return item},loadStore:function(keywordArgs){var scope=keywordArgs.scope||window.global;var self=this;function loadComplete(count,requestArgs){var loadArgs=requestArgs.loadArgs||null;var scope=loadArgs.scope;
self.onLoad(count);if(loadArgs)if(loadArgs.onComplete)loadArgs.onComplete.call(scope,count)}if(!this._loadFinished){var request={queryOptions:{deep:true},loadArgs:keywordArgs,onBegin:loadComplete,onError:keywordArgs.onError,scope:this};try{this.fetch(request)}catch(err){if(onError)onError.call(scope,err);else throw err;}}else if(onComplete)onComplete.call(scope,this._allFileItems.length)},onDelete:function(deletedItem){if(deletedItem[this._rootItemPropName]===true)this.onRoot(deletedItem,"delete")},
onNew:function(item,parentInfo){if(this.isRootItem(item))this.onRoot(item,"new")},onLoad:function(count){},onRoot:function(item,action){},setValidated:function(value){this._validated=Boolean(value)},removeReference:function(refItem,parentItem,attribute){if(!this.isItem(refItem)||!this.isItem(parentItem))throw new Error("ItemWriteStoreEX::removeReference(): refItem and/or parentItem is not a valid store item");if(parentItem[attribute]){this._removeReferenceFromMap(refItem,parentItem,attribute);var oldValue=
parentItem[attribute];if(this._removeArrayElement(parentItem[attribute],refItem)){if(this._isEmpty(parentItem[attribute]))delete parentItem[attribute];this.onSet(parentItem,attribute,oldValue,parentItem[attribute]);return true}}return false}})})},"cbtree/util/Mutex":function(){define("cbtree/util/Mutex",["dojo/Deferred"],function(Deferred){function Mutex(shared){var waiting=[];var locked=false;var shared=!!shared;var self=this;function signalWaiting(){if(waiting.length){var listener=waiting[0];try{listener.cb()}catch(err){self.onError(err);
throw err;}return true}}this.aquire=function(callback,scope){return this.then(function(){scope?callback.call(scope):callback()})};this.then=function(callback){var listener={cb:callback,def:new Deferred};waiting.push(listener);if(!locked){locked=true;signalWaiting()}return listener.def.promise};this.release=function(value){if(locked){var listener=waiting.shift();listener.def.resolve(value);if(!signalWaiting())locked=false}};this.onError=function(value){if(locked){var listener=waiting.shift();listener.def.reject(value);
if(!signalWaiting())locked=false}}}return Mutex})},"dojox/mobile/Heading":function(){define("dojox/mobile/Heading",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/_base/window","dojo/dom","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/dom-attr","dijit/registry","dijit/_Contained","dijit/_Container","dijit/_WidgetBase","./ProgressIndicator","./ToolBarButton","./View","dojo/has","require"],function(array,connect,declare,lang,win,dom,domClass,domConstruct,
domStyle,domAttr,registry,Contained,Container,WidgetBase,ProgressIndicator,ToolBarButton,View,has,BidiHeading){var dm=lang.getObject("dojox.mobile",true);var Heading=declare(0?"dojox.mobile.NonBidiHeading":"dojox.mobile.Heading",[WidgetBase,Container,Contained],{back:"",href:"",moveTo:"",transition:"slide",label:"",iconBase:"",tag:"h1",busy:false,progStyle:"mblProgWhite",baseClass:"mblHeading",buildRendering:function(){if(!this.templateString)this.domNode=this.containerNode=this.srcNodeRef||win.doc.createElement(this.tag);
this.inherited(arguments);if(!this.templateString){if(!this.label)array.forEach(this.domNode.childNodes,function(n){if(n.nodeType==3){var v=lang.trim(n.nodeValue);if(v){this.label=v;this.labelNode=domConstruct.create("span",{innerHTML:v},n,"replace")}}},this);if(!this.labelNode)this.labelNode=domConstruct.create("span",null,this.domNode);this.labelNode.className="mblHeadingSpanTitle";this.labelDivNode=domConstruct.create("div",{className:"mblHeadingDivTitle",innerHTML:this.labelNode.innerHTML},this.domNode)}if(this.labelDivNode){domAttr.set(this.labelDivNode,
"role","heading");domAttr.set(this.labelDivNode,"aria-level","1")}dom.setSelectable(this.domNode,false)},startup:function(){if(this._started)return;var parent=this.getParent&&this.getParent();if(!parent||!parent.resize){var _this=this;_this.defer(function(){_this.resize()})}this.inherited(arguments)},resize:function(){if(this.labelNode){var leftBtn,rightBtn;var children=this.containerNode.childNodes;for(var i=children.length-1;i>=0;i--){var c=children[i];if(c.nodeType===1&&domStyle.get(c,"display")!==
"none"){if(!rightBtn&&domStyle.get(c,"float")==="right")rightBtn=c;if(!leftBtn&&domStyle.get(c,"float")==="left")leftBtn=c}}if(!this.labelNodeLen&&this.label){this.labelNode.style.display="inline";this.labelNodeLen=this.labelNode.offsetWidth;this.labelNode.style.display=""}var bw=this.domNode.offsetWidth;var rw=rightBtn?bw-rightBtn.offsetLeft+5:0;var lw=leftBtn?leftBtn.offsetLeft+leftBtn.offsetWidth+5:0;var tw=this.labelNodeLen||0;domClass[bw-Math.max(rw,lw)*2>tw?"add":"remove"](this.domNode,"mblHeadingCenterTitle")}array.forEach(this.getChildren(),
function(child){if(child.resize)child.resize()})},_setBackAttr:function(back){this._set("back",back);if(!this.backButton){this.backButton=new ToolBarButton({arrow:"left",label:back,moveTo:this.moveTo,back:!this.moveTo,href:this.href,transition:this.transition,transitionDir:-1});this.backButton.placeAt(this.domNode,"first")}else this.backButton.set("label",back);this.resize()},_setMoveToAttr:function(moveTo){this._set("moveTo",moveTo);if(this.backButton)this.backButton.set("moveTo",moveTo)},_setHrefAttr:function(href){this._set("href",
href);if(this.backButton)this.backButton.set("href",href)},_setTransitionAttr:function(transition){this._set("transition",transition);if(this.backButton)this.backButton.set("transition",transition)},_setLabelAttr:function(label){this._set("label",label);this.labelNode.innerHTML=this.labelDivNode.innerHTML=this._cv?this._cv(label):label},_setBusyAttr:function(busy){var prog=this._prog;if(busy){if(!prog){prog=this._prog=new ProgressIndicator({size:30,center:false});domClass.add(prog.domNode,this.progStyle)}domConstruct.place(prog.domNode,
this.domNode,"first");prog.start()}else if(prog)prog.stop();this._set("busy",busy)}});return 0?declare("dojox.mobile.Heading",[Heading,BidiHeading]):Heading})},"dojo/when":function(){define(["./Deferred","./promise/Promise"],function(Deferred,Promise){return function when(valueOrPromise,callback,errback,progback){var receivedPromise=valueOrPromise&&typeof valueOrPromise.then==="function";var nativePromise=receivedPromise&&valueOrPromise instanceof Promise;if(!receivedPromise)if(arguments.length>1)return callback?
callback(valueOrPromise):valueOrPromise;else return(new Deferred).resolve(valueOrPromise);else if(!nativePromise){var deferred=new Deferred(valueOrPromise.cancel);valueOrPromise.then(deferred.resolve,deferred.reject,deferred.progress);valueOrPromise=deferred.promise}if(callback||errback||progback)return valueOrPromise.then(callback,errback,progback);return valueOrPromise}})},"dojo/back":function(){define(["./_base/config","./_base/lang","./sniff","./dom","./dom-construct","./_base/window","require"],
function(config,lang,has,dom,domConstruct,baseWindow,require){var back={};1&&lang.setObject("dojo.back",back);var getHash=back.getHash=function(){var h=window.location.hash;if(h.charAt(0)=="#")h=h.substring(1);return has("mozilla")?h:decodeURIComponent(h)},setHash=back.setHash=function(h){if(!h)h="";window.location.hash=encodeURIComponent(h);historyCounter=history.length};var initialHref=typeof window!=="undefined"?window.location.href:"";var initialHash=typeof window!=="undefined"?getHash():"";var initialState=
null;var locationTimer=null;var bookmarkAnchor=null;var historyIframe=null;var forwardStack=[];var historyStack=[];var moveForward=false;var changingUrl=false;var historyCounter;function handleBackButton(){var current=historyStack.pop();if(!current)return;var last=historyStack[historyStack.length-1];if(!last&&historyStack.length==0)last=initialState;if(last)if(last.kwArgs["back"])last.kwArgs["back"]();else if(last.kwArgs["backButton"])last.kwArgs["backButton"]();else if(last.kwArgs["handle"])last.kwArgs.handle("back");
forwardStack.push(current)}back.goBack=handleBackButton;function handleForwardButton(){var last=forwardStack.pop();if(!last)return;if(last.kwArgs["forward"])last.kwArgs.forward();else if(last.kwArgs["forwardButton"])last.kwArgs.forwardButton();else if(last.kwArgs["handle"])last.kwArgs.handle("forward");historyStack.push(last)}back.goForward=handleForwardButton;function createState(url,args,hash){return{"url":url,"kwArgs":args,"urlHash":hash}}function getUrlQuery(url){var segments=url.split("?");if(segments.length<
2)return null;else return segments[1]}function loadIframeHistory(){var url=(config["dojoIframeHistoryUrl"]||require.toUrl("./resources/iframe_history.html"))+"?"+(new Date).getTime();moveForward=true;if(historyIframe)has("webkit")?historyIframe.location=url:window.frames[historyIframe.name].location=url;else;return url}function checkLocation(){if(!changingUrl){var hsl=historyStack.length;var hash=getHash();if((hash===initialHash||window.location.href==initialHref)&&hsl==1){handleBackButton();return}if(forwardStack.length>
0)if(forwardStack[forwardStack.length-1].urlHash===hash){handleForwardButton();return}if(hsl>=2&&historyStack[hsl-2])if(historyStack[hsl-2].urlHash===hash)handleBackButton()}}back.init=function(){if(dom.byId("dj_history"))return;var src=config["dojoIframeHistoryUrl"]||require.toUrl("./resources/iframe_history.html");if(config.afterOnLoad)console.error("dojo/back::init() must be called before the DOM has loaded. "+"Include dojo/back in a build layer.");else document.write('\x3ciframe style\x3d"border:0;width:1px;height:1px;position:absolute;visibility:hidden;bottom:0;right:0;" name\x3d"dj_history" id\x3d"dj_history" src\x3d"'+
src+'"\x3e\x3c/iframe\x3e')};back.setInitialState=function(args){initialState=createState(initialHref,args,initialHash)};back.addToHistory=function(args){forwardStack=[];var hash=null;var url=null;if(!historyIframe){if(config["useXDomain"]&&!config["dojoIframeHistoryUrl"])0&&console.warn("dojo/back: When using cross-domain Dojo builds,"+" please save iframe_history.html to your domain and set djConfig.dojoIframeHistoryUrl"+" to the path on your domain to iframe_history.html");historyIframe=window.frames["dj_history"]}if(!bookmarkAnchor)bookmarkAnchor=
domConstruct.create("a",{style:{display:"none"}},baseWindow.body());if(args["changeUrl"]){hash=""+(args["changeUrl"]!==true?args["changeUrl"]:(new Date).getTime());if(historyStack.length==0&&initialState.urlHash==hash){initialState=createState(url,args,hash);return}else if(historyStack.length>0&&historyStack[historyStack.length-1].urlHash==hash){historyStack[historyStack.length-1]=createState(url,args,hash);return}changingUrl=true;setTimeout(function(){setHash(hash);changingUrl=false},1);bookmarkAnchor.href=
hash;if(has("ie")){url=loadIframeHistory();var oldCB=args["back"]||args["backButton"]||args["handle"];var tcb=function(handleName){if(getHash()!="")setTimeout(function(){setHash(hash)},1);oldCB.apply(this,[handleName])};if(args["back"])args.back=tcb;else if(args["backButton"])args.backButton=tcb;else if(args["handle"])args.handle=tcb;var oldFW=args["forward"]||args["forwardButton"]||args["handle"];var tfw=function(handleName){if(getHash()!="")setHash(hash);if(oldFW)oldFW.apply(this,[handleName])};
if(args["forward"])args.forward=tfw;else if(args["forwardButton"])args.forwardButton=tfw;else if(args["handle"])args.handle=tfw}else if(!has("ie"))if(!locationTimer)locationTimer=setInterval(checkLocation,200)}else url=loadIframeHistory();historyStack.push(createState(url,args,hash))};back._iframeLoaded=function(evt,ifrLoc){var query=getUrlQuery(ifrLoc.href);if(query==null){if(historyStack.length==1)handleBackButton();return}if(moveForward){moveForward=false;return}if(historyStack.length>=2&&query==
getUrlQuery(historyStack[historyStack.length-2].url))handleBackButton();else if(forwardStack.length>0&&query==getUrlQuery(forwardStack[forwardStack.length-1].url))handleForwardButton()};return back})},"cbtree/data/FileStore":function(){define("cbtree/data/FileStore",["dojo/_base/array","dojo/_base/declare","dojo/_base/json","dojo/_base/lang","dojo/_base/window","dojo/_base/xhr","dojo/_base/Deferred","dojo/Evented","./util/filter","./util/sorter","dojo/store/util/QueryResults","dojo/store/util/SimpleQueryEngine",
"xide/types","xide/mixins/EventedMixin","xide/manager/ServerActionBase"],function(array,declare,json,lang,window,xhr,Deferred,Evented,filterUtil,sorter,QueryResults,SimpleQueryEngine,types,EventedMixin,ServerActionBase){var C_STORE_REF_PROP="_S";var C_STORE_ROOT="_SR";var C_PARENT_REF="_PRM";var C_ITEM_EXPANDED="_EX";var C_CHILDREN_ATTR="children";var C_PATH_ATTR="path";var FileStore=declare([Evented,ServerActionBase,EventedMixin],{constructor:function(args){this._features={"dojo.data.api.Read":true,
"dojo.data.api.Write":true,"dojo.data.api.Identity":true,"dojo.data.api.Notification":true};this._loadInProgress=false;this._loadFinished=false;this._closePending=false;this._requestQueue=[];this._authToken=null;this._itemsByIdentity={};this._allFileItems=[];this._privateAttrs=[C_STORE_REF_PROP,C_PARENT_REF,C_ITEM_EXPANDED,C_STORE_ROOT];this._readOnlyAttrs=["size","modified","directory","icon",C_CHILDREN_ATTR,C_PATH_ATTR];this._rootDir=null;this._rootId=".";for(var prop in args)this.set(prop,args[prop])},
authToken:null,basePath:".",cache:false,clearOnClose:false,failOk:false,options:{includedFileExtensions:["php"],excludedFileExtensions:["*"]},url:"",urlPreventCache:true,moduleName:"cbTree/store/FileStore",_addIconClass:false,_didInit:false,_labelAttr:"name",_validated:false,queryEngine:SimpleQueryEngine,defaultQueryOptions:null,singleton:true,isNew:function(){return!this._didInit},remove:function(id){},put:function(id){},get:function(id){if(id){var storeItem=this._getItemByIdentity(id);if(storeItem)return storeItem}return null},
queryEx:function(query,options){if(query.path)this.queryEngine({path:query.path})},getItem:function(path,recursive,readyCB){var item=this.getItemByPath(null,path);if(item&&this.isItemLoaded(item))return readyCB(item);else if(recursive){var thiz=this;var partsToLoad=[];var pathParts=path.split("/");var ready=null;var _loadNext=null;var _getItem=function(_path,ready){var _child=thiz.getItemByPath(null,_path);if(_child)if(thiz.isItemLoaded(_child))ready(_child);else thiz.loadItem({item:_child,onItem:function(item){ready(_child)},
onError:function(){},onInProgress:function(){setTimeout(function(){_loadNext()},100)}});else console.error("no child to proceed! ")};_loadNext=function(){var finish=true;for(var i=0;i<partsToLoad.length;i++)if(partsToLoad[i].item==null){_getItem(partsToLoad[i].path,ready);finish=false;break}if(finish&&readyCB){var finalItem=thiz.getItem(path,true,readyCB);if(finalItem)readyCB(finalItem)}else;};ready=function(item){var found=false;var i=0;for(i=0;i<partsToLoad.length;i++)if(partsToLoad[i].path==item.path){partsToLoad[i].item=
item;found=true;break}if(found)setTimeout(function(){_loadNext()},10)};var itemStr="./";for(var i=0;i<pathParts.length;i++){if(pathParts[i]==".")continue;itemStr+=pathParts[i];partsToLoad.push({path:itemStr,item:null});if(pathParts.length>0)itemStr+="/"}_loadNext()}},getItemByPath:function(items,path){items=items||this._allFileItems;for(var i=0;i<items.length;i++){var item=items[i];if(item.path==path)return item}return null},cleanItems:function(items){for(var i=0;i<items.length;i++){var item=items[i];
if(item.isBack===true)item.isBack=false;if(item.prevName!=null)item.name=item.prevName}return items},_onStoreResynced:function(){var thiz=this;xapp.factory.createEvent(types.EVENTS.STORE_REFRESHED,{store:thiz},thiz)},_resyncStoreEx:function(item){var thiz=this;var request={item:item,forceLoad:true,onItem:function(){thiz._onStoreResynced()}};this.loadItem(request)},storeChanged:function(data){var path=data.dst.path?data.dst.path:data.dst;if(path=="/"||path=="./")path=".";var _s=this.getItemByPath(this._allFileItems,
path);if(!_s){path=""+path.replace("./","");_s=this.getItemByPath(this._allFileItems,path)}if(_s)this._resyncStoreEx(_s);else console.error("bad! had no parent item to sync store!!")},initStore:function(){this.init();xapp.factory.subscribe(types.EVENTS.STORE_CHANGED,this.storeChanged,this)},extractDirectoriesOnly:function(items){var res=[];for(var i=0;i<items.length;i++)if(items[i].directory!=null&&items[i].directory===true)res.push(items[i]);return res},query2:function(query,options){var res=null;
if(options&&options.sort==null&&this.defaultQueryOptions)options=this.defaultQueryOptions;var _res=null;var thiz=this;this.fetchEx({scope:this,query:{path:query.path||"./"},queryOptions:options,onComplete:function(items){var path=query.path||"./";if(options.single!=null&&options.single===true&&items&&items.length==1)_res=items[0];else if(items&&items.length==1&&items[0].children&&items[0].children.length==0)_res=items[0];else if(items&&items.length==1&&items[0].children){_res=items[0].children;if(query.directory===
true)_res=thiz.extractDirectoriesOnly(_res);var _sort=options.sort;if(_res.length&&_sort){var sortList=new sorter(_sort);_res.sort(sortList.sortFunction())}}}});var result=_res||this._allFileItems;if(this.defaultQueryOptions||options.sort){var _sort=options.sort||this.defaultQueryOptions.sort;if(result.length&&_sort){var sortList=new sorter(_sort);result.sort(sortList.sortFunction())}}if(result!=null)result=this.cleanItems(result);return result},queryInternal:function(query,options){var res=null;
if(options&&options.sort==null&&this.defaultQueryOptions)options=this.defaultQueryOptions;var _res=null;var thiz=this;this.fetchEx({scope:this,query:{path:query.path||"./"},queryOptions:options,onComplete:function(items){var path=query.path||"./";if(options.single!=null&&options.single===true&&items&&items.length==1)_res=items[0];else if(items&&items.length==1&&items[0].children&&items[0].children.length==0)_res=items[0];else if(items&&items.length==1&&items[0].children){_res=items[0].children;if(query.directory===
true)_res=thiz.extractDirectoriesOnly(_res);var _sort=options.sort;if(_res.length&&_sort){var sortList=new sorter(_sort);_res.sort(sortList.sortFunction())}}}});var result=_res||this._allFileItems;if(options&&(this.defaultQueryOptions||options.sort)){var _sort=options.sort||this.defaultQueryOptions.sort;if(result.length&&_sort){var sortList=new sorter(_sort);result.sort(sortList.sortFunction())}}if(result!=null)result=this.cleanItems(result);return result},query:function(query,options){var thiz=this;
var a=thiz.queryInternal(query,options);return a},_assertIsItem:function(item){if(!this.isItem(item))var test=this.isItem(item)},_assertIsAttribute:function(attribute,funcName){if(typeof attribute!=="string")throw new Error(this.moduleName+"::"+funcName+"(): Invalid attribute argument.");},_assertSupport:function(name){throw new Error(this.moduleName+"::"+name+"(): Function not supported on a File Store.");},_containsValue:function(item,attribute,value,regexp){if(typeof item[attribute]!=="undefined")return array.some(this.getValues(item,
attribute),function(possibleValue){if(possibleValue!==null&&!lang.isObject(possibleValue)&&regexp){if(possibleValue.toString().match(regexp))return true}else if(value===possibleValue)return true});else return value===false||value===undefined},_deleteFromStore:function(item,onSetCall){var identity=item[C_PATH_ATTR];var parent=this.getValue(item,C_PARENT_REF);var siblings=this.getValues(parent,C_CHILDREN_ATTR);var delItems=[];if(item.directory){var children=this.getValues(item,C_CHILDREN_ATTR);var delChild;
var i;for(i=0;i<children.length;i++){delChild=this._deleteFromStore(children[i],false);delItems=delItems.concat(delChild)}item[C_ITEM_EXPANDED]=false}this._removeArrayElement(this._allFileItems,item);this._removeArrayElement(siblings,item);delete this._itemsByIdentity[identity];item[C_STORE_REF_PROP]=null;item["deleted"]=true;delItems.push(item);this._setValues(parent,C_CHILDREN_ATTR,siblings,onSetCall);this.onDelete(item);return delItems},_fetchFinal:function(requestArgs,arrayOfItems){var scope=
requestArgs.scope||window.global,self=this,items=[],count=0;function filterItems(requestArgs,arrayOfItems){var queryOptions=requestArgs.queryOptions||{},ignoreCase=false,query=requestArgs.query||null,items=[],i;if(arrayOfItems){if(query){var regexpList={},match,fileItem,key,value;for(key in query){value=query[key];if(typeof value==="string")regexpList[key]=filterUtil.patternToRegExp(value,ignoreCase);else if(value instanceof RegExp)regexpList[key]=value}for(i=0;i<arrayOfItems.length;++i){fileItem=
arrayOfItems[i];match=true;for(key in query){value=query[key];if(!self._containsValue(fileItem,key,value,regexpList[key])){match=false;break}}if(match)items.push(fileItem)}}else items=arrayOfItems.slice(0);var _sort=requestArgs.sort||queryOptions.sort;if(items.length&&_sort){var sortList=new sorter(_sort);items.sort(sortList.sortFunction())}var start=requestArgs.start?requestArgs.start:0;var count=requestArgs.count&&isFinite(requestArgs.count)?requestArgs.count:items.length;if(start||count!==items.length)items=
items.slice(start,start+count);return items}return null}requestArgs.abort=function(){this.aborted=true};requestArgs.store=this;if(requestArgs.aborted!==true){items=filterItems(requestArgs,arrayOfItems);count=items?items.length:-1;if(requestArgs.onBegin)requestArgs.onBegin.call(scope,count,requestArgs);if(requestArgs.onItem&&count>0)for(i=0;i<count&&requestArgs.aborted!==true;i++)requestArgs.onItem.call(scope,items[i],requestArgs);if(requestArgs.onComplete)if(requestArgs.onItem||requestArgs.aborted||
count<0)requestArgs.onComplete.call(scope,null,requestArgs);else requestArgs.onComplete.call(scope,items,requestArgs)}if(requestArgs.onAbort&&requestArgs.aborted)requestArgs.onAbort.call(scope,requestArgs)},_getItemsArray:function(queryOptions){if(queryOptions&&queryOptions.deep)return this._allFileItems;return this._rootDir[C_CHILDREN_ATTR]},_getItemByIdentity:function(identity){var item=null;if(this._itemsByIdentity)if(Object.hasOwnProperty.call(this._itemsByIdentity,identity))item=this._itemsByIdentity[identity];
return item},_handleQueuedRequest:function(){var delayedFunc,fData;while(this._requestQueue.length>0&&!this._loadInProgress){fData=this._requestQueue.shift();delayedFunc=fData.func;delayedFunc.call(fData.scope,fData.args)}},_isPrivateAttr:function(attr){var i;for(i in this._privateAttrs)if(attr==this._privateAttrs[i])return true;return false},_isReadOnlyAttr:function(attr){var i;for(i in this._readOnlyAttrs)if(attr==this._readOnlyAttrs[i])return true;return false},_queueRequest:function(requestObj){if(!this._closePending)this._requestQueue.push(requestObj);
else{var requestArgs=requestObj.args;requestArgs.closePending=true;this._fetchFinal(requestArgs,null)}},_removeArrayElement:function(arrayOfItems,element){var index=array.indexOf(arrayOfItems,element);if(index!=-1){arrayOfItems.splice(index,1);return true}return false},_requestToArgs:function(requestType,request){var reqParams={},xhrArgs=null,sync=false;if(this.basePath)reqParams.basePath=this.basePath;if(request.path)reqParams.path=request.path;else reqParams.path=".";if(this.authToken)reqParams.authToken=
json.toJson(this.authToken);if(request.sync)sync=request.sync;switch(requestType){case "DELETE":break;case "GET":if(request.queryOptions)reqParams.queryOptions=json.toJson(request.queryOptions);if(this.options&&this.options.length)reqParams.options=json.toJson(this.options);break;case "POST":if(request.newValue)reqParams.newValue=request.newValue;break}xhrArgs={url:this.url,handleAs:"json",content:reqParams,preventCache:this.urlPreventCache,handle:function(result,ioArgs){this.status=ioArgs.xhr.status},
failOk:this.failOk,status:200,sync:sync};return xhrArgs},_requestToArgsEx:function(requestType,request){var reqParams={},xhrArgs=null,sync=false;if(this.basePath)reqParams.basePath=this.basePath;if(request.path)reqParams.path=request.path;if(this.authToken)reqParams.authToken=json.toJson(this.authToken);if(request.sync)sync=request.sync;switch(requestType){case "DELETE":break;case "GET":if(request.queryOptions)reqParams.queryOptions=json.toJson(request.queryOptions);if(this.options&&this.options.length)reqParams.options=
json.toJson(this.options);break;case "POST":if(request.newValue)reqParams.newValue=request.newValue;break}xhrArgs={url:this.url,handleAs:"json",content:reqParams,preventCache:this.urlPreventCache,handle:function(result,ioArgs){this.status=ioArgs.xhr.status},failOk:this.failOk,status:200,sync:sync};return xhrArgs},_resyncStore:function(item){var parent=this.getParents(item)[0];if(parent){var request={item:parent,forceLoad:true};this.loadItem(request)}else if(item===this._rootDir)throw new Error(this.moduleName+
"::_resyncStore(): Store root directory failed to reload.");else throw new Error(this.moduleName+"::_resyncStore(): File Store is corrupt.");},_setAuthTokenAttr:function(token){if(lang.isObject(token))this.authToken=token;return false},_setOptionsAttr:function(value){var i;this.options=value;return;if(lang.isArray(value))this.options=value;else if(lang.isString(value))this.options=value.split(",");else throw new Error(this.moduleName+"::_setOptionsAttr(): Options must be a comma"+" separated string of keywords"+
" or an array of keyword strings.");for(i=0;i<this.options.length;i++)if(this.options[i]==="iconClass")this._addIconClass=true;return this.options},_setValue:function(item,attribute,newValue,onSetCall,owner){var oldValue;oldValue=item[attribute];item[attribute]=newValue;if(onSetCall)this.onSet(item,attribute,oldValue,newValue,owner);return true},_setValues:function(item,attribute,newValues,onSetCall){var oldValues;var i;oldValues=this.getValues(item,attribute);if(lang.isArray(newValues))if(newValues.length===
0&&attribute!==C_CHILDREN_ATTR){delete item[attribute];newValues=undefined}else item[attribute]=newValues.slice(0,newValues.length);else throw new Error(this.moduleName+"::setValues(): newValues not an array");if(onSetCall)this.onSet(item,attribute,oldValues,newValues);return true},_updateFileStore:function(operation,dataObject,keywordArgs){var self=this;function deleteFile(identity){var files=[];var storeItem=self._getItemByIdentity(identity);if(storeItem)files=self._deleteFromStore(storeItem,true);
return files}function makeDirectory(path){var newDir=self._getItemByIdentity(path);if(!newDir){newDir=self._rootDir;if(newDir){var segments=path.split("/");var subPath=".";var subDir=null;for(i=0;i<segments.length;i++)if(segments[i]!=="."){subPath=subPath+"/"+segments[i];subDir=self._getItemByIdentity(subPath);if(!subDir){subDir={name:segments[i],path:subPath,directory:true,size:0};subDir[C_CHILDREN_ATTR]=[];subDir[C_ITEM_EXPANDED]=false;newDir=newFile(subDir,newDir,true)}else newDir=subDir}}else{newDir=
newFile(null,null,false);return makeDirectory(path)}}return newDir}function mergeFiles(storeItem,servItem,onSetCall){var hasChanged=false;var empty={};var newVal,oldValue;var name;for(name in servItem)if(name!=C_CHILDREN_ATTR&&name!=C_ITEM_EXPANDED){newVal=servItem[name];if(!(name in storeItem)||storeItem[name]!==newVal&&(!(name in empty)||empty[name]!==newVal)){oldValue=storeItem[name];storeItem[name]=newVal;if(onSetCall)self.onSet(storeItem,name,oldValue,newVal);hasChanged=true}}return hasChanged}
function newFile(item,parent,onSetCall){if(parent){var identity=self.getIdentity(item);var child=self._getItemByIdentity(identity);if(!child){var oldValues=self.getValues(parent,C_CHILDREN_ATTR);var newValues=self.getValues(parent,C_CHILDREN_ATTR);item[C_STORE_REF_PROP]=self;item[C_PARENT_REF]=parent;if(self["_addIconClass"])setIconClass(item);self._itemsByIdentity[identity]=item;self._allFileItems.push(item);newValues.push(item);self._setValues(parent,C_CHILDREN_ATTR,newValues,false);if(self._loadFinished&&
onSetCall){var parentInfo={item:parent,attribute:C_CHILDREN_ATTR,oldValue:oldValues,newValue:newValues};self.onNew(item,!parent[C_STORE_ROOT]?parentInfo:null)}return item}throw new Error(self.moduleName+"::_updateFileStore:newFile(): item ["+item.path+"] already exist.");}else{if(!self._rootDir){item={name:self._rootId,path:self._rootId,directory:true};item[C_STORE_REF_PROP]=self;item[C_CHILDREN_ATTR]=[];item[C_ITEM_EXPANDED]=false;item[C_STORE_ROOT]=true;if(self["_addIconClass"])setIconClass(item);
self._itemsByIdentity[self._rootId]=item;self._allFileItems.push(item);self._rootDir=item;return item}throw new Error(self.moduleName+"::_updateFileStore:newFile(): item has no parent.");}}function setIconClass(item){var icc;if(item.directory)icc="fileIconDIR";else{var last=item.name.lastIndexOf(".");if(last>0){var ext=item.name.substr(last+1).toLowerCase();ext=ext.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase()});icc="fileIcon"+ext}else icc="fileIconUnknown"}item["icon"]=
icc+" fileIcon"}function updateDirectory(directory,files){var hasChanged=false;var file,path;var i;var oldValues=self.getValues(directory,C_CHILDREN_ATTR);var delValues=self.getValues(directory,C_CHILDREN_ATTR);var newValues=[];for(i=0;i<files.length;i++){file=updateFile(files[i],directory);self._removeArrayElement(delValues,file);newValues.push(file)}if(delValues.length>0){file=delValues.shift();while(file){self._deleteFromStore(file,false);file=delValues.shift()}hasChanged=true}if(oldValues.length!=
newValues.length)hasChanged=true;if(hasChanged&&self._loadFinished)self.onSet(directory,C_CHILDREN_ATTR,oldValues,newValues);directory[C_ITEM_EXPANDED]=true;return directory}function updateFile(item,directory){var newPath=item[C_PATH_ATTR];var oldPath=item.oldPath;var file;if(oldPath&&oldPath!==newPath){var oldFile=self._getItemByIdentity(oldPath);if(oldFile){self._deleteFromStore(oldFile,true);delete item.oldPath}else throw new Error(self.moduleName+"::_updateFileStore:updateFile(): Unable to resolve ["+
oldPath+"].");}if(!directory){var lastSegm=newPath.lastIndexOf("/");var dirName=newPath.substr(0,lastSegm)||newPath;directory=makeDirectory(dirName)}file=self._getItemByIdentity(newPath);if(file&&file.directory!==item.directory){self._deleteFromStore(file,true);file=null}if(file)mergeFiles(file,item,true);else if(item.directory){file=makeDirectory(newPath);mergeFiles(file,item,false)}else file=newFile(item,directory,true);if(file.directory&&item[C_ITEM_EXPANDED])updateDirectory(file,item[C_CHILDREN_ATTR]);
return file}if(dataObject){var items=dataObject.items,identity,files=[],file,i;if(items){if(items.length>1){var sortList=new sorter([{attribute:C_PATH_ATTR}]);items.sort(sortList.sortFunction())}for(i=0;i<items.length;i++){identity=self.getIdentity(items[i]);if(identity)switch(operation){case "DELETE":var deleted=deleteFile(identity);files=files.concat(deleted);break;case "GET":case "POST":file=updateFile(items[i],null);files.push(file);break}else;}this._loadFinished=true;return files}}throw new Error(this.moduleName+
"::_updateFileStore(): Empty or malformed server response.");},attachToRoot:function(item){this._assertIsItem(item);var newPath=this._rootId+"/"+item.name;this.renameItem(item,newPath)},close:function(request){if(this._loadInProgress){this._queueRequest({args:request,func:this.close,scope:this});this._closePending=true}else{if(this.clearOnClose){this._closePending=true;this._queuedFetches=[];this._itemsByIdentity={};this._allFileItems=[];this._rootDir=null;this._loadFinished=false;this._loadInProgress=
false;this._validated=false}this.onClose(this.clearOnClose);this._closePending=false}},containsValue:function(item,attribute,value){var regexp=undefined;if(typeof value==="string")regexp=filterUtil.patternToRegExp(value,false);return this._containsValue(item,attribute,value,regexp)},fetch:function(keywordArgs){try{var scope=keywordArgs.scope||window.global;var queryOptions=keywordArgs.queryOptions||null;var storeOnly=queryOptions?queryOptions.storeOnly:false;var oper="GET";var self=this;if((this.cache||
storeOnly)&&this._loadFinished)this._fetchFinal(keywordArgs,this._getItemsArray(queryOptions));else if(this._loadInProgress)this._queueRequest({args:keywordArgs,func:this.fetch,scope:self});else{this._loadInProgress=true;var getArgs=this._requestToArgs(oper,keywordArgs);var self=this;var prom=this.callMethodEx2(null,"ls",{path:getArgs.content.path.replace("./","."),basePath:getArgs.content.basePath,options:this.options}).then(function(data){try{self._updateFileStore(oper,data,keywordArgs);self._loadInProgress=
false;if(keywordArgs.onItem){item=self._getItemByIdentity(path);keywordArgs.onItem.call(scope,item)}}catch(error){self._loadInProgress=false;if(keywordArgs.onError)keywordArgs.onError.call(scope,error);else console.error(error)}})}keywordArgs.abort=function(){this.aborted=true};return keywordArgs}catch(e){debugger}},fetchEx:function(keywordArgs){var scope=keywordArgs.scope||window.global;var queryOptions=keywordArgs.queryOptions||null;var storeOnly=queryOptions?queryOptions.storeOnly:false;var oper=
"GET";var self=this;if((this.cache||storeOnly)&&this._loadFinished)this._fetchFinal(keywordArgs,this._getItemsArray(queryOptions));else if(this._loadInProgress)this._queueRequest({args:keywordArgs,func:this.fetch,scope:self});else{this._loadInProgress=true;var getArgs=this._requestToArgs(oper,keywordArgs);var prom=this.callMethodEx2(null,"ls",{path:getArgs.content.path,basePath:getArgs.content.basePath,options:this.options}).then(function(data){try{if(!self._didInit){self._didInit=true;self.publish(types.EVENTS.ON_FILE_STORE_READY,
{store:self})}self._updateFileStore(oper,data,keywordArgs);self._loadInProgress=false;self._fetchFinal(keywordArgs,self._getItemsArray(queryOptions))}catch(error){debugger;self._loadInProgress=false;if(keywordArgs.onError)keywordArgs.onError.call(scope,error);else console.error(error)}})}keywordArgs.abort=function(){this.aborted=true};return keywordArgs},fetchChildren:function(keywordArgs){var scope=keywordArgs.scope||window.global;var item=keywordArgs.item||this._rootDir;var self=this;this._assertIsItem(item);
if(!this.isItemLoaded(item)||keywordArgs.forceLoad){var request={item:item,forceLoad:keywordArgs.forceLoad,onError:keywordArgs.onError,onItem:function(item){self._fetchFinal(keywordArgs,item[C_CHILDREN_ATTR])}};this.loadItem(request)}else this._fetchFinal(keywordArgs,item[C_CHILDREN_ATTR]);keywordArgs.abort=function(){this.aborted=true};return keywordArgs},fetchItemByIdentity:function(keywordArgs){var scope=keywordArgs.scope||window.global;var path=keywordArgs.identity||keywordArgs[C_PATH_ATTR];var queryOptions=
keywordArgs.queryOptions||null;var storeOnly=queryOptions?queryOptions.storeOnly:false;var oper="GET";var self=this;var item;item=this._getItemByIdentity(path);if((this.cache||storeOnly)&&this._loadFinished)if(item){if(keywordArgs.onItem)keywordArgs.onItem.call(scope,item);return}if(this.basePath=="./")debugger;if(this._loadInProgress)this._queueRequest({args:keywordArgs,func:this.fetchItemByIdentity,scope:self});else{this._loadInProgress=true;var request={path:path};var getArgs=this._requestToArgs(oper,
request);var prom=this.callMethodEx2(null,"ls",{path:getArgs.content.basePath.replace("./","."),basePath:".",options:this.options}).then(function(data){try{self._updateFileStore(oper,data,keywordArgs);self._loadInProgress=false;if(keywordArgs.onItem){item=self._getItemByIdentity(path);keywordArgs.onItem.call(scope,item)}}catch(error){debugger;self._loadInProgress=false;if(keywordArgs.onError)keywordArgs.onError.call(scope,error);else console.error(error)}})}},getAttributes:function(item){this._assertIsItem(item);
var attributes=[];for(var key in item)if(!this._isPrivateAttr(key))attributes.push(key);return attributes},getDirectory:function(item){this._assertIsItem(item);var parent;parent=this.getValue(item,C_PARENT_REF);if(parent)return this.getPath(parent);return},getFeatures:function(){return this._features},getIdentity:function(item){if(item)return item[C_PATH_ATTR]},getIdentifierAttr:function(){return C_PATH_ATTR},getIdentityAttributes:function(item){return[C_PATH_ATTR]},getLabel:function(item){if(this._labelAttr&&
this.isItem(item))return this.getValue(item,this._labelAttr);return undefined},getLabelAttributes:function(item){return this._labelAttr?[this._labelAttr]:null},getParents:function(item,allowRoot){if(item){if(allowRoot===true)return this.getValues(item,C_PARENT_REF);if(item[C_PARENT_REF]==this._rootDir)return[];return this.getValues(item,C_PARENT_REF)}},getPath:function(item){this._assertIsItem(item);return item[C_PATH_ATTR]},getValue:function(item,attribute,defaultValue){var values=this.getValues(item,
attribute);return values.length>0?values[0]:defaultValue},getValues:function(item,attribute){var result=[];this._assertIsItem(item);this._assertIsAttribute(attribute,"getValues");if(item[attribute]!==undefined)result=lang.isArray(item[attribute])?item[attribute]:[item[attribute]];return result.slice(0)},hasAttribute:function(item,attribute){this._assertIsItem(item);this._assertIsAttribute(attribute,"hasAttribute");return attribute in item},isItem:function(something){if(something&&something[C_STORE_REF_PROP]===
this)if(this._itemsByIdentity[something[C_PATH_ATTR]]===something)return true;return false},isItemLoaded:function(item){var loaded=this.isItem(item);if(loaded)if(item.directory&&!item[C_ITEM_EXPANDED])loaded=false;return loaded},isRootItem:function(item){this._assertIsItem(item);var parent=this.getValue(item,C_PARENT_REF);if(parent&&parent[C_STORE_ROOT])return true;return false},isValidated:function(){return this._validated},loadItem:function(keywordArgs){var queryOptions=keywordArgs.queryOptions||
null;var forceLoad=keywordArgs.forceLoad||false;var scope=keywordArgs.scope||window.global;var sort=keywordArgs.sort||null;var item=keywordArgs.item;var oper="GET";var self=this;if(!this.isItem(item))return;if(forceLoad!==true)if(this.isItemLoaded(item))return;var path=this.getIdentity(item);if(this._loadInProgress){this._queueRequest({args:keywordArgs,func:this.loadItem,scope:self});if(keywordArgs.onInProgress)keywordArgs.onInProgress()}else{this._loadInProgress=true;var request={path:path};var getArgs=
this._requestToArgs(oper,request);var prom=this.callMethodEx2(null,"ls",{basePath:getArgs.content.basePath.replace("./","."),path:getArgs.content.path,options:this.options}).then(function(data){try{self._updateFileStore(oper,data,keywordArgs);self._loadInProgress=false;if(keywordArgs.onItem){item=self._getItemByIdentity(path);keywordArgs.onItem.call(scope,item)}}catch(error){self._loadInProgress=false;if(keywordArgs.onError)keywordArgs.onError(error);else console.error(error)}self._handleQueuedRequest()})}},
loadStore:function(keywordArgs){var scope=keywordArgs.scope||window.global;var self=this;function loadComplete(count,requestArgs){var loadArgs=requestArgs.loadArgs||null;var scope=loadArgs.scope;self.onLoad(count);if(loadArgs)if(loadArgs.onComplete)loadArgs.onComplete.call(scope,count)}if(!this._loadFinished)if(this._loadInProgress)this._queueRequest({args:keywordArgs,func:this.loadStore,scope:self});else{var request={queryOptions:{deep:false},loadArgs:keywordArgs,onBegin:loadComplete,onError:keywordArgs.onError,
scope:this};try{this.fetch(request)}catch(err){if(onError)onError.call(scope,err);else throw err;}}else;},renameItem:function(item,newPath,onItem,onError,scope){var scope=scope||window.global;this._assertIsItem(item);this._assertIsAttribute(newPath,"renameItem");if(item!=this._rootDir)if(item[C_PATH_ATTR]!==newPath){var keywordArgs={item:item,newValue:newPath,onItem:onItem,onError:onError,scope:scope};this._renameItem(keywordArgs)}else if(lang.isFunction(onItem))onItem.call(scope,item)},set:function(attribute,
value){if(lang.isString(attribute)){var cc=attribute.replace(/^[a-z]|-[a-zA-Z]/g,function(c){return c.charAt(c.length-1).toUpperCase()});var setter="_set"+cc+"Attr";if(lang.isFunction(this[setter]))return this[setter](value);else if(this[attribute]!==undefined){this[attribute]=value;return this[attribute]}}},setValidated:function(value){this._validated=Boolean(value)},setValue:function(item,attribute,newValue,owner){var oldValue;var i;this._assertIsItem(item);this._assertIsAttribute(attribute,"setValue");
if(typeof newValue==="undefined")throw new Error(this.moduleName+"::setValue(): newValue is undefined");if(attribute!==C_PATH_ATTR){if(this._isReadOnlyAttr(attribute)||this._isPrivateAttr(attribute))throw new Error(this.moduleName+"::setValue(): attribute ["+attribute+"] is private or read-only");return this._setValue(item,attribute,newValue,true,owner)}else if(item[C_PATH_ATTR]!==newValue)this._renameItem({item:item,newValue:newValue})},setValues:function(item,attribute,newValues){var oldValues;
var i;this._assertIsItem(item);this._assertIsAttribute(attribute,"setValues");if(typeof newValues==="undefined")throw new Error(this.moduleName+"::setValue(): newValue is undefined");if(this._isReadOnlyAttr(attribute)||this._isPrivateAttr(attribute))throw new Error(this.moduleName+"::setValues(): attribute ["+attribute+"] is private or read-only");return this._setValues(item,attribute,newValues,true)},unsetAttribute:function(item,attribute){return this.setValues(item,attribute,[])},onClose:function(cleared){},
onDelete:function(item){var parent=item[C_PARENT_REF];if(parent&&parent[C_STORE_ROOT])this.onRoot(item,"delete")},onLoad:function(count){},onNew:function(item,parentInfo){if(this.isRootItem(item))this.onRoot(item,"new")},onRoot:function(item,action){},onSet:function(item,attribute,oldValue,newValue){},isDirty:function(item){return false},newItem:function(){this._assertSupport("newItem")},revert:function(){},save:function(){},addReference:function(){this._assertSupport("addReference")},detachFromRoot:function(){this._assertSupport("detachFromRoot")},
itemExist:function(keywordArgs){var identity;if(typeof keywordArgs!="object")throw new Error(this.moduleName+"::itemExist(): argument is not an object.");identity=keywordArgs[C_PATH_ATTR];if(typeof identity==="undefined")throw new Error(this.moduleName+"::itemExist(): argument does not include an identity.");return this._getItemByIdentity(identity)},removeReference:function(){this._assertSupport("removeReference")}});return FileStore})},"xide/views/MainView":function(){define(["dojo/_base/array",
"dojo/_base/declare","dojo/_base/html","dojo/on","dojo/_base/lang","xide/widgets/TemplatedWidgetBase","xide/widgets/_CSSMixin","xide/widgets/_StyleMixin","xide/widgets/_InsertionMixin","xide/widgets/_HTMLTemplateMixin","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/window","xide/types","cbtree/data/BreadCrumb","xfile/widgets/UploadItem","xfile/widgets/ProgressItem","xfile/widgets/ActionToolbarEmbedded","xide/utils/StoreUtils","xide/widgets/_PermaMixin","dijit/registry","xide/utils","xide/factory",
"xide/layout/BorderContainer","xide/layout/ContentPane","xide/layout/TabContainer","xide/mixins/EventedMixin","xide/layout/BorderContainer"],function(array,declare,html,on,lang,TemplatedWidgetBase,CSSMixin,_StyleMixin,_InsertionMixin,HTMLTemplateMixin,domClass,domGeometry,domStyle,win,types,BreadCrumb,UploadItem,ProgressItem,ActionToolbarEmbedded,storeUtils,PermaMixin,registry,utils,factory,BorderContainer,ContentPane,TabContainer,EventedMixin){return dojo.declare("xide.views.MainView",[TemplatedWidgetBase,
CSSMixin,_StyleMixin,HTMLTemplateMixin,_InsertionMixin,PermaMixin,EventedMixin],{config:null,ctx:null,cssClass:"mainView xasMain dTuned",layoutMain:null,layoutTop:null,layoutLeft:null,layoutCenter:null,layoutRight:null,layoutBottom:null,toolbar:null,preventCaching:true,panelManager:null,leftPanel:null,centerPanel:null,centerTabContainer:null,breadCrumb:null,bottomTabContainer:null,logPanel:null,layoutBottomPlaceHolder:null,initialReload:false,persistent:false,_restoredPermaItems:0,rightBorderContainer:null,
rightTopTabParent:null,rightTopTabContainer:null,rightBottomContainer:null,layoutRightPlaceHolder:null,templateString:"\x3cdiv\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutMain' data-dojo-type\x3d'xide.layout.BorderContainer' data-dojo-props\x3d\"design:'headline'\" class\x3d'layoutMain '\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutTop' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'top',splitter:'true'\" class\x3d'layoutTop ui-state-default'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutLeft' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'leading',splitter:'true'\" class\x3d'layoutLeft'\x3e\x3c/div\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'layoutCenter' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'center',splitter:'true'\" class\x3d'layoutCenter'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutRight' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'right',splitter:'true',minSize:'200',toggleSplitterState:'closed',toggleSplitterClosedSize:'0px',toggleSplitterFullSize:'200px' \" class\x3d'layoutRight' style\x3d'min-width: 200px;'\x3e\x3cdiv data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-attach-point\x3d'layoutRightPlaceHolder' style\x3d'min-width:200px;width: 200px;'\x3e\x3c/div\x3e\x3c/div\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'layoutBottom' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'bottom',splitter:'true',toggleSplitterState:'closed',toggleSplitterClosedSize:'0px',toggleSplitterFullSize:'150px'\" class\x3d'layoutBottom ui-state-default'\x3e\x3cdiv data-dojo-attach-point\x3d'layoutBottomPlaceHolder' style\x3d'height: 80px;'\x3e\x3c/div\x3e\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",_openRight:function(){if(this.layoutRight){var splitter=this.layoutRight._splitterWidget;
if(splitter)switch(splitter.state){case "full":break;case "collapsed":case "closed":splitter.set("state","full");this.publish(types.EVENTS.RESIZE,{},this);break}}return true},getRightBottomTarget:function(clear,open){if(this.layoutRight){var layoutRightMain=this.getLayoutRightMain();if(!this.rightBottomContainer){var tabContainer=new ContentPane({delegate:this,style:"width:100%;height:50%;padding:0px",region:"bottom",parentContainer:this.rightBorderContainer},dojo.doc.createElement("div"));layoutRightMain.addChild(tabContainer);
this.rightBottomContainer=tabContainer}if(clear===true)dojo.empty(this.rightBottomContainer.containerNode);if(open===true)this._openRight();return this.rightBottomContainer}return null},getRightTopTarget:function(clear,open){try{if(this.layoutRight){var layoutRightMain=this.getLayoutRightMain();if(!this.rightTopTabParent){this.rightTopTabParent=new ContentPane({delegate:this,style:"width:100%;height:50%;padding:0px",region:"top",parentContainer:this.rightBorderContainer},dojo.doc.createElement("div"));
layoutRightMain.addChild(this.rightTopTabParent)}if(clear===true){dojo.empty(this.rightTopTabParent.containerNode);this.rightTopTabContainer=null}if(!this.rightTopTabContainer){var tabContainer=new dijit.layout.TabContainer({delegate:this,tabStrip:true,tabPosition:"top",splitter:true,region:"top",attachParent:true,style:"width:100%;height:100%",parentContainer:this.rightBorderContainer,allowSplit:false},dojo.doc.createElement("div"));this.rightTopTabParent.containerNode.appendChild(tabContainer.domNode);
this.rightTopTabContainer=tabContainer;tabContainer.startup()}if(open===true)this._openRight();return this.rightTopTabContainer}}catch(e){debugger}return null},getLayoutRightMain:function(){if(this.layoutRight){if(!this.rightBorderContainer){this.rightBorderContainer=new BorderContainer({splitter:true,design:"sidebar",style:"width:200px;height:inherit;"},dojo.doc.createElement("div"));this.layoutRight.containerNode.appendChild(this.rightBorderContainer.domNode);this.rightBorderContainer.startup()}return this.rightBorderContainer}return null},
getNewAlternateTarget:function(item,panel){if(!this.centerTabContainer){if(this.centerPanel){var tmpPos=dojo.doc.createElement("div");dojo.place(this.centerPanel.domNode,tmpPos)}var tabContainer=new TabContainer({delegate:this,tabStrip:true,tabPosition:"top",splitter:true,region:"center",attachParent:true,style:"width:100%;height:100%",parentContainer:this.layoutCenter,sizeTarget:this.layoutCenter.containerNode,allowSplit:true},dojo.doc.createElement("div"));this.layoutCenter.containerNode.appendChild(tabContainer.domNode);
tabContainer.startup();if(this.centerPanel)tabContainer.addChild(this.centerPanel);this.centerTabContainer=tabContainer}return this.centerTabContainer},_permaItemReady:function(item){if(item)if(item.directory!=null&&item.directory===true){if(this.centerPanel)if(this._restoredPermaItems==0)this.centerPanel.openItem(item);else this.centerPanel.openItemAlternate(item);this._restoredPermaItems+=1}else this.panelManager.openFile(item)},getPermaLink:function(){var items=[];if(this.centerTabContainer)array.forEach(registry.findWidgets(this.centerTabContainer.containerNode),
function(child){if(child.getPermaLink){var childPerma=child.getPermaLink();if(childPerma&&childPerma!=".")items.push(encodeURIComponent(childPerma))}});else if(this.centerPanel&&this.centerPanel.getPermaLink){var childPerma=this.centerPanel.getPermaLink();if(childPerma&&childPerma!=".")items.push(encodeURIComponent(childPerma))}if(items&&items.length>0)return"mainView\x3d"+encodeURIComponent(items.join("|"));return""},_getItem:function(url){var thiz=this;var store=this.panelManager.store;var _readyCB=
function(item){thiz._permaItemReady(item)};setTimeout(function(){store.getItem(url,true,_readyCB)},10)},restorePermaLink:function(link){try{var urls=[];link=link||window.location.href;if(link){var params=utils.urlDecode(link);if(params&&params.mainView){params.mainView=decodeURIComponent(params.mainView);var items=params.mainView.indexOf("|")!=-1?params.mainView.split("|"):[params.mainView];if(items&&items.length>0)for(var i=0;i<items.length;i++)urls.push(decodeURIComponent(items[i]))}}if(urls.length>
0)for(var i=0;i<urls.length;i++)this._getItem(urls[i])}catch(e){debugger}},onLastPanelRemoved:function(){if(this.centerPanel&&this.centerTabContainer){var tmpPos=dojo.doc.createElement("div");dojo.place(this.centerPanel.domNode,tmpPos);utils.destroyWidget(this.centerTabContainer);this.centerTabContainer=null;this.layoutCenter.containerNode.appendChild(this.centerPanel.domNode);this.resize()}},onPanelClosed:function(){if(this.centerTabContainer){var children=this.centerTabContainer.getChildren();var reRoot=
false;if(children.length==1)reRoot=true;if(reRoot)this.onLastPanelRemoved()}},prepareLayout:function(config){if(config.LAYOUT_PRESET==types.LAYOUT_PRESET.SINGLE)this.layoutMain.removeChild(this.layoutLeft);if(config.PANEL_OPTIONS!=null&&config.PANEL_OPTIONS.ALLOW_INFO_VIEW===false)this.layoutMain.removeChild(this.layoutRight);if(config.PANEL_OPTIONS!=null&&(config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===false||config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===0)&&(config.ACTION_TOOLBAR_MODE==null||config.ACTION_TOOLBAR_MODE!=
"self"))this.layoutMain.removeChild(this.layoutTop);else if(this.layoutTop._splitterWidget){utils.destroyWidget(this.layoutTop._splitterWidget);this.layoutTop._splitterWidget=null}if(config.PANEL_OPTIONS!=null&&config.PANEL_OPTIONS.ALLOW_LOG_VIEW===false)this.layoutMain.removeChild(this.layoutBottom);else if(this.layoutBottom._splitterWidget){this.layoutBottom._splitterWidget.fullSize="150px";this.layoutBottom._splitterWidget.collapsedSize=null;if(!this.bottomTabContainer){this.bottomTabContainer=
this._createBottomTabContainer();this.logPanel=new dijit.layout.ContentPane({className:"bottomTabLog",title:"Log",style:"padding:0;background-color: transparent;"},dojo.doc.createElement("div"));this.bottomTabContainer.addChild(this.logPanel)}}},createPanel:function(panelOptions,dstContainer,cookiePrefix,region){if(!this.panelManager);if(panelOptions.AUTO_OPEN||panelOptions.AUTO_OPEN==null){var panel=this.getPanelManager().openUrl(this.config.START_PATH,dstContainer,this.config,cookiePrefix,region);
if(this.initialReload){var thiz=this;setTimeout(function(){panel.onReload(panel)},800)}return panel}},onChangeToggleSplitterState:function(splitter,state){if(!this.persistent)return;console.error("splitter change");var splitterData=[];if(this.layoutLeft&&this.layoutLeft._splitterWidget)splitterData.push({region:"left",state:this.layoutLeft._splitterWidget.state});if(this.layoutRight&&this.layoutRight._splitterWidget)splitterData.push({region:"right",state:this.layoutRight._splitterWidget.state});
if(this.layoutBottom&&this.layoutBottom._splitterWidget)splitterData.push({region:"bottom",state:this.layoutBottom._splitterWidget.state});this.ctx.getSettingsManager().write(null,".",null,{id:"splitter",data:JSON.stringify(splitterData),name:"Splitter States"},true,null)},setupToggleSplitterListeners:function(){if(this.layoutLeft&&this.layoutLeft._splitterWidget)this.layoutLeft._splitterWidget.delegate=this;if(this.layoutRight&&this.layoutRight._splitterWidget)this.layoutRight._splitterWidget.delegate=
this;if(this.layoutBottom&&this.layoutBottom._splitterWidget)this.layoutBottom._splitterWidget.delegate=this},_getState:function(region,data){for(var i=0;i<data.length;i++)if(data[i].region==region)return data[i].state;return null},_restoreSplitter:function(){},_restoreToggleSplitters:function(){var store=this.ctx.getSettingsManager().getStore();if(store){var data=storeUtils.queryStoreEx(store,{id:"splitter"},true,true);if(data){data=data.data;if(data){if(this.layoutLeft&&this.layoutLeft._splitterWidget){var state=
this._getState("left",data);if(state)this.layoutLeft._splitterWidget.set("state",state)}if(this.layoutRight&&this.layoutRight._splitterWidget){var state=this._getState("right",data);if(state)this.layoutRight._splitterWidget.set("state",state)}if(this.layoutBottom&&this.layoutBottom._splitterWidget){var state=this._getState("bottom",data);if(state)this.layoutBottom._splitterWidget.set("state",state)}}}}},createPanels:function(config){if(config.LAYOUT_PRESET==types.LAYOUT_PRESET.DUAL){this.leftPanel=
this.createPanel(config.FILE_PANEL_OPTIONS_LEFT,this.layoutLeft,types.LAYOUT_REGION.LEFT,types.LAYOUT_REGION.LEFT);this.centerPanel=this.createPanel(config.FILE_PANEL_OPTIONS_MAIN,this.layoutCenter,types.LAYOUT_REGION.CENTER,types.LAYOUT_REGION.CENTER);this.leftPanel.currentPanels.push(this.centerPanel);this.leftPanel.activePanel=this.centerPanel;this.centerPanel.currentPanels.push(this.leftPanel);this.centerPanel.owner=this.leftPanel;this.centerPanel.closeable=false}else if(config.LAYOUT_PRESET==
types.LAYOUT_PRESET.SINGLE&&config.FILE_PANEL_OPTIONS_MAIN!=null)this.createPanel(config.FILE_PANEL_OPTIONS_MAIN,this.layoutCenter,types.LAYOUT_REGION.CENTER)},getPanelManager:function(){return this.panelManager},onShowPanel:function(data){var panel=data?data?data.panel?data.panel:null:null:null;if(panel&&panel.getCurrentPathItem){var cPathItem=panel.getCurrentPathItem();if(cPathItem&&this.breadCrumb){this.breadCrumb.setTrail(cPathItem.path);this.breadCrumb.owner=panel}}},onDidOpenItem:function(data){var item=
data?data?data.item?data.item:null:null:null;if(item&&item.path&&item.directory===true)if(this.breadCrumb)this.breadCrumb.setTrail(item.path)},createBreadCrumb:function(config){if(this.breadCrumb)return;this.breadCrumb=window["xappFileTrail"];this.layoutTop.containerNode.appendChild(this.breadCrumb.domNode);dojo.place(this.breadCrumb.domNode,this.layoutTop.containerNode,"last");this.breadCrumb.startup();this.layoutTop.resize();this.layoutMain.resize();var thiz=this;this.breadCrumb.onClick=function(item,
widget){if(item&&thiz.breadCrumb.owner&&thiz.breadCrumb.owner.openItem)thiz.breadCrumb.owner.openItem(item)};return;var store=this.leftPanel?this.leftPanel.store:this.centerPanel?this.centerPanel.store:null;if(store){var breadCrumb=new BreadCrumb({store:store,cssBaseClass:"fileIcon",className:"breadCrumb"},dojo.doc.createElement("div"));this.layoutTop.containerNode.appendChild(breadCrumb.domNode);dojo.place(breadCrumb.domNode,this.layoutTop.containerNode,"last");breadCrumb.startup();this.breadCrumb=
breadCrumb}},_createToolbarEx:function(displayMode,config,container){if(displayMode=="self"){var ctx=this.ctx;this.actionToolbar=new ActionToolbarEmbedded({delegate:this.ctx.getPanelManager(),ctx:this.ctx,config:config},dojo.doc.createElement("div"));domClass.add(this.actionToolbar.domNode,"actionToolbarEmbedded");container.containerNode.appendChild(this.actionToolbar.domNode);this.actionToolbar.startup()}},initWithConfig:function(config){var thiz=this;try{domClass.add(this.layoutRight.domNode,"ui-state-default");
setTimeout(function(){thiz.prepareLayout(config)},100);setTimeout(function(){thiz.createPanels(config);thiz.restorePermaLink(null)},200);setTimeout(function(){var toolbarHeight=0;if(config&&config.ACTION_TOOLBAR_MODE!=null)try{thiz._createToolbarEx(config.ACTION_TOOLBAR_MODE,config,thiz.layoutTop);toolbarHeight+=35}catch(e){}if(config.PANEL_OPTIONS!=null&&(config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===true||config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===1))try{thiz.createBreadCrumb(config);toolbarHeight+=30}catch(e){debugger}thiz.repaint()},
500);setTimeout(function(){factory.publish(types.EVENTS.ON_MAIN_VIEW_READY,null,thiz)},3E3)}catch(e){debugger}},removeEmptyContainers:function(){utils.destroyIfEmpty(this.layoutRight);utils.destroyIfEmpty(this.layoutCenter);utils.destroyIfEmpty(this.layoutLeft);utils.destroyIfEmpty(this.layoutTop);utils.destroyIfEmpty(this.layoutBottom)},postMixInProperties:function(){this.inherited(arguments)},startup:function(){this.inherited(arguments);this.buttons=[];if(this.toolbar)this.toolbar.delegate=this;
this._setupTranslations()},_resizeContainer:function(container,name){try{if(container&&container.domNode)container.resize();else;}catch(e){}},_fixToolbar:function(){if(this.toolbar&&this.layoutBottom&&this.layoutMain&&this.layoutBottom.domNode)dojo.place(this.toolbar.domNode,this.layoutBottom.domNode,"before")},resize:function(){this.inherited(arguments);if(this.layoutMain)this._resizeContainer(this.layoutMain,"main");if(this.layoutLeft)this._resizeContainer(this.layoutLeft,"left");if(this.layoutTop)this._resizeContainer(this.layoutTop,
"top");if(this.layoutCenter)this._resizeContainer(this.layoutCenter,"center");if(this.layoutRight)this._resizeContainer(this.layoutRight,"right");if(this.layoutLeft)this._resizeContainer(this.layoutLeft,"left");if(this.layoutBottom)this._resizeContainer(this.layoutBottom,"bottom")},onStartupPost:function(){var thiz=this;dojo.connect(null,dojo.global.onorientationchange!==undefined?"onorientationchange":"onresize",this,function(){thiz.resize()});factory.subscribe(types.EVENTS.IMAGE_LOADED,thiz.resize,
this);factory.subscribe(types.EVENTS.ON_DID_OPEN_ITEM,thiz.onDidOpenItem,this);factory.subscribe(types.EVENTS.UPLOAD_BEGIN,thiz.onUploadBegin,this);this.removeEmptyContainers();this.resize()},postCreate:function(){this.inherited(arguments)},buildRendering:function(){this.inherited(arguments)},_createBottomTabContainer:function(){if(this.layoutBottomPlaceHolder){utils.destroyWidget(this.layoutBottomPlaceHolder);this.layoutBottomPlaceHolder=null}var tabContainer=new dijit.layout.TabContainer({tabStrip:true,
tabPosition:"bottom",region:"bottom",attachParent:true,style:"width:100%"},dojo.doc.createElement("div"));this.layoutBottom.containerNode.appendChild(tabContainer.domNode);tabContainer.startup();return tabContainer},_createProgressItem:function(item,parent){var uploadItem=new UploadItem({item:item,name:item.name},dojo.doc.createElement("div"));parent.appendChild(uploadItem.domNode);uploadItem.startup();return uploadItem},showLogPanel:function(){if(this.config.PANEL_OPTIONS!=null&&this.config.PANEL_OPTIONS.ALLOW_LOG_VIEW===
false)return false;if(!this.bottomTabContainer){this.bottomTabContainer=this._createBottomTabContainer();this.logPanel=new dijit.layout.ContentPane({className:"bottomTabLog",title:"Log",style:"padding:0;background-color: transparent;"},dojo.doc.createElement("div"));this.bottomTabContainer.addChild(this.logPanel)}if(this.bottomTabContainer&&this.logPanel)this.bottomTabContainer.selectChild(this.logPanel);var splitter=this.layoutBottom._splitterWidget;if(splitter)switch(splitter.state){case "full":break;
case "collapsed":case "closed":splitter.set("state","full");break}return true},_createLogItem:function(item,message,parent,terminatorMessage){var uploadItem=new ProgressItem({terminatorItem:item,terminatorMessage:terminatorMessage,message:message},dojo.doc.createElement("div"));parent.appendChild(uploadItem.domNode);uploadItem.startup();parent.appendChild(dojo.create("div",{className:"logEntry",innerHTML:""}));var thiz=this;return uploadItem},_scrollToEnd:function(){var l=dojo.query(".bottomTabLog :last-child")[0];
dojox.fx.smoothScroll({node:dojo.query(".bottomTabLog :last-child")[0],win:this.logPanel.domNode}).play()},onDeleteBegin:function(data){if(!this.showLogPanel())return;var items=data.content.items;var message=this.translate("removing")+" "+items.length+" "+this.translate("items");var tab=this.logPanel;if(tab){var logItem=this._createLogItem(items,message,tab.containerNode,types.EVENTS.ON_DELETE_END);dojo.place(logItem.domNode,tab.containerNode,"first")}},onCopyBegin:function(data){if(!this.showLogPanel())return;
var items=data.src;var message=this.translate("copying")+" "+items.length+" "+this.translate("items")+" "+this.translate("to")+" "+data.dst;var tab=this.logPanel;if(tab){var logItem=this._createLogItem(items,message,tab.containerNode,types.EVENTS.ON_COPY_END);dojo.place(logItem.domNode,tab.containerNode,"first")}},onMoveBegin:function(data){if(!this.showLogPanel())return;var items=data.content.src;var message=this.translate("moving")+" "+items.length+" "+this.translate("items")+" "+this.translate("to")+
" "+data.content.dst;var tab=this.logPanel;if(tab){var logItem=this._createLogItem(items,message,tab.containerNode,types.EVENTS.ON_MOVE_END);dojo.place(logItem.domNode,tab.containerNode,"first")}},onCompressBegin:function(data){if(!this.showLogPanel())return;var items=data.content.src;var message=this.translate("compressing")+" "+items.length+" "+this.translate("items");var tab=this.logPanel;if(tab){var logItem=this._createLogItem(items,message,tab.containerNode,types.EVENTS.ON_COMPRESS_END);dojo.place(logItem.domNode,
tab.containerNode,"first")}},onUploadBegin:function(data){if(!this.showLogPanel())return;var item=data.content.item;if(item){var tab=this.logPanel;if(tab){var uploadItem=this._createProgressItem(item,tab.containerNode);dojo.place(uploadItem.domNode,tab.containerNode,"first")}}},repaint:function(evt,parent){var winSize=dojo.window.getBox();if(parent!=null){var parentO=dojo.byId(parent);if(parentO){this.resizeToNode(parent);return}}var dstHeight=winSize.h;dstHeight-=10;this.layoutMain.containerNode.style.height=
dstHeight+"px";this.layoutMain.resize()},onChildAdded:function(who,what){this.resize()}})})},"dijit/form/_FormValueMixin":function(){define("dijit/form/_FormValueMixin",["dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","./_FormWidgetMixin"],function(declare,domAttr,keys,lang,on,has,_FormWidgetMixin){return declare("dijit.form._FormValueMixin",_FormWidgetMixin,{readOnly:false,_setReadOnlyAttr:function(value){domAttr.set(this.focusNode,"readOnly",value);this._set("readOnly",
value)},postCreate:function(){this.inherited(arguments);if(this._resetValue===undefined)this._lastValueReported=this._resetValue=this.value},_setValueAttr:function(newValue,priorityChange){this._handleOnChange(newValue,priorityChange)},_handleOnChange:function(newValue,priorityChange){this._set("value",newValue);this.inherited(arguments)},undo:function(){this._setValueAttr(this._lastValueReported,false)},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true)}})})},"dojo/dom-form":function(){define(["./_base/lang",
"./dom","./io-query","./json"],function(lang,dom,ioq,json){function setValue(obj,name,value){if(value===null)return;var val=obj[name];if(typeof val=="string")obj[name]=[val,value];else if(lang.isArray(val))val.push(value);else obj[name]=value}var exclude="file|submit|image|reset|button";var form={fieldToObject:function fieldToObject(inputNode){var ret=null;inputNode=dom.byId(inputNode);if(inputNode){var _in=inputNode.name,type=(inputNode.type||"").toLowerCase();if(_in&&type&&!inputNode.disabled)if(type==
"radio"||type=="checkbox"){if(inputNode.checked)ret=inputNode.value}else if(inputNode.multiple){ret=[];var nodes=[inputNode.firstChild];while(nodes.length)for(var node=nodes.pop();node;node=node.nextSibling)if(node.nodeType==1&&node.tagName.toLowerCase()=="option"){if(node.selected)ret.push(node.value)}else{if(node.nextSibling)nodes.push(node.nextSibling);if(node.firstChild)nodes.push(node.firstChild);break}}else ret=inputNode.value}return ret},toObject:function formToObject(formNode){var ret={},
elems=dom.byId(formNode).elements;for(var i=0,l=elems.length;i<l;++i){var item=elems[i],_in=item.name,type=(item.type||"").toLowerCase();if(_in&&type&&exclude.indexOf(type)<0&&!item.disabled){setValue(ret,_in,form.fieldToObject(item));if(type=="image")ret[_in+".x"]=ret[_in+".y"]=ret[_in].x=ret[_in].y=0}}return ret},toQuery:function formToQuery(formNode){return ioq.objectToQuery(form.toObject(formNode))},toJson:function formToJson(formNode,prettyPrint){return json.stringify(form.toObject(formNode),
null,prettyPrint?4:0)}};return form})},"dijit/ToolbarSeparator":function(){define("dijit/ToolbarSeparator",["dojo/_base/declare","dojo/dom","./_Widget","./_TemplatedMixin"],function(declare,dom,_Widget,_TemplatedMixin){return declare("dijit.ToolbarSeparator",[_Widget,_TemplatedMixin],{templateString:'\x3cdiv class\x3d"dijitToolbarSeparator dijitInline" role\x3d"presentation"\x3e\x3c/div\x3e',buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.domNode,false)},isFocusable:function(){return false}})})},
"xfile/manager/Application":function(){define("xfile/manager/Application",["dojo/_base/declare","dojo/_base/lang","xide/manager/Application","xfile/views/MainView","dojo/dom-geometry","dojo/dom-class","dojo/_base/window","xfile/config","xfile/factory/model","cbtree/extensions/TreeStyling","cbtree/models/FileStoreModel","cbtree/data/FileStore","xide/types"],function(declare,lang,Application,MainView,domGeometry,domClass,win,config,factory,TreeStyling,FileStoreModel,FileStore,types){return declare("xfile.manager.Application",
[Application],{mainView:null,resizeToNode:function(parent){if(parent!=null){var parentO=dojo.byId(parent);if(parentO){var size=domGeometry.getMarginBox(parentO);var dstHeight=size.h;dstHeight-=30;var mainContainer=dijit.registry.byId("main");if(mainContainer){mainContainer.containerNode.style.height=dstHeight+"px";mainContainer.resize();setTimeout(function(){mainContainer.resize()},300)}}}},repaint:function(evt,parent){var winSize=dojo.window.getBox();if(parent!=null){var parentO=dojo.byId(parent);
if(parentO){this.resizeToNode(parent);return}}var dstHeight=winSize.h;dstHeight-=30;var mainContainer=dijit.registry.byId("main");if(mainContainer){mainContainer.containerNode.style.height=dstHeight+"px";mainContainer.resize();setTimeout(function(){mainContainer.resize()},300)}},onStarted:function(){var thiz=this;var resizeCB=function(){thiz.repaint()};dojo.connect(window,dojo.global.onorientationchange!==undefined?"onorientationchange":"onresize",this,function(){setTimeout(function(){resizeCB()},
1E3)});setTimeout(function(){resizeCB()},100)},_setupTranslations:function(){var dstCtx=this.ctx;if(dstCtx&&dstCtx.getLocals)this._messages=dstCtx.getLocals("xide.widgets","TemplatedWidgetBase");else this._messages=[]},boot:function(config){var xFileConfiguration=config||typeof xFileConfig!=="undefined"?xFileConfig:null;if(xFileConfiguration){if(typeof xFileConfigMixin!="undefined"){var _xFileConfigMixin=xFileConfigMixin;lang.mixin(xFileConfiguration,xFileConfigMixin)}lang.mixin(types.config,xFileConfiguration);
types.config.FILES_MODEL_PROTO=FileStoreModel;types.config.FILES_STORE_PROTO=FileStore}},start:function(config){this.inherited(arguments);this.boot();domClass.add(win.body(),"claro");try{if(!this.mainView){var parentNode=dojo.byId(config.ROOT_NODE||"xFileRoot");if(parentNode){this.mainView=new MainView({ctx:this.ctx,config:config,panelManager:this.ctx.getPanelManager(),persistent:false},parentNode);this.mainView.startup();this.ctx.mainView=this.mainView;this.ctx.getPanelManager().rootView=this.mainView;
this.mainView.initWithConfig(config)}}}catch(e){debugger}this.onStarted()}})})},"xide/widgets/ActionToolbarButton":function(){define(["dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","xide/types","xide/factory","dijit/form/Button"],function(declare,html,domClass,on,types,factory,Button){return dojo.declare("xide.widgets.ActionToolbarButton",[Button],{currentItem:null,buttons:null,iconClass:"",title:"title",disabled:false,iconNode:null,linkNode:null,label:null,setDisabled:function(disabled){this.set("disabled",
disabled)},postMixInProperties:function(){this.inherited(arguments)},startup:function(){this.inherited(arguments);this.setDisabled(this.disabled)}})})},"dijit/ProgressBar":function(){require({cache:{"url:dijit/templates/ProgressBar.html":'\x3cdiv class\x3d"dijitProgressBar dijitProgressBarEmpty" role\x3d"progressbar"\n\t\x3e\x3cdiv  data-dojo-attach-point\x3d"internalProgress" class\x3d"dijitProgressBarFull"\n\t\t\x3e\x3cdiv class\x3d"dijitProgressBarTile" role\x3d"presentation"\x3e\x3c/div\n\t\t\x3e\x3cspan style\x3d"visibility:hidden"\x3e\x26#160;\x3c/span\n\t\x3e\x3c/div\n\t\x3e\x3cdiv data-dojo-attach-point\x3d"labelNode" class\x3d"dijitProgressBarLabel" id\x3d"${id}_label"\x3e\x3c/div\n\t\x3e\x3cspan data-dojo-attach-point\x3d"indeterminateHighContrastImage"\n\t\t   class\x3d"dijitInline dijitProgressBarIndeterminateHighContrastImage"\x3e\x3c/span\n\x3e\x3c/div\x3e\n'}});
define("dijit/ProgressBar",["require","dojo/_base/declare","dojo/dom-class","dojo/_base/lang","dojo/number","./_Widget","./_TemplatedMixin","dojo/text!./templates/ProgressBar.html"],function(require,declare,domClass,lang,number,_Widget,_TemplatedMixin,template){return declare("dijit.ProgressBar",[_Widget,_TemplatedMixin],{progress:"0",value:"",maximum:100,places:0,indeterminate:false,label:"",name:"",templateString:template,_indeterminateHighContrastImagePath:require.toUrl("./themes/a11y/indeterminate_progress.gif"),
postMixInProperties:function(){this.inherited(arguments);if(!(this.params&&"value"in this.params))this.value=this.indeterminate?Infinity:this.progress},buildRendering:function(){this.inherited(arguments);this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString());this.update()},_setDirAttr:function(val){domClass.toggle(this.domNode,"dijitProgressBarRtl",val=="rtl");this.inherited(arguments)},update:function(attributes){lang.mixin(this,attributes||{});
var tip=this.internalProgress,ap=this.domNode;var percent=1;if(this.indeterminate)ap.removeAttribute("aria-valuenow");else{if(String(this.progress).indexOf("%")!=-1){percent=Math.min(parseFloat(this.progress)/100,1);this.progress=percent*this.maximum}else{this.progress=Math.min(this.progress,this.maximum);percent=this.maximum?this.progress/this.maximum:0}ap.setAttribute("aria-valuenow",this.progress)}ap.setAttribute("aria-labelledby",this.labelNode.id);ap.setAttribute("aria-valuemin",0);ap.setAttribute("aria-valuemax",
this.maximum);this.labelNode.innerHTML=this.report(percent);domClass.toggle(this.domNode,"dijitProgressBarIndeterminate",this.indeterminate);tip.style.width=percent*100+"%";this.onChange()},_setValueAttr:function(v){this._set("value",v);if(v==Infinity)this.update({indeterminate:true});else this.update({indeterminate:false,progress:v})},_setLabelAttr:function(label){this._set("label",label);this.update()},_setIndeterminateAttr:function(indeterminate){this._set("indeterminate",indeterminate);this.update()},
report:function(percent){return this.label?this.label:this.indeterminate?"\x26#160;":number.format(percent,{type:"percent",places:this.places,locale:this.lang})},onChange:function(){}})})},"url:dijit/form/templates/DropDownButton.html":'\x3cspan class\x3d"dijit dijitReset dijitInline"\n\t\x3e\x3cspan class\x3d\'dijitReset dijitInline dijitButtonNode\'\n\t\tdata-dojo-attach-event\x3d"ondijitclick:__onClick" data-dojo-attach-point\x3d"_buttonNode"\n\t\t\x3e\x3cspan class\x3d"dijitReset dijitStretch dijitButtonContents"\n\t\t\tdata-dojo-attach-point\x3d"focusNode,titleNode,_arrowWrapperNode,_popupStateNode"\n\t\t\trole\x3d"button" aria-haspopup\x3d"true" aria-labelledby\x3d"${id}_label"\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitIcon"\n\t\t\t\tdata-dojo-attach-point\x3d"iconNode"\n\t\t\t\x3e\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitButtonText"\n\t\t\t\tdata-dojo-attach-point\x3d"containerNode"\n\t\t\t\tid\x3d"${id}_label"\n\t\t\t\x3e\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitArrowButtonInner"\x3e\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitArrowButtonChar"\x3e\x26#9660;\x3c/span\n\t\t\x3e\x3c/span\n\t\x3e\x3c/span\n\t\x3e\x3cinput ${!nameAttrSetting} type\x3d"${type}" value\x3d"${value}" class\x3d"dijitOffScreen" tabIndex\x3d"-1"\n\t\tdata-dojo-attach-event\x3d"onclick:_onClick"\n\t\tdata-dojo-attach-point\x3d"valueNode" role\x3d"presentation"\n/\x3e\x3c/span\x3e\n',
"dijit/Toolbar":function(){define("dijit/Toolbar",["require","dojo/_base/declare","dojo/has","dojo/keys","dojo/ready","./_Widget","./_KeyNavContainer","./_TemplatedMixin"],function(require,declare,has,keys,ready,_Widget,_KeyNavContainer,_TemplatedMixin){if(has("dijit-legacy-requires"))ready(0,function(){var requires=["dijit/ToolbarSeparator"];require(requires)});return declare("dijit.Toolbar",[_Widget,_TemplatedMixin,_KeyNavContainer],{templateString:'\x3cdiv class\x3d"dijit" role\x3d"toolbar" tabIndex\x3d"${tabIndex}" data-dojo-attach-point\x3d"containerNode"\x3e'+
"\x3c/div\x3e",baseClass:"dijitToolbar",postCreate:function(){this.inherited(arguments);this.connectKeyNavHandlers(this.isLeftToRight()?[keys.LEFT_ARROW]:[keys.RIGHT_ARROW],this.isLeftToRight()?[keys.RIGHT_ARROW]:[keys.LEFT_ARROW])}})})},"dojo/promise/all":function(){define(["../_base/array","../Deferred","../when"],function(array,Deferred,when){var some=array.some;return function all(objectOrArray){var object,array;if(objectOrArray instanceof Array)array=objectOrArray;else if(objectOrArray&&typeof objectOrArray===
"object")object=objectOrArray;var results;var keyLookup=[];if(object){array=[];for(var key in object)if(Object.hasOwnProperty.call(object,key)){keyLookup.push(key);array.push(object[key])}results={}}else if(array)results=[];if(!array||!array.length)return(new Deferred).resolve(results);var deferred=new Deferred;deferred.promise.always(function(){results=keyLookup=null});var waiting=array.length;some(array,function(valueOrPromise,index){if(!object)keyLookup.push(index);when(valueOrPromise,function(value){if(!deferred.isFulfilled()){results[keyLookup[index]]=
value;if(--waiting===0)deferred.resolve(results)}},deferred.reject);return deferred.isFulfilled()});return deferred.promise}})},"dojo/fx/easing":function(){define(["../_base/lang"],function(lang){var easingFuncs={linear:function(n){return n},quadIn:function(n){return Math.pow(n,2)},quadOut:function(n){return n*(n-2)*-1},quadInOut:function(n){n=n*2;if(n<1)return Math.pow(n,2)/2;return-1*(--n*(n-2)-1)/2},cubicIn:function(n){return Math.pow(n,3)},cubicOut:function(n){return Math.pow(n-1,3)+1},cubicInOut:function(n){n=
n*2;if(n<1)return Math.pow(n,3)/2;n-=2;return(Math.pow(n,3)+2)/2},quartIn:function(n){return Math.pow(n,4)},quartOut:function(n){return-1*(Math.pow(n-1,4)-1)},quartInOut:function(n){n=n*2;if(n<1)return Math.pow(n,4)/2;n-=2;return-1/2*(Math.pow(n,4)-2)},quintIn:function(n){return Math.pow(n,5)},quintOut:function(n){return Math.pow(n-1,5)+1},quintInOut:function(n){n=n*2;if(n<1)return Math.pow(n,5)/2;n-=2;return(Math.pow(n,5)+2)/2},sineIn:function(n){return-1*Math.cos(n*(Math.PI/2))+1},sineOut:function(n){return Math.sin(n*
(Math.PI/2))},sineInOut:function(n){return-1*(Math.cos(Math.PI*n)-1)/2},expoIn:function(n){return n==0?0:Math.pow(2,10*(n-1))},expoOut:function(n){return n==1?1:-1*Math.pow(2,-10*n)+1},expoInOut:function(n){if(n==0)return 0;if(n==1)return 1;n=n*2;if(n<1)return Math.pow(2,10*(n-1))/2;--n;return(-1*Math.pow(2,-10*n)+2)/2},circIn:function(n){return-1*(Math.sqrt(1-Math.pow(n,2))-1)},circOut:function(n){n=n-1;return Math.sqrt(1-Math.pow(n,2))},circInOut:function(n){n=n*2;if(n<1)return-1/2*(Math.sqrt(1-
Math.pow(n,2))-1);n-=2;return 1/2*(Math.sqrt(1-Math.pow(n,2))+1)},backIn:function(n){var s=1.70158;return Math.pow(n,2)*((s+1)*n-s)},backOut:function(n){n=n-1;var s=1.70158;return Math.pow(n,2)*((s+1)*n+s)+1},backInOut:function(n){var s=1.70158*1.525;n=n*2;if(n<1)return Math.pow(n,2)*((s+1)*n-s)/2;n-=2;return(Math.pow(n,2)*((s+1)*n+s)+2)/2},elasticIn:function(n){if(n==0||n==1)return n;var p=0.3;var s=p/4;n=n-1;return-1*Math.pow(2,10*n)*Math.sin((n-s)*2*Math.PI/p)},elasticOut:function(n){if(n==0||
n==1)return n;var p=0.3;var s=p/4;return Math.pow(2,-10*n)*Math.sin((n-s)*2*Math.PI/p)+1},elasticInOut:function(n){if(n==0)return 0;n=n*2;if(n==2)return 1;var p=0.3*1.5;var s=p/4;if(n<1){n-=1;return-0.5*Math.pow(2,10*n)*Math.sin((n-s)*2*Math.PI/p)}n-=1;return 0.5*Math.pow(2,-10*n)*Math.sin((n-s)*2*Math.PI/p)+1},bounceIn:function(n){return 1-easingFuncs.bounceOut(1-n)},bounceOut:function(n){var s=7.5625;var p=2.75;var l;if(n<1/p)l=s*Math.pow(n,2);else if(n<2/p){n-=1.5/p;l=s*Math.pow(n,2)+0.75}else if(n<
2.5/p){n-=2.25/p;l=s*Math.pow(n,2)+0.9375}else{n-=2.625/p;l=s*Math.pow(n,2)+0.984375}return l},bounceInOut:function(n){if(n<0.5)return easingFuncs.bounceIn(n*2)/2;return easingFuncs.bounceOut(n*2-1)/2+0.5}};lang.setObject("dojo.fx.easing",easingFuncs);return easingFuncs})},"dojox/grid/Selection":function(){define("dojox/grid/Selection",["dojo/_base/declare","dojo/_base/array","dojo/_base/lang","dojo/dom-attr"],function(declare,array,lang,domAttr){return declare("dojox.grid.Selection",null,{constructor:function(inGrid){this.grid=
inGrid;this.selected=[];this.setMode(inGrid.selectionMode)},mode:"extended",selected:null,updating:0,selectedIndex:-1,rangeStartIndex:-1,setMode:function(mode){if(this.selected.length)this.deselectAll();if(mode!="extended"&&mode!="multiple"&&mode!="single"&&mode!="none")this.mode="extended";else this.mode=mode},onCanSelect:function(inIndex){return this.grid.onCanSelect(inIndex)},onCanDeselect:function(inIndex){return this.grid.onCanDeselect(inIndex)},onSelected:function(inIndex){},onDeselected:function(inIndex){},
onChanging:function(){},onChanged:function(){},isSelected:function(inIndex){if(this.mode=="none")return false;return this.selected[inIndex]},getFirstSelected:function(){if(!this.selected.length||this.mode=="none")return-1;for(var i=0,l=this.selected.length;i<l;i++)if(this.selected[i])return i;return-1},getNextSelected:function(inPrev){if(this.mode=="none")return-1;for(var i=inPrev+1,l=this.selected.length;i<l;i++)if(this.selected[i])return i;return-1},getSelected:function(){var result=[];for(var i=
0,l=this.selected.length;i<l;i++)if(this.selected[i])result.push(i);return result},getSelectedCount:function(){var c=0;for(var i=0;i<this.selected.length;i++)if(this.selected[i])c++;return c},_beginUpdate:function(){if(this.updating===0)this.onChanging();this.updating++},_endUpdate:function(){this.updating--;if(this.updating===0)this.onChanged()},select:function(inIndex){if(this.mode=="none")return;if(this.mode!="multiple"){this.deselectAll(inIndex);this.addToSelection(inIndex)}else this.toggleSelect(inIndex)},
addToSelection:function(inIndex){if(this.mode=="none")return;if(lang.isArray(inIndex)){array.forEach(inIndex,this.addToSelection,this);return}inIndex=Number(inIndex);if(this.selected[inIndex])this.selectedIndex=inIndex;else if(this.onCanSelect(inIndex)!==false){this.selectedIndex=inIndex;var rowNode=this.grid.getRowNode(inIndex);if(rowNode)domAttr.set(rowNode,"aria-selected","true");this._beginUpdate();this.selected[inIndex]=true;this.onSelected(inIndex);this._endUpdate()}},deselect:function(inIndex){if(this.mode==
"none")return;if(lang.isArray(inIndex)){array.forEach(inIndex,this.deselect,this);return}inIndex=Number(inIndex);if(this.selectedIndex==inIndex)this.selectedIndex=-1;if(this.selected[inIndex]){if(this.onCanDeselect(inIndex)===false)return;var rowNode=this.grid.getRowNode(inIndex);if(rowNode)domAttr.set(rowNode,"aria-selected","false");this._beginUpdate();delete this.selected[inIndex];this.onDeselected(inIndex);this._endUpdate()}},setSelected:function(inIndex,inSelect){this[inSelect?"addToSelection":
"deselect"](inIndex)},toggleSelect:function(inIndex){if(lang.isArray(inIndex)){array.forEach(inIndex,this.toggleSelect,this);return}this.setSelected(inIndex,!this.selected[inIndex])},_range:function(inFrom,inTo,func){var s=inFrom>=0?inFrom:inTo,e=inTo;if(s>e){e=s;s=inTo}for(var i=s;i<=e;i++)func(i)},selectRange:function(inFrom,inTo){this._range(inFrom,inTo,lang.hitch(this,"addToSelection"))},deselectRange:function(inFrom,inTo){this._range(inFrom,inTo,lang.hitch(this,"deselect"))},insert:function(inIndex){this.selected.splice(inIndex,
0,false);if(this.selectedIndex>=inIndex)this.selectedIndex++},remove:function(inIndex){this.selected.splice(inIndex,1);if(this.selectedIndex>=inIndex)this.selectedIndex--},deselectAll:function(inExcept){for(var i in this.selected)if(i!=inExcept&&this.selected[i]===true)this.deselect(i)},clickSelect:function(inIndex,inCtrlKey,inShiftKey){if(this.mode=="none")return;this._beginUpdate();if(this.mode!="extended")this.select(inIndex);else{if(!inShiftKey||this.rangeStartIndex<0)this.rangeStartIndex=inIndex;
if(!inCtrlKey)this.deselectAll(inIndex);if(inShiftKey)this.selectRange(this.rangeStartIndex,inIndex);else if(inCtrlKey)this.toggleSelect(inIndex);else this.addToSelection(inIndex)}this._endUpdate()},clickSelectEvent:function(e){this.clickSelect(e.rowIndex,dojo.isCopyKey(e),e.shiftKey)},clear:function(){this._beginUpdate();this.deselectAll();this._endUpdate()}})})},"url:dijit/templates/MenuBarItem.html":'\x3cdiv class\x3d"dijitReset dijitInline dijitMenuItem dijitMenuItemLabel" data-dojo-attach-point\x3d"focusNode"\n\t \trole\x3d"menuitem" tabIndex\x3d"-1"\x3e\n\t\x3cspan data-dojo-attach-point\x3d"containerNode,textDirNode"\x3e\x3c/span\x3e\n\x3c/div\x3e\n',
"xide/widgets/ToggleButton":function(){define(["dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","xfile/types","xapp/factory/Events","dijit/form/ToggleButton"],function(declare,html,domClass,on,types,eventFactory,Button){return dojo.declare("xide.widgets.ToggleButton",[Button],{currentItem:null,buttons:null,iconClass:"",title:"title",disabled:false,iconNode:null,linkNode:null,setDisabled:function(disabled){this.set("disabled",disabled)},postMixInProperties:function(){this.inherited(arguments)},
startup:function(){this.inherited(arguments);domClass.remove(this.iconNode,"dijitReset");this.setDisabled(this.disabled)}})})},"cbtree/model/_base/Prologue":function(){define("cbtree/model/_base/Prologue",[],function(){var undef;function Prologue(object,options){function setParentId(object,options){var objectId=this.getIdentity(object);var parents=options.parent;var parentId,np=[];var undef,i;if(parents instanceof Array)for(i=0;i<parents.length;i++){if(parentId=this.getIdentity(parents[i]))if(parentId!=
objectId&&np.indexOf(parentId)==-1)np?np.push(parentId):np=[parentId]}else if(parentId=this.getIdentity(parents)){if(parentId!=objectId)np=parentId}else np=undef;return np}if(options&&options.parent&&this.hierarchical!==true)object[this.parentProperty]=setParentId.call(this,object,options)}return Prologue})},"url:xide/views/templates/TitlePane.html":'\x3cdiv\x3e\n\t\x3cdiv data-dojo-attach-event\x3d"ondijitclick:_onTitleClick, onkeydown:_onTitleKey"\n\t\t\tclass\x3d"dijitTitlePaneTitle" data-dojo-attach-point\x3d"titleBarNode" id\x3d"${id}_titleBarNode"\x3e\n\t\t\x3cdiv class\x3d"dijitTitlePaneTitleFocus" data-dojo-attach-point\x3d"focusNode"\x3e\n\t\t\t\x3cspan data-dojo-attach-point\x3d"arrowNode" class\x3d"dijitInline dijitArrowNode_ el-icon-caret-right" role\x3d"presentation"\x3e\x3c/span\n\t\t\t\x3e\x3cspan data-dojo-attach-point\x3d"arrowNodeInner" class\x3d"dijitArrowNodeInner"\x3e\x3c/span\n\t\t\t\x3e\x3cspan data-dojo-attach-point\x3d"titleNode" class\x3d"dijitTitlePaneTextNode"\x3e\x3c/span\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\t\x3cdiv class\x3d"dijitTitlePaneContentOuter" data-dojo-attach-point\x3d"hideNode" role\x3d"presentation"\x3e\n\t\t\x3cdiv class\x3d"dijitReset" data-dojo-attach-point\x3d"wipeNode" role\x3d"presentation"\x3e\n\t\t\t\x3cdiv class\x3d"dijitTitlePaneContentInner" data-dojo-attach-point\x3d"containerNode" role\x3d"region" id\x3d"${id}_pane" aria-labelledby\x3d"${id}_titleBarNode"\x3e\n\t\t\t\t\x3c!-- nested divs because wipeIn()/wipeOut() doesn\'t work right on node w/padding etc.  Put padding on inner div. --\x3e\n\t\t\t\x3c/div\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e\n',
"dijit/CheckedMenuItem":function(){require({cache:{"url:dijit/templates/CheckedMenuItem.html":'\x3ctr class\x3d"dijitReset dijitMenuItem" data-dojo-attach-point\x3d"focusNode" role\x3d"${role}" tabIndex\x3d"-1" aria-checked\x3d"${checked}"\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemIconCell" role\x3d"presentation"\x3e\n\t\t\x3cspan class\x3d"dijitInline dijitIcon dijitMenuItemIcon dijitCheckedMenuItemIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\x3e\n\t\t\x3cspan class\x3d"dijitMenuItemIconChar dijitCheckedMenuItemIconChar"\x3e${checkedChar}\x3c/span\x3e\n\t\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemLabel" colspan\x3d"2" data-dojo-attach-point\x3d"containerNode,labelNode,textDirNode"\x3e\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemAccelKey" style\x3d"display: none" data-dojo-attach-point\x3d"accelKeyNode"\x3e\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuArrowCell" role\x3d"presentation"\x3e\x26#160;\x3c/td\x3e\n\x3c/tr\x3e\n'}});
define("dijit/CheckedMenuItem",["dojo/_base/declare","dojo/dom-class","./MenuItem","dojo/text!./templates/CheckedMenuItem.html","./hccss"],function(declare,domClass,MenuItem,template){return declare("dijit.CheckedMenuItem",MenuItem,{baseClass:"dijitCheckedMenuItem",templateString:template,checked:false,_setCheckedAttr:function(checked){domClass.toggle(this.domNode,this.baseClass+"Checked",checked);this.domNode.setAttribute("aria-checked",checked?"true":"false");this._set("checked",checked)},iconClass:"",
role:"menuitemcheckbox",checkedChar:"\x26#10003;",onChange:function(){},_onClick:function(evt){if(!this.disabled){this.set("checked",!this.checked);this.onChange(this.checked)}this.onClick(evt)}})})},"dojox/grid/_Grid":function(){require({cache:{"url:dojox/grid/resources/_Grid.html":'\x3cdiv hidefocus\x3d"hidefocus" role\x3d"grid" dojoAttachEvent\x3d"onmouseout:_mouseOut"\x3e\n\t\x3cdiv class\x3d"dojoxGridMasterHeader" dojoAttachPoint\x3d"viewsHeaderNode" role\x3d"presentation"\x3e\x3c/div\x3e\n\t\x3cdiv class\x3d"dojoxGridMasterView" dojoAttachPoint\x3d"viewsNode" role\x3d"presentation"\x3e\x3c/div\x3e\n\t\x3cdiv class\x3d"dojoxGridMasterMessages" style\x3d"display: none;" dojoAttachPoint\x3d"messagesNode"\x3e\x3c/div\x3e\n\t\x3cspan dojoAttachPoint\x3d"lastFocusNode" tabindex\x3d"0"\x3e\x3c/span\x3e\n\x3c/div\x3e\n'}});
define("dojox/grid/_Grid",["dojo/_base/kernel","../main","dojo/_base/declare","./_Events","./_Scroller","./_Layout","./_View","./_ViewManager","./_RowManager","./_FocusManager","./_EditManager","./Selection","./_RowSelector","./util","dijit/_Widget","dijit/_TemplatedMixin","dijit/CheckedMenuItem","dojo/text!./resources/_Grid.html","dojo/string","dojo/_base/array","dojo/_base/lang","dojo/_base/sniff","dojox/html/metrics","dojo/_base/html","dojo/query","dojo/dnd/common","dojo/i18n!dijit/nls/loading"],
function(dojo,dojox,declare,_Events,_Scroller,_Layout,_View,_ViewManager,_RowManager,_FocusManager,_EditManager,Selection,_RowSelector,util,_Widget,_TemplatedMixin,CheckedMenuItem,template,string,array,lang,has,metrics,html,query){if(!dojo.isCopyKey)dojo.isCopyKey=dojo.dnd.getCopyKeyState;var _Grid=declare("dojox.grid._Grid",[_Widget,_TemplatedMixin,_Events],{templateString:template,classTag:"dojoxGrid",rowCount:5,keepRows:75,rowsPerPage:25,autoWidth:false,initialWidth:"",autoHeight:"",rowHeight:0,
autoRender:true,defaultHeight:"15em",height:"",structure:null,elasticView:-1,singleClickEdit:false,selectionMode:"extended",rowSelector:"",columnReordering:false,headerMenu:null,placeholderLabel:"GridColumns",selectable:false,_click:null,loadingMessage:"\x3cspan class\x3d'dojoxGridLoading'\x3e${loadingState}\x3c/span\x3e",errorMessage:"\x3cspan class\x3d'dojoxGridError'\x3e${errorState}\x3c/span\x3e",noDataMessage:"",escapeHTMLInData:true,formatterScope:null,editable:false,summary:"",_setSummaryAttr:"domNode",
sortInfo:0,_placeholders:null,_layoutClass:_Layout,buildRendering:function(){this.inherited(arguments);if(!this.domNode.getAttribute("tabIndex"))this.domNode.tabIndex="0";this.createScroller();this.createLayout();this.createViews();this.createManagers();this.createSelection();this.connect(this.selection,"onSelected","onSelected");this.connect(this.selection,"onDeselected","onDeselected");this.connect(this.selection,"onChanged","onSelectionChanged");metrics.initOnFontResize();this.connect(metrics,
"onFontResize","textSizeChanged");util.funnelEvents(this.domNode,this,"doKeyEvent",util.keyEvents);if(this.selectionMode!="none")this.domNode.setAttribute("aria-multiselectable",this.selectionMode=="single"?"false":"true");html.addClass(this.domNode,this.classTag);if(!this.isLeftToRight())html.addClass(this.domNode,this.classTag+"Rtl");if(this.rowHeight>0)html.addClass(this.viewsNode,this.classTag+"FixedRowHeight")},postMixInProperties:function(){this.inherited(arguments);var messages=dojo.i18n.getLocalization("dijit",
"loading",this.lang);this.loadingMessage=string.substitute(this.loadingMessage,messages);this.errorMessage=string.substitute(this.errorMessage,messages);if(this.srcNodeRef&&this.srcNodeRef.style.height)this.height=this.srcNodeRef.style.height;this._setAutoHeightAttr(this.autoHeight,true);this.lastScrollTop=this.scrollTop=0},postCreate:function(){this._placeholders=[];this._setHeaderMenuAttr(this.headerMenu);this._setStructureAttr(this.structure);this._click=[];this.inherited(arguments);if(this.domNode&&
this.autoWidth&&this.initialWidth)this.domNode.style.width=this.initialWidth;if(this.domNode&&!this.editable)html.attr(this.domNode,"aria-readonly","true")},destroy:function(){this.domNode.onReveal=null;this.domNode.onSizeChange=null;delete this._click;if(this.scroller){this.scroller.destroy();delete this.scroller}this.edit.destroy();delete this.edit;this.views.destroyViews();if(this.focus){this.focus.destroy();delete this.focus}if(this.headerMenu&&this._placeholders.length){array.forEach(this._placeholders,
function(p){p.unReplace(true)});this.headerMenu.unBindDomNode(this.viewsHeaderNode)}this.inherited(arguments)},_setAutoHeightAttr:function(ah,skipRender){if(typeof ah=="string")if(!ah||ah=="false")ah=false;else if(ah=="true")ah=true;else ah=window.parseInt(ah,10);if(typeof ah=="number"){if(isNaN(ah))ah=false;if(ah<0)ah=true;else if(ah===0)ah=false}this.autoHeight=ah;if(typeof ah=="boolean")this._autoHeight=ah;else if(typeof ah=="number")this._autoHeight=ah>=this.get("rowCount");else this._autoHeight=
false;if(this._started&&!skipRender)this.render()},_getRowCountAttr:function(){return this.updating&&this.invalidated&&this.invalidated.rowCount!=undefined?this.invalidated.rowCount:this.rowCount},textSizeChanged:function(){this.render()},sizeChange:function(){this.update()},createManagers:function(){this.rows=new _RowManager(this);this.focus=new _FocusManager(this);this.edit=new _EditManager(this)},createSelection:function(){this.selection=new Selection(this)},createScroller:function(){this.scroller=
new _Scroller;this.scroller.grid=this;this.scroller.renderRow=lang.hitch(this,"renderRow");this.scroller.removeRow=lang.hitch(this,"rowRemoved")},createLayout:function(){this.layout=new this._layoutClass(this);this.connect(this.layout,"moveColumn","onMoveColumn")},onMoveColumn:function(){this.update()},onResizeColumn:function(cellIdx){},createViews:function(){this.views=new _ViewManager(this);this.views.createView=lang.hitch(this,"createView")},createView:function(inClass,idx){var c=lang.getObject(inClass);
var view=new c({grid:this,index:idx});this.viewsNode.appendChild(view.domNode);this.viewsHeaderNode.appendChild(view.headerNode);this.views.addView(view);html.attr(this.domNode,"align",this.isLeftToRight()?"left":"right");return view},buildViews:function(){for(var i=0,vs;vs=this.layout.structure[i];i++)this.createView(vs.type||dojox._scopeName+".grid._View",i).setStructure(vs);this.scroller.setContentNodes(this.views.getContentNodes())},_setStructureAttr:function(structure){var s=structure;if(s&&
lang.isString(s)){dojo.deprecated("dojox.grid._Grid.set('structure', 'objVar')","use dojox.grid._Grid.set('structure', objVar) instead","2.0");s=lang.getObject(s)}this.structure=s;if(!s)if(this.layout.structure)s=this.layout.structure;else return;this.views.destroyViews();this.focus.focusView=null;if(s!==this.layout.structure)this.layout.setStructure(s);this._structureChanged()},setStructure:function(inStructure){dojo.deprecated("dojox.grid._Grid.setStructure(obj)","use dojox.grid._Grid.set('structure', obj) instead.",
"2.0");this._setStructureAttr(inStructure)},getColumnTogglingItems:function(){var items,checkedItems=[];items=array.map(this.layout.cells,function(cell){if(!cell.menuItems)cell.menuItems=[];var self=this;var item=new CheckedMenuItem({label:cell.name,checked:!cell.hidden,_gridCell:cell,onChange:function(checked){if(self.layout.setColumnVisibility(this._gridCell.index,checked)){var items=this._gridCell.menuItems;if(items.length>1)array.forEach(items,function(item){if(item!==this)item.setAttribute("checked",
checked)},this);checked=array.filter(self.layout.cells,function(c){if(c.menuItems.length>1)array.forEach(c.menuItems,"item.set('disabled', false);");else c.menuItems[0].set("disabled",false);return!c.hidden});if(checked.length==1)array.forEach(checked[0].menuItems,"item.set('disabled', true);")}},destroy:function(){var index=array.indexOf(this._gridCell.menuItems,this);this._gridCell.menuItems.splice(index,1);delete this._gridCell;CheckedMenuItem.prototype.destroy.apply(this,arguments)}});cell.menuItems.push(item);
if(!cell.hidden)checkedItems.push(item);return item},this);if(checkedItems.length==1)checkedItems[0].set("disabled",true);return items},_setHeaderMenuAttr:function(menu){if(this._placeholders&&this._placeholders.length){array.forEach(this._placeholders,function(p){p.unReplace(true)});this._placeholders=[]}if(this.headerMenu)this.headerMenu.unBindDomNode(this.viewsHeaderNode);this.headerMenu=menu;if(!menu)return;this.headerMenu.bindDomNode(this.viewsHeaderNode);if(this.headerMenu.getPlaceholders)this._placeholders=
this.headerMenu.getPlaceholders(this.placeholderLabel)},setHeaderMenu:function(menu){dojo.deprecated("dojox.grid._Grid.setHeaderMenu(obj)","use dojox.grid._Grid.set('headerMenu', obj) instead.","2.0");this._setHeaderMenuAttr(menu)},setupHeaderMenu:function(){if(this._placeholders&&this._placeholders.length)array.forEach(this._placeholders,function(p){if(p._replaced)p.unReplace(true);p.replace(this.getColumnTogglingItems())},this)},_fetch:function(start){this.setScrollTop(0)},getItem:function(inRowIndex){return null},
showMessage:function(message){if(message){this.messagesNode.innerHTML=message;this.messagesNode.style.display=""}else{this.messagesNode.innerHTML="";this.messagesNode.style.display="none"}},_structureChanged:function(){this.buildViews();if(this.autoRender&&this._started)this.render()},hasLayout:function(){return this.layout.cells.length},resize:function(changeSize,resultSize){this._pendingChangeSize=changeSize;this._pendingResultSize=resultSize;this.sizeChange()},_getPadBorder:function(){this._padBorder=
this._padBorder||html._getPadBorderExtents(this.domNode);return this._padBorder},_getHeaderHeight:function(){var vns=this.viewsHeaderNode.style,t=vns.display=="none"?0:this.views.measureHeader();vns.height=t+"px";this.views.normalizeHeaderNodeHeight();return t},_resize:function(changeSize,resultSize){changeSize=changeSize||this._pendingChangeSize;resultSize=resultSize||this._pendingResultSize;delete this._pendingChangeSize;delete this._pendingResultSize;if(!this.domNode)return;var pn=this.domNode.parentNode;
if(!pn||pn.nodeType!=1||!this.hasLayout()||pn.style.visibility=="hidden"||pn.style.display=="none")return;var padBorder=this._getPadBorder();var hh=undefined;var h;if(this._autoHeight)this.domNode.style.height="auto";else if(typeof this.autoHeight=="number"){h=hh=this._getHeaderHeight();h+=this.scroller.averageRowHeight*this.autoHeight;this.domNode.style.height=h+"px"}else if(this.domNode.clientHeight<=padBorder.h)if(pn==document.body)this.domNode.style.height=this.defaultHeight;else if(this.height)this.domNode.style.height=
this.height;else this.fitTo="parent";if(resultSize)changeSize=resultSize;if(!this._autoHeight&&changeSize){html.marginBox(this.domNode,changeSize);this.height=this.domNode.style.height;delete this.fitTo}else if(this.fitTo=="parent"){h=this._parentContentBoxHeight=this._parentContentBoxHeight>0?this._parentContentBoxHeight:html._getContentBox(pn).h;this.domNode.style.height=Math.max(0,h)+"px"}var hasFlex=array.some(this.views.views,function(v){return v.flexCells});if(!this._autoHeight&&(h||html._getContentBox(this.domNode).h)===
0)this.viewsHeaderNode.style.display="none";else{this.viewsHeaderNode.style.display="block";if(!hasFlex&&hh===undefined)hh=this._getHeaderHeight()}if(hasFlex)hh=undefined;this.adaptWidth();this.adaptHeight(hh);this.postresize()},adaptWidth:function(){var doAutoWidth=!this.initialWidth&&this.autoWidth;var w=doAutoWidth?0:this.domNode.clientWidth||this.domNode.offsetWidth-this._getPadBorder().w,vw=this.views.arrange(1,w);this.views.onEach("adaptWidth");if(doAutoWidth)this.domNode.style.width=vw+"px"},
adaptHeight:function(inHeaderHeight){var t=inHeaderHeight===undefined?this._getHeaderHeight():inHeaderHeight;var h=this._autoHeight?-1:Math.max(this.domNode.clientHeight-t,0)||0;this.views.onEach("setSize",[0,h]);this.views.onEach("adaptHeight");if(!this._autoHeight){var numScroll=0,numNoScroll=0;var noScrolls=array.filter(this.views.views,function(v){var has=v.hasHScrollbar();if(has)numScroll++;else numNoScroll++;return!has});if(numScroll>0&&numNoScroll>0)array.forEach(noScrolls,function(v){v.adaptHeight(true)})}if(this.autoHeight===
true||h!=-1||typeof this.autoHeight=="number"&&this.autoHeight>=this.get("rowCount"))this.scroller.windowHeight=h;else this.scroller.windowHeight=Math.max(this.domNode.clientHeight-t,0)},startup:function(){if(this._started)return;this.inherited(arguments);if(this.autoRender)this.render()},render:function(){if(!this.domNode)return;if(!this._started)return;if(!this.hasLayout()){this.scroller.init(0,this.keepRows,this.rowsPerPage);return}this.update=this.defaultUpdate;this._render()},_render:function(){this.scroller.init(this.get("rowCount"),
this.keepRows,this.rowsPerPage);this.prerender();this.setScrollTop(0);this.postrender()},prerender:function(){this.keepRows=this._autoHeight?0:this.keepRows;this.scroller.setKeepInfo(this.keepRows);this.views.render();this._resize()},postrender:function(){this.postresize();this.focus.initFocusView();html.setSelectable(this.domNode,this.selectable)},postresize:function(){if(this._autoHeight){var size=Math.max(this.views.measureContent())+"px";this.viewsNode.style.height=size}},renderRow:function(inRowIndex,
inNodes){this.views.renderRow(inRowIndex,inNodes,this._skipRowRenormalize)},rowRemoved:function(inRowIndex){this.views.rowRemoved(inRowIndex)},invalidated:null,updating:false,beginUpdate:function(){this.invalidated=[];this.updating=true},endUpdate:function(){this.updating=false;var i=this.invalidated,r;if(i.all)this.update();else if(i.rowCount!=undefined)this.updateRowCount(i.rowCount);else for(r in i)this.updateRow(Number(r));this.invalidated=[]},defaultUpdate:function(){if(!this.domNode)return;
if(this.updating){this.invalidated.all=true;return}this.lastScrollTop=this.scrollTop;this.prerender();this.scroller.invalidateNodes();this.setScrollTop(this.lastScrollTop);this.postrender()},update:function(){this.render()},updateRow:function(inRowIndex){inRowIndex=Number(inRowIndex);if(this.updating)this.invalidated[inRowIndex]=true;else{this.views.updateRow(inRowIndex);this.scroller.rowHeightChanged(inRowIndex)}},updateRows:function(startIndex,howMany){startIndex=Number(startIndex);howMany=Number(howMany);
var i;if(this.updating)for(i=0;i<howMany;i++)this.invalidated[i+startIndex]=true;else{for(i=0;i<howMany;i++)this.views.updateRow(i+startIndex,this._skipRowRenormalize);this.scroller.rowHeightChanged(startIndex)}},updateRowCount:function(inRowCount){if(this.updating)this.invalidated.rowCount=inRowCount;else{this.rowCount=inRowCount;this._setAutoHeightAttr(this.autoHeight,true);if(this.layout.cells.length)this.scroller.updateRowCount(inRowCount);this._resize();if(this.layout.cells.length)this.setScrollTop(this.scrollTop)}},
updateRowStyles:function(inRowIndex){this.views.updateRowStyles(inRowIndex)},getRowNode:function(inRowIndex){if(this.focus.focusView&&!(this.focus.focusView instanceof _RowSelector))return this.focus.focusView.rowNodes[inRowIndex];else for(var i=0,cView;cView=this.views.views[i];i++)if(!(cView instanceof _RowSelector))return cView.rowNodes[inRowIndex];return null},rowHeightChanged:function(inRowIndex){this.views.renormalizeRow(inRowIndex);this.scroller.rowHeightChanged(inRowIndex)},fastScroll:true,
delayScroll:false,scrollRedrawThreshold:has("ie")?100:50,scrollTo:function(inTop){if(!this.fastScroll){this.setScrollTop(inTop);return}var delta=Math.abs(this.lastScrollTop-inTop);this.lastScrollTop=inTop;if(delta>this.scrollRedrawThreshold||this.delayScroll){this.delayScroll=true;this.scrollTop=inTop;this.views.setScrollTop(inTop);if(this._pendingScroll)window.clearTimeout(this._pendingScroll);var _this=this;this._pendingScroll=window.setTimeout(function(){delete _this._pendingScroll;_this.finishScrollJob()},
200)}else this.setScrollTop(inTop)},finishScrollJob:function(){this.delayScroll=false;this.setScrollTop(this.scrollTop)},setScrollTop:function(inTop){this.scroller.scroll(this.views.setScrollTop(inTop))},scrollToRow:function(inRowIndex){this.setScrollTop(this.scroller.findScrollTop(inRowIndex)+1)},styleRowNode:function(inRowIndex,inRowNode){if(inRowNode)this.rows.styleRowNode(inRowIndex,inRowNode)},_mouseOut:function(e){this.rows.setOverRow(-2)},getCell:function(inIndex){return this.layout.cells[inIndex]},
setCellWidth:function(inIndex,inUnitWidth){this.getCell(inIndex).unitWidth=inUnitWidth},getCellName:function(inCell){return"Cell "+inCell.index},canSort:function(inSortInfo){},sort:function(){},getSortAsc:function(inSortInfo){inSortInfo=inSortInfo==undefined?this.sortInfo:inSortInfo;return Boolean(inSortInfo>0)},getSortIndex:function(inSortInfo){inSortInfo=inSortInfo==undefined?this.sortInfo:inSortInfo;return Math.abs(inSortInfo)-1},setSortIndex:function(inIndex,inAsc){var si=inIndex+1;if(inAsc!=
undefined)si*=inAsc?1:-1;else if(this.getSortIndex()==inIndex)si=-this.sortInfo;this.setSortInfo(si)},setSortInfo:function(inSortInfo){if(this.canSort(inSortInfo)){this.sortInfo=inSortInfo;this.sort();this.update()}},doKeyEvent:function(e){e.dispatch="do"+e.type;this.onKeyEvent(e)},_dispatch:function(m,e){if(m in this)return this[m](e);return false},dispatchKeyEvent:function(e){this._dispatch(e.dispatch,e)},dispatchContentEvent:function(e){this.edit.dispatchEvent(e)||e.sourceView.dispatchContentEvent(e)||
this._dispatch(e.dispatch,e)},dispatchHeaderEvent:function(e){e.sourceView.dispatchHeaderEvent(e)||this._dispatch("doheader"+e.type,e)},dokeydown:function(e){this.onKeyDown(e)},doclick:function(e){if(e.cellNode)this.onCellClick(e);else this.onRowClick(e)},dodblclick:function(e){if(e.cellNode)this.onCellDblClick(e);else this.onRowDblClick(e)},docontextmenu:function(e){if(e.cellNode)this.onCellContextMenu(e);else this.onRowContextMenu(e)},doheaderclick:function(e){if(e.cellNode)this.onHeaderCellClick(e);
else this.onHeaderClick(e)},doheaderdblclick:function(e){if(e.cellNode)this.onHeaderCellDblClick(e);else this.onHeaderDblClick(e)},doheadercontextmenu:function(e){if(e.cellNode)this.onHeaderCellContextMenu(e);else this.onHeaderContextMenu(e)},doStartEdit:function(inCell,inRowIndex){this.onStartEdit(inCell,inRowIndex)},doApplyCellEdit:function(inValue,inRowIndex,inFieldIndex){this.onApplyCellEdit(inValue,inRowIndex,inFieldIndex)},doCancelEdit:function(inRowIndex){this.onCancelEdit(inRowIndex)},doApplyEdit:function(inRowIndex){this.onApplyEdit(inRowIndex)},
addRow:function(){this.updateRowCount(this.get("rowCount")+1)},removeSelectedRows:function(){if(this.allItemsSelected)this.updateRowCount(0);else this.updateRowCount(Math.max(0,this.get("rowCount")-this.selection.getSelected().length));this.selection.clear()}});_Grid.markupFactory=function(props,node,ctor,cellFunc){var widthFromAttr=function(n){var w=html.attr(n,"width")||"auto";if(w!="auto"&&w.slice(-2)!="em"&&w.slice(-1)!="%")w=parseInt(w,10)+"px";return w};if(!props.structure&&node.nodeName.toLowerCase()==
"table"){props.structure=query("\x3e colgroup",node).map(function(cg){var sv=html.attr(cg,"span");var v={noscroll:html.attr(cg,"noscroll")=="true"?true:false,__span:!!sv?parseInt(sv,10):1,cells:[]};if(html.hasAttr(cg,"width"))v.width=widthFromAttr(cg);return v});if(!props.structure.length)props.structure.push({__span:Infinity,cells:[]});query("thead \x3e tr",node).forEach(function(tr,tr_idx){var cellCount=0;var viewIdx=0;var lastViewIdx;var cView=null;query("\x3e th",tr).map(function(th){if(!cView){lastViewIdx=
0;cView=props.structure[0]}else if(cellCount>=lastViewIdx+cView.__span){viewIdx++;lastViewIdx+=cView.__span;var lastView=cView;cView=props.structure[viewIdx]}var cell={name:lang.trim(html.attr(th,"name")||th.innerHTML),colSpan:parseInt(html.attr(th,"colspan")||1,10),type:lang.trim(html.attr(th,"cellType")||""),id:lang.trim(html.attr(th,"id")||"")};cellCount+=cell.colSpan;var rowSpan=html.attr(th,"rowspan");if(rowSpan)cell.rowSpan=rowSpan;if(html.hasAttr(th,"width"))cell.width=widthFromAttr(th);if(html.hasAttr(th,
"relWidth"))cell.relWidth=window.parseInt(html.attr(th,"relWidth"),10);if(html.hasAttr(th,"hidden"))cell.hidden=html.attr(th,"hidden")=="true"||html.attr(th,"hidden")===true;if(cellFunc)cellFunc(th,cell);cell.type=cell.type?lang.getObject(cell.type):dojox.grid.cells.Cell;if(cell.type&&cell.type.markupFactory)cell.type.markupFactory(th,cell);if(!cView.cells[tr_idx])cView.cells[tr_idx]=[];cView.cells[tr_idx].push(cell)})})}return new ctor(props,node)};return _Grid})},"xapp/utils/DataUtils":function(){define("xapp/utils/DataUtils",
["dojo/_base/declare","dojox/encoding/digests/MD5","xapp/utils","xapp/types","dojo/_base/lang","dojo/json","dojo/has"],function(declare,MD5,utils,coretypes,lang,json,has){utils.createDefaultStore=function(args){var storageClz=null;var isMobile=!has("xas");if(isMobile)storageClz=dojo.getObject(xapp.CT_STORE_DEFAULT_READ_CLASS);else storageClz=dojo.getObject(xapp.CT_STORE_DEFAULT_WRITE_CLASS);return new storageClz(args)};utils.getJson=function(inData,validOnly){try{return lang.isString(inData)?json.parse(inData,
false):validOnly===true?null:inData}catch(e){}return null};utils.updateDSUrl=function(data){var dsUrl=utils.getUrlByData(data);if(data&&dsUrl)data[xapp.K_DSURL]=dsUrl};utils.updateDSUrlItems=function(data){var items=utils.getItems(data);if(items&&items.length>0)for(var i=0;i<items.length;i++)utils.updateDSUrl(items[i])};utils.concatAndResolveUrl=function(url,concat){var url1=url.split("/");var url2=concat.split("/");var url3=[];for(var i=0,l=url1.length;i<l;i++)if(url1[i]=="..")url3.pop();else if(url1[i]==
".")continue;else url3.push(url1[i]);for(var i=0,l=url2.length;i<l;i++)if(url2[i]=="..")url3.pop();else if(url2[i]==".")continue;else url3.push(url2[i]);return url3.join("/")};utils.sortEx=function(data,field,direction){if(!data)return null;var items=utils.getItems(data);if(items&&items.length>0){var cmp=null;var _item=items[0][field];var _itemInt=parseFloat(_item);if(isNaN(_itemInt)&&lang.isString(_item)){cmp=null;if(direction==null)cmp=function(a,b){if(a&&b&&a[field]&&b[field]&&a[field][0]&&b[field][0]){if(a[field][0].toUpperCase()<
b[field][0].toUpperCase())return-1;if(a[field][0].toUpperCase()>b[field][0].toUpperCase())return 1}return 0};else cmp=function(a,b){if(a&&b&&a[field]&&b[field]&&a[field][0]&&b[field][0]){if(a[field][0].toUpperCase()>b[field][0].toUpperCase())return-1;if(a[field][0].toUpperCase()<b[field][0].toUpperCase())return 1}return 0};items.sort(cmp)}else if(!isNaN(_itemInt)){cmp=null;if(direction==null)cmp=function(a,b){if(a&&b&&a[field]&&b[field])return parseFloat(a[field])>parseFloat(b[field])?-1:1;return-1};
else cmp=function(a,b){if(a&&b&&a[field]&&b[field])return parseFloat(a[field])<parseFloat(b[field])?-1:1;return-1};items.sort(cmp)}}return data};utils.getParams=function(data){if(data)if(data["dsParams"])return data["dsParams"];return null};utils.isFragment=function(data){return data["fragmentTotal"]!=null&&data["fragment"]!=null};utils.isLastFragment=function(data){return utils.isFragment(data)&&data.fragment==data.fragmentTotal};utils.getDataSourceType=function(_data){if(_data){var _spec=xapp.K_DSPRAMS;
if(_data[_spec]&&_data[_spec].dsType!=null)return _data[_spec].dsType;var dataStr=utils.toString(_data);var typeInt=parseInt(dataStr);if(!isNaN(typeInt))return typeInt;else if(_data["sourceType"]!=null)return utils.getDataSourceType(_data["sourceType"]);else if(lang.isString(dataStr))return""+dataStr}return coretypes.sourceType.Unknown};utils.getRefId=function(dataItem){var refIdStr=dataItem.refIdString;if(utils.isValidString(refIdStr))return refIdStr;if(utils.isValidString(dataItem.ref))return dataItem.ref;
var _spec=xapp.K_DSPRAMS;if(dataItem[_spec]!=null&&dataItem[_spec].dsRef!=null)return dataItem[_spec].dsRef;return dataItem.refId};utils.getItems=function(dataItem){if(!dataItem)return null;var dataClass=dataItem["class"];if(dataClass==xapp.K_CLIST)return dataItem.items;if(dataClass==xapp.K_GCLIST)return dataItem.items[0].items;if(dataItem&&dataItem.items)return dataItem.items;return dataItem};utils.getFirstItem=function(dataItem){if(!dataItem.items)return null;var dataClass=dataItem["class"];if(dataClass==
xapp.K_CLIST)return dataItem.items[0];if(dataClass==xapp.K_GCLIST&&dataItem.items!=null&&dataItem.items.length>0)return dataItem.items[0].items[0];return null};utils.isEmptyDataSet=function(data){if(data==null)return null;var _cls=data["class"];if(_cls!=null&&_cls.indexOf("CContent")!=-1){var flags=utils.calcDataFlags(data);if(flags==0||flags==2)return true}var items=utils.getItems(data);if(items==null||items.length==0)return true;var item=utils.getFirstItem(data);if(item==null)return true;return false};
utils.isFeedItem=function(data){var sTypes=coretypes.sourceType;if(data.sourceType==null||data.sourceType===undefined)return true;var sourceType=parseInt(data.sourceType);if(sourceType==0||sourceType==sTypes.Unknown)return false;switch(sourceType){case sTypes.ExternalLink:case sTypes.RSS_ITEM:case sTypes.RADIO:return true}return false};utils.isContentType=function(sourceType){var sourceTypeInt=parseInt(sourceType);var sTypes=coretypes.sourceType;switch(sourceTypeInt){case sTypes.JEventsLocationItem:case sTypes.JoomlaArticle:case sTypes.JEventsItem:case sTypes.WordpressPost:case sTypes.StaticWebContent:case sTypes.StaticWebContentVenue:case sTypes.VMartProductItem:case sTypes.MosetTreeItem:case sTypes.MAP:case sTypes.GooglePicassaAlbum:case sTypes.GoogleCalendarItem:case sTypes.BreezingForm:case sTypes.RADIO:case sTypes.ExternalLink:return true}if(isNaN(sourceType)&&
ctx&&ctx.getConnectManager())try{var cType=ctx.getConnectManager().getTypeRegistry().hasUrlSchema(null,sourceType);if(cType!=null){var isDetail=utils.getCIInputValueByNameAndFieldStr(cType,coretypes.CustomTypePropertyKey.CTPK_IS_DETAIL,"value");if(isDetail!=null&&isDetail==="true")return true}}catch(e){}return false};utils.isContentItem=function(data){var sourceType=utils.getDataSourceType(data.sourceType);if(!isNaN(sourceType)&&sourceType==0||sourceType==coretypes.sourceType.Unknown)return false;
return utils.isContentType(sourceType)};utils.useAccordion=function(dataItem){var firstItem=utils.getFirstItem(dataItem);if(!firstItem)return false;if(utils.isFeedItem(firstItem))return false;return!utils.isContentItem(firstItem)};utils.hasItem=function(dataItem,type,refId){var typeInt=parseInt(type);var refIdInt=parseInt(refId);if(!dataItem)return false;if(!dataItem.items)return null;var dataClass=dataItem["class"];if(dataClass==xapp.K_CLIST){var items=dataItem.items;for(var i=0;i<dataItem.items.length;i++){var item=
dataItem.items[i];if(!item)continue;var _refId=parseInt(item.refId);var _sType=parseInt(item.sourceType);if(_refId==refIdInt&&_sType==typeInt)return true;if(item.ref&&item.ref==refId&&_sType==typeInt)return true;var _sTypeStr=utils.getDataSourceType(item);if(_sTypeStr!=null&&_sTypeStr===type)if(_refId==refIdInt)return true}}if(dataClass==xapp.K_GCLIST){var items=dataItem.items;for(var i=0;i<items.length;i++){var item=items[i];for(var j=0;j<item.items.length;j++){var jitem=item.items[j];var _refId=
parseInt(jitem.refId);var _refIdStr=""+jitem.refIdStr;var _sType=parseInt(jitem.sourceType);if(_refId==refIdInt&&_sType==type)return true;if(_refIdStr===refId&&_sType==type)return true;if(jitem.ref&&jitem.ref==refId&&_sType==type)return true}}}return false};utils.getFieldClass=function(formFieldType){switch(formFieldType){case "Text":return"dojox.mobile.TextBox";case "Textarea":return"dojox.mobile.TextArea";case "Regular Button":return"dojox.mobile.Button";case "Switch":return"dojox.mobile.Switch";
case "Select":return"dojox.mobile.TextBox";case "Option":return"div";case "Rich-Text":return"span"}return null};utils.formatTimeTweetTime=function(date,l10n){var now=new Date;var tweetDate=new Date(date);var secondsDifferent=Math.floor((now-tweetDate)/1E3);if(secondsDifferent<60)return secondsDifferent+" "+l10n["field-second"]+(secondsDifferent>1?"s":"");var minutesDifferent=Math.floor(secondsDifferent/60);if(minutesDifferent<60)return minutesDifferent+" "+l10n["field-minute"]+(minutesDifferent>1?
"s":"");var hoursDifferent=Math.floor(minutesDifferent/60);if(hoursDifferent<24)return hoursDifferent+" "+l10n["field-hour"]+(hoursDifferent>1?"s":"");var daysDifferent=Math.floor(hoursDifferent/24);return daysDifferent+" "+l10n["field-day"]+(daysDifferent>1?"s":"")};utils.pagesToCList=function(data){var clist={items:[],title:null};clist["class"]=xapp.K_CLIST;var app=ctx.getApplication();var icons=utils.getPagesSorted(ctx.getApplication().appStore,data);for(var i=0;i<icons.length;i++){var item=icons[i];
var titleCi=app.getCIByChainAndName(item,0,coretypes.CIName.Title,true);var title="NoTitle";if(titleCi)title=utils.toString(titleCi.value);var dataCi=app.getCIByChainAndName(item,0,coretypes.CIName.ContentSource,true);var url="";if(dataCi)url=utils.getUrlByContentSourceCI(dataCi);if(url=="tt://null/-1")console.error("*********have null item");var iconCi=app.getCIByChainAndName(item,0,coretypes.CIName.Icon,true);var icon="NoIcon";if(iconCi)icon=app.toUrl(utils.toString(iconCi.value));var shouldResize=
true;if(ctx.getImageResizeDelegate())shouldResize=ctx.getImageResizeDelegate().shouldResize(null,null,icon);if(shouldResize)icon=utils.buildResizeUrlForWidthAndServiceSettings(ctx.getSession().serviceSettings,icon,"70",false,true);var dataSourceType=utils.toString(dataCi.value);var dataSourceUID=utils.toString(dataCi.dataSource);var dataRef=utils.toString(dataCi.dataRef);if(has("xas")||shouldResize){var date=new Date;icon+="\x26time\x3d"+date.getTime()}var litem={title:title,iconUrl:icon,ref:dataRef,
sourceType:dataSourceType,dataSource:dataSourceUID};litem["class"]="pmedia.types.CListItem";clist.items.push(litem)}return clist};utils.calculateDataTemplateFullText=function(dataFlags,data,isSinglePage,dst,templateGroup){var _tplGroup=xapp.widgets.templates["default"];if(templateGroup)_tplGroup=xapp.widgets.templates[templateGroup];var dFlags=coretypes.DataRenderFlags;var tpl="";tpl+=_tplGroup.dataStartTmpl;if(utils.hasFlag(dFlags.Title,dataFlags))tpl+=_tplGroup.dataTitleTmpl;if(utils.hasFlag(dFlags.CategoryTitle,
dataFlags))tpl+=_tplGroup.dataCategoryTmpl;if(utils.hasFlag(dFlags.TextWithPicture,dataFlags)||utils.hasFlag(dFlags.Text,dataFlags))tpl+=_tplGroup.dataLongTextTmpl;tpl+=_tplGroup.dataEndTmpl;return tpl};utils.calculateInnerContentWithPictures=function(templ,data){var theText=data.description?data.description:null;if(!utils.isValidString(theText)&&utils.isValidString(data.introText))theText=data.introText;var pictureWidth="33%";var templateParams={title:data.title,category:data.localizedCategoryTitle?
data.localizedCategoryTitle:null,text:theText,postcode:data.pcode?data.pcode+" \x26nbsp;":null,city:data.city?data.city:null,phone:data.phone?data.phone:null,street:data.street?data.street:null};templateParams=lang.mixin(templateParams,data);var innerContent=utils.substituteString(templ,templateParams);if(utils.isValidString(data.descriptionExtra))innerContent+="\x3chr/\x3e";return innerContent};utils.isValidArray=function(input){return utils.isValidString(input)};utils.isSharable=function(type){var sTypes=
coretypes.sourceType;switch(type){case sTypes.JEventsLocationItem:case sTypes.GooglePicassaAlbum:case sTypes.JoomlaSection:case sTypes.JoomlaCategory:case sTypes.MosetTreeCategory:case sTypes.JoomlaArticle:case sTypes.JEventsItem:case sTypes.JEventsCalendarToday:case sTypes.JEventsCalendarWeek:case sTypes.WordpressCategory:case sTypes.WordpressPost:case sTypes.WordpressPage:case sTypes.StaticWebContent:case sTypes.StaticWebContentCategory:case sTypes.VMartCategory:case sTypes.ExternalLink:case sTypes.RSS:case sTypes.VMartProductItem:return true}if(isNaN(type))if(ctx.getConnectManager()&&
ctx.getConnectManager().getTypeRegistry())if(ctx.getConnectManager().getTypeRegistry().hasUrlSchema(null,type))return true;return false};utils.getGroupType=function(type){type=parseInt(type);switch(type){case coretypes.sourceType.JoomlaArticle:return coretypes.sourceType.JoomlaCategory;case coretypes.sourceType.JoomlaCategory:return coretypes.sourceType.JoomlaCategory}return coretypes.sourceType.Unkown};utils.getMultiViewCreationParameters=function(content,viewManager,selected,type,heading){var isShareable=
false;if(type!=null)isShareable=utils.isSharable(type);if(ctx&&ctx.getShareDelegate&&ctx.getShareDelegate()&&ctx.getShareDelegate().isSharable)isShareable=ctx.getShareDelegate().isSharable(type);var headingPos="top";var headingBackTarget=null;var headingTitle="Loading";var moduleFlags=0;if(heading&&viewManager.getCurrentHeading()==null)moduleFlags=coretypes.EVIEW.HEADING;if(heading)moduleFlags=coretypes.EVIEW.HEADING;if(isShareable)moduleFlags+=utils.enableFlag(coretypes.EVIEW.SHARE,moduleFlags);
var currentView=viewManager.getCurrentView();if(currentView)headingBackTarget=currentView.id;if(content&&content.title)headingTitle=content.title;return{headingBackTarget:headingBackTarget,headingTitle:headingTitle,headingPosition:headingPos,moduleFlags:moduleFlags,selected:selected}};utils.getModuleViewCreationParameters=function(content,viewManager,selected,type,heading,pageStoreData){var isShareable=false;if(type!=null)isShareable=utils.isSharable(type);if(ctx&&ctx.getShareDelegate&&ctx.getShareDelegate()&&
ctx.getShareDelegate().isSharable)isShareable=ctx.getShareDelegate().isSharable(type);var headingPos="top";var headingBackTarget=null;var headingTitle="Loading";var moduleFlags=0;if(heading&&viewManager.getCurrentHeading()==null)moduleFlags=coretypes.EVIEW.HEADING;moduleFlags=coretypes.EVIEW.HEADING;if(isShareable)moduleFlags+=utils.enableFlag(coretypes.EVIEW.SHARE,moduleFlags);if(pageStoreData!=null){var subPages=utils.getAppDataElementsByTypeAndParent(ctx.getApplication().getAppStore(),"view",""+
utils.toInt(pageStoreData.uid));if(subPages&&subPages.length>0)moduleFlags+=utils.enableFlag(coretypes.EVIEW.SECTIONS,moduleFlags)}var currentView=viewManager.getCurrentView();if(currentView)headingBackTarget=currentView.id;if(content&&content.title)headingTitle=content.title;return{headingBackTarget:headingBackTarget,headingTitle:headingTitle,headingPosition:headingPos,moduleFlags:moduleFlags,selected:selected}};utils.isArray=function(o){return Object.prototype.toString.call(o)==="[object Array]"};
utils.getViewClassForData=function(data){var type=data.type;if(type!=null&&type!="Unknown")if(type=="GooglePicassaAlbum")return"xapp.modules.RListModule";var _content=data;if(_content["class"]=="pmedia.types.ArticleData")return"xapp.modules.RListModule";if(_content["class"]==xapp.K_CLIST)_content=_content.items;if(!ctx.getSession().isTablet()){if(utils.isArray(_content)){var item=utils.getFirstItem(data);if(item){var itemClass=null;if(item["class"]==xapp.K_CLIST_ITEM)itemClass=item.dataClass;if(!itemClass&&
item["class"])itemClass=item["class"];if(itemClass=="pmedia.types.Category"||itemClass=="pmedia.types.ArticleData"||itemClass=="pmedia.types.ArticleCategory"||itemClass=="pmedia.types.CFeedItem")return"xapp.modules.RListModule"}}return"xapp.modules.RListModule"}else{if(utils.isArray(_content)){var item=_content[0];if(item){var itemClass=null;if(item["class"]==xapp.K_CLIST_ITEM)itemClass=item.dataClass;if(utils.useAccordion(data))return"xapp.modules.RAccordionModule"}}return"xapp.modules.RListModule"}};
utils.getBaseURL=function(){var url=window.location.href;var baseURL=url.substring(0,url.indexOf("/",14));if(baseURL.indexOf("http://localhost")!=-1){var url=location.href;var pathname=location.pathname;var index1=url.indexOf(pathname);var index2=url.indexOf("/",index1+1);var baseLocalUrl=url.substr(0,index2);return baseLocalUrl+"/"}else return baseURL+"/"+servletContextName()+"/"};utils.calcDataFlags=function(input){var result=0;var dFlags=coretypes.DataRenderFlags;if(utils.dataHasTextWithPicture(input))result+=
utils.enableFlag(dFlags.TextWithPicture,result);else if(utils.dataHasDescription(input))result+=utils.enableFlag(dFlags.Text,result);if(utils.dataHasExtraDescription(input))result+=utils.enableFlag(dFlags.ExtraText,result);if(utils.dataHasVideo(input))result+=utils.enableFlag(dFlags.Video,result);if(utils.dataHasGalleryPictures(input))result+=utils.enableFlag(dFlags.Gallery,result);if(utils.dataHasGeoLocation(input))result+=utils.enableFlag(dFlags.MapLocation,result);if(utils.dataHasTitle(input))result+=
utils.enableFlag(dFlags.Title,result);if(utils.dataHasWebLink(input))result+=utils.enableFlag(dFlags.WebLink,result);if(utils.dataHasPhone(input))result+=utils.enableFlag(dFlags.Phone,result);if(utils.dataHasPostCode(input))result+=utils.enableFlag(dFlags.PostCode,result);if(utils.dataHasAddress(input))result+=utils.enableFlag(dFlags.Address,result);if(utils.dataHasCity(input))result+=utils.enableFlag(dFlags.City,result);if(utils.dataHasAnnotations(input))result+=utils.enableFlag(dFlags.Annotations,
result);if(utils.dataHasCategoryTitle(input))result+=utils.enableFlag(dFlags.CategoryTitle,result);return result};utils.dataHasTextWithPicture=function(input){return utils.isValidString(input.descriptionNoPictures)&&utils.isValidString(input.descriptionPicture)||utils.isValidString(input.introText)};utils.dataHasText=function(input){var d=utils.isValidString(input.description)||(utils.isValidString(input.descriptionExtra)||utils.isValidString(input.descriptionNoPictures))||utils.isValidString(input.introText);
if(d)console.error("has text");return d};utils.dataHasDescription=function(input){return utils.isValidString(input.descriptionNoPictures)||utils.isValidString(input.introText)};utils.dataHasExtraDescription=function(input){return utils.isValidString(input.descriptionExtra)};utils.dataHasCategoryTitle=function(input){return utils.isValidString(input.localizedCategoryTitle)};utils.dataHasWebLink=function(input){return utils.isValidString(input.www)};utils.dataHasAddress=function(input){return utils.isValidString(input.street)};
utils.dataHasPhone=function(input){return utils.isValidString(input.phone)};utils.dataHasPostCode=function(input){return utils.isValidString(input.pcode)};utils.dataHasTitle=function(input){return utils.isValidString(input.title)};utils.dataHasCity=function(input){return utils.isValidString(input.city)};utils.dataHasVideo=function(input){return utils.isValidString(input.video)};utils.dataHasGeoLocation=function(input){return utils.isValidString(input.longtitude)&&utils.isValidString(input.latitude)};
utils.dataHasGalleryPictures=function(input){return input.galleryFiles&&input.galleryFiles.length>0};utils.dataHasAnnotations=function(input){return input.annotations&&input.annotations.length>0};return utils})},"dojox/encoding/digests/MD5":function(){define("dojox/encoding/digests/MD5",["./_base"],function(base){var chrsz=8;function R(n,c){return n<<c|n>>>32-c}function C(q,a,b,x,s,t){return base.addWords(R(base.addWords(base.addWords(a,q),base.addWords(x,t)),s),b)}function FF(a,b,c,d,x,s,t){return C(b&
c|~b&d,a,b,x,s,t)}function GG(a,b,c,d,x,s,t){return C(b&d|c&~d,a,b,x,s,t)}function HH(a,b,c,d,x,s,t){return C(b^c^d,a,b,x,s,t)}function II(a,b,c,d,x,s,t){return C(c^(b|~d),a,b,x,s,t)}function core(x,len){x[len>>5]|=128<<len%32;x[(len+64>>>9<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16){var olda=a;var oldb=b;var oldc=c;var oldd=d;a=FF(a,b,c,d,x[i+0],7,-680876936);d=FF(d,a,b,c,x[i+1],12,-389564586);c=FF(c,d,a,b,x[i+2],17,606105819);b=FF(b,
c,d,a,x[i+3],22,-1044525330);a=FF(a,b,c,d,x[i+4],7,-176418897);d=FF(d,a,b,c,x[i+5],12,1200080426);c=FF(c,d,a,b,x[i+6],17,-1473231341);b=FF(b,c,d,a,x[i+7],22,-45705983);a=FF(a,b,c,d,x[i+8],7,1770035416);d=FF(d,a,b,c,x[i+9],12,-1958414417);c=FF(c,d,a,b,x[i+10],17,-42063);b=FF(b,c,d,a,x[i+11],22,-1990404162);a=FF(a,b,c,d,x[i+12],7,1804603682);d=FF(d,a,b,c,x[i+13],12,-40341101);c=FF(c,d,a,b,x[i+14],17,-1502002290);b=FF(b,c,d,a,x[i+15],22,1236535329);a=GG(a,b,c,d,x[i+1],5,-165796510);d=GG(d,a,b,c,x[i+
6],9,-1069501632);c=GG(c,d,a,b,x[i+11],14,643717713);b=GG(b,c,d,a,x[i+0],20,-373897302);a=GG(a,b,c,d,x[i+5],5,-701558691);d=GG(d,a,b,c,x[i+10],9,38016083);c=GG(c,d,a,b,x[i+15],14,-660478335);b=GG(b,c,d,a,x[i+4],20,-405537848);a=GG(a,b,c,d,x[i+9],5,568446438);d=GG(d,a,b,c,x[i+14],9,-1019803690);c=GG(c,d,a,b,x[i+3],14,-187363961);b=GG(b,c,d,a,x[i+8],20,1163531501);a=GG(a,b,c,d,x[i+13],5,-1444681467);d=GG(d,a,b,c,x[i+2],9,-51403784);c=GG(c,d,a,b,x[i+7],14,1735328473);b=GG(b,c,d,a,x[i+12],20,-1926607734);
a=HH(a,b,c,d,x[i+5],4,-378558);d=HH(d,a,b,c,x[i+8],11,-2022574463);c=HH(c,d,a,b,x[i+11],16,1839030562);b=HH(b,c,d,a,x[i+14],23,-35309556);a=HH(a,b,c,d,x[i+1],4,-1530992060);d=HH(d,a,b,c,x[i+4],11,1272893353);c=HH(c,d,a,b,x[i+7],16,-155497632);b=HH(b,c,d,a,x[i+10],23,-1094730640);a=HH(a,b,c,d,x[i+13],4,681279174);d=HH(d,a,b,c,x[i+0],11,-358537222);c=HH(c,d,a,b,x[i+3],16,-722521979);b=HH(b,c,d,a,x[i+6],23,76029189);a=HH(a,b,c,d,x[i+9],4,-640364487);d=HH(d,a,b,c,x[i+12],11,-421815835);c=HH(c,d,a,b,x[i+
15],16,530742520);b=HH(b,c,d,a,x[i+2],23,-995338651);a=II(a,b,c,d,x[i+0],6,-198630844);d=II(d,a,b,c,x[i+7],10,1126891415);c=II(c,d,a,b,x[i+14],15,-1416354905);b=II(b,c,d,a,x[i+5],21,-57434055);a=II(a,b,c,d,x[i+12],6,1700485571);d=II(d,a,b,c,x[i+3],10,-1894986606);c=II(c,d,a,b,x[i+10],15,-1051523);b=II(b,c,d,a,x[i+1],21,-2054922799);a=II(a,b,c,d,x[i+8],6,1873313359);d=II(d,a,b,c,x[i+15],10,-30611744);c=II(c,d,a,b,x[i+6],15,-1560198380);b=II(b,c,d,a,x[i+13],21,1309151649);a=II(a,b,c,d,x[i+4],6,-145523070);
d=II(d,a,b,c,x[i+11],10,-1120210379);c=II(c,d,a,b,x[i+2],15,718787259);b=II(b,c,d,a,x[i+9],21,-343485551);a=base.addWords(a,olda);b=base.addWords(b,oldb);c=base.addWords(c,oldc);d=base.addWords(d,oldd)}return[a,b,c,d]}function hmac(data,key){var wa=base.stringToWord(key);if(wa.length>16)wa=core(wa,key.length*chrsz);var l=[],r=[];for(var i=0;i<16;i++){l[i]=wa[i]^909522486;r[i]=wa[i]^1549556828}var h=core(l.concat(base.stringToWord(data)),512+data.length*chrsz);return core(r.concat(h),640)}var MD5=
function(data,outputType){var out=outputType||base.outputTypes.Base64;var wa=core(base.stringToWord(data),data.length*chrsz);switch(out){case base.outputTypes.Raw:return wa;case base.outputTypes.Hex:return base.wordToHex(wa);case base.outputTypes.String:return base.wordToString(wa);default:return base.wordToBase64(wa)}};MD5._hmac=function(data,key,outputType){var out=outputType||base.outputTypes.Base64;var wa=hmac(data,key);switch(out){case base.outputTypes.Raw:return wa;case base.outputTypes.Hex:return base.wordToHex(wa);
case base.outputTypes.String:return base.wordToString(wa);default:return base.wordToBase64(wa)}};return MD5})},"dojo/sniff":function(){define(["./has"],function(has){if(1){var n=navigator,dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);has.add("air",dua.indexOf("AdobeAIR")>=0);has.add("msapp",parseFloat(dua.split("MSAppHost/")[1])||undefined);has.add("khtml",dav.indexOf("Konqueror")>=0?tv:undefined);has.add("webkit",parseFloat(dua.split("WebKit/")[1])||undefined);has.add("chrome",parseFloat(dua.split("Chrome/")[1])||
undefined);has.add("safari",dav.indexOf("Safari")>=0&&!has("chrome")?parseFloat(dav.split("Version/")[1]):undefined);has.add("mac",dav.indexOf("Macintosh")>=0);has.add("quirks",document.compatMode=="BackCompat");if(dua.match(/(iPhone|iPod|iPad)/)){var p=RegExp.$1.replace(/P/,"p");var v=dua.match(/OS ([\d_]+)/)?RegExp.$1:"1";var os=parseFloat(v.replace(/_/,".").replace(/_/g,""));has.add(p,os);has.add("ios",os)}has.add("android",parseFloat(dua.split("Android ")[1])||undefined);has.add("bb",(dua.indexOf("BlackBerry")>=
0||dua.indexOf("BB10")>=0)&&parseFloat(dua.split("Version/")[1])||undefined);has.add("trident",parseFloat(dav.split("Trident/")[1])||undefined);has.add("svg",typeof SVGAngle!=="undefined");if(!has("webkit")){if(dua.indexOf("Opera")>=0)has.add("opera",tv>=9.8?parseFloat(dua.split("Version/")[1])||tv:tv);if(dua.indexOf("Gecko")>=0&&!has("khtml")&&!has("webkit")&&!has("trident"))has.add("mozilla",tv);if(has("mozilla"))has.add("ff",parseFloat(dua.split("Firefox/")[1]||dua.split("Minefield/")[1])||undefined);
if(document.all&&!has("opera")){var isIE=parseFloat(dav.split("MSIE ")[1])||undefined;var mode=document.documentMode;if(mode&&mode!=5&&Math.floor(isIE)!=mode)isIE=mode;has.add("ie",isIE)}has.add("wii",typeof opera!="undefined"&&opera.wiiremote)}}return has})},"url:dijit/templates/ProgressBar.html":'\x3cdiv class\x3d"dijitProgressBar dijitProgressBarEmpty" role\x3d"progressbar"\n\t\x3e\x3cdiv  data-dojo-attach-point\x3d"internalProgress" class\x3d"dijitProgressBarFull"\n\t\t\x3e\x3cdiv class\x3d"dijitProgressBarTile" role\x3d"presentation"\x3e\x3c/div\n\t\t\x3e\x3cspan style\x3d"visibility:hidden"\x3e\x26#160;\x3c/span\n\t\x3e\x3c/div\n\t\x3e\x3cdiv data-dojo-attach-point\x3d"labelNode" class\x3d"dijitProgressBarLabel" id\x3d"${id}_label"\x3e\x3c/div\n\t\x3e\x3cspan data-dojo-attach-point\x3d"indeterminateHighContrastImage"\n\t\t   class\x3d"dijitInline dijitProgressBarIndeterminateHighContrastImage"\x3e\x3c/span\n\x3e\x3c/div\x3e\n',
"dijit/layout/TabController":function(){require({cache:{"url:dijit/layout/templates/_TabButton.html":'\x3cdiv role\x3d"presentation" data-dojo-attach-point\x3d"titleNode,innerDiv,tabContent" class\x3d"dijitTabInner dijitTabContent"\x3e\n\t\x3cspan role\x3d"presentation" class\x3d"dijitInline dijitIcon dijitTabButtonIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\x3e\n\t\x3cspan data-dojo-attach-point\x3d\'containerNode,focusNode\' class\x3d\'tabLabel\'\x3e\x3c/span\x3e\n\t\x3cspan class\x3d"dijitInline dijitTabCloseButton dijitTabCloseIcon" data-dojo-attach-point\x3d\'closeNode\'\n\t\t  role\x3d"presentation"\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d\'closeText\' class\x3d\'dijitTabCloseText\'\x3e[x]\x3c/span\n\t\t\t\t\x3e\x3c/span\x3e\n\x3c/div\x3e\n'}});
define("dijit/layout/TabController",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/has","dojo/i18n","dojo/_base/lang","./StackController","../registry","../Menu","../MenuItem","dojo/text!./templates/_TabButton.html","dojo/i18n!../nls/common"],function(declare,dom,domAttr,domClass,has,i18n,lang,StackController,registry,Menu,MenuItem,template){var TabButton=declare("dijit.layout._TabButton"+(0?"_NoBidi":""),StackController.StackButton,{baseClass:"dijitTab",cssStateNodes:{closeNode:"dijitTabCloseButton"},
templateString:template,_setNameAttr:"focusNode",scrollOnFocus:false,buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.containerNode,false)},startup:function(){this.inherited(arguments);var n=this.domNode;this.defer(function(){n.className=n.className},1)},_setCloseButtonAttr:function(disp){this._set("closeButton",disp);domClass.toggle(this.domNode,"dijitClosable",disp);this.closeNode.style.display=disp?"":"none";if(disp){var _nlsResources=i18n.getLocalization("dijit","common");
if(this.closeNode)domAttr.set(this.closeNode,"title",_nlsResources.itemClose)}},_setDisabledAttr:function(disabled){this.inherited(arguments);if(this.closeNode)if(disabled)domAttr.remove(this.closeNode,"title");else{var _nlsResources=i18n.getLocalization("dijit","common");domAttr.set(this.closeNode,"title",_nlsResources.itemClose)}},_setLabelAttr:function(content){this.inherited(arguments);if(!this.showLabel&&!this.params.title)this.iconNode.alt=lang.trim(this.containerNode.innerText||this.containerNode.textContent||
"")}});if(0)TabButton=declare("dijit.layout._TabButton",TabButton,{_setLabelAttr:function(content){this.inherited(arguments);this.applyTextDir(this.iconNode,this.iconNode.alt)}});var TabController=declare("dijit.layout.TabController",StackController,{baseClass:"dijitTabController",templateString:"\x3cdiv role\x3d'tablist' data-dojo-attach-event\x3d'onkeydown:onkeydown'\x3e\x3c/div\x3e",tabPosition:"top",buttonWidget:TabButton,buttonWidgetCloseClass:"dijitTabCloseButton",postCreate:function(){this.inherited(arguments);
var closeMenu=new Menu({id:this.id+"_Menu",ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir,targetNodeIds:[this.domNode],selector:function(node){return domClass.contains(node,"dijitClosable")&&!domClass.contains(node,"dijitTabDisabled")}});this.own(closeMenu);var _nlsResources=i18n.getLocalization("dijit","common"),controller=this;var label="";if(_nlsResources&&_nlsResources.itemClose)label=_nlsResources.itemClose;closeMenu.addChild(new MenuItem({label:label,ownerDocument:this.ownerDocument,
dir:this.dir,lang:this.lang,textDir:this.textDir,onClick:function(evt){var button=registry.byNode(this.getParent().currentTarget);controller.onCloseButtonClick(button.page)}}))}});TabController.TabButton=TabButton;return TabController})},"dijit/form/DropDownButton":function(){require({cache:{"url:dijit/form/templates/DropDownButton.html":'\x3cspan class\x3d"dijit dijitReset dijitInline"\n\t\x3e\x3cspan class\x3d\'dijitReset dijitInline dijitButtonNode\'\n\t\tdata-dojo-attach-event\x3d"ondijitclick:__onClick" data-dojo-attach-point\x3d"_buttonNode"\n\t\t\x3e\x3cspan class\x3d"dijitReset dijitStretch dijitButtonContents"\n\t\t\tdata-dojo-attach-point\x3d"focusNode,titleNode,_arrowWrapperNode,_popupStateNode"\n\t\t\trole\x3d"button" aria-haspopup\x3d"true" aria-labelledby\x3d"${id}_label"\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitIcon"\n\t\t\t\tdata-dojo-attach-point\x3d"iconNode"\n\t\t\t\x3e\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitButtonText"\n\t\t\t\tdata-dojo-attach-point\x3d"containerNode"\n\t\t\t\tid\x3d"${id}_label"\n\t\t\t\x3e\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitArrowButtonInner"\x3e\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitArrowButtonChar"\x3e\x26#9660;\x3c/span\n\t\t\x3e\x3c/span\n\t\x3e\x3c/span\n\t\x3e\x3cinput ${!nameAttrSetting} type\x3d"${type}" value\x3d"${value}" class\x3d"dijitOffScreen" tabIndex\x3d"-1"\n\t\tdata-dojo-attach-event\x3d"onclick:_onClick"\n\t\tdata-dojo-attach-point\x3d"valueNode" role\x3d"presentation"\n/\x3e\x3c/span\x3e\n'}});
define("dijit/form/DropDownButton",["dojo/_base/declare","dojo/_base/lang","dojo/query","../registry","../popup","./Button","../_Container","../_HasDropDown","dojo/text!./templates/DropDownButton.html"],function(declare,lang,query,registry,popup,Button,_Container,_HasDropDown,template){return declare("dijit.form.DropDownButton",[Button,_Container,_HasDropDown],{baseClass:"dijitDropDownButton",templateString:template,_fillContent:function(){if(this.srcNodeRef){var nodes=query("*",this.srcNodeRef);
this.inherited(arguments,[nodes[0]]);this.dropDownContainer=this.srcNodeRef}},startup:function(){if(this._started)return;if(!this.dropDown&&this.dropDownContainer){var dropDownNode=query("[widgetId]",this.dropDownContainer)[0];if(dropDownNode)this.dropDown=registry.byNode(dropDownNode);delete this.dropDownContainer}if(this.dropDown)popup.hide(this.dropDown);this.inherited(arguments)},isLoaded:function(){var dropDown=this.dropDown;return!!dropDown&&(!dropDown.href||dropDown.isLoaded)},loadDropDown:function(callback){var dropDown=
this.dropDown;var handler=dropDown.on("load",lang.hitch(this,function(){handler.remove();callback()}));dropDown.refresh()},isFocusable:function(){return this.inherited(arguments)&&!this._mouseDown}})})},"xide/widgets/EditorToolbar":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/_base/connect","dojo/on","dojo/_base/lang","dojo/dom-geometry","xide/utils","dijit/Toolbar","xide/factory"],function(array,declare,html,connect,on,lang,domGeometry,utils,Toolbar,factory){return declare("xide.widgets.EditorToolbar",
[Toolbar],{delegate:null,saveContentCB:function(thiz,res){},onFullscreen:function(ref){ref.delegate.onFullscreen()},onSave:function(ref){ref.delegate.onSave()},saveContent:function(){var value=this.aceEditor.get("value");sctx.getStyleManager().updateSheet(sctx.getSession().getUUID(),sctx.getSession().getAppId(),xapp.utils.toString(this.dataItem.path),value);sctx.getWorkflowManager().onCSSEditorChange(this.dataItem,value)},startup:function(){this.inherited(arguments);this.wButton0=factory.createButton(this.domNode,
"","toolbarButton","","Save",this.onSave,this)}})})},"xide/manager/ServerActionBase":function(){define(["dojo/_base/declare","dojo/_base/lang","dojox/rpc/Service","dojox/rpc/JsonRPC","xide/manager/RPCService","xide/manager/ManagerBase","xide/types","dojox/encoding/digests/SHA1"],function(declare,lang,Service,JsonRPC,RPCService,ManagerBase,types,SHA1){return declare("xide.manager.ServerActionBase",[ManagerBase],{serviceObject:null,serviceUrl:null,singleton:true,serviceClass:null,init:function(){this.check()},
_initService:function(){if(!this.serviceClass){console.error("have no service class : "+this.declaredClass);console.error("I am singleton "+this.singleton)}if(!this.serviceUrl)console.error("have no service url : "+this.declaredClass);try{var obj=dojo.getObject("xide.manager.ServerActionBase");if(this.singleton)if(obj&&obj.serviceObject){this.serviceObject=obj.serviceObject;return}if(!this.serviceObject){this.serviceObject=new RPCService(this.serviceUrl);this.serviceObject.sync=this.sync;if(this.singleton)obj.serviceObject=
this.serviceObject}}catch(e){console.error("error in rpc service creation : "+e);debugger}},check:function(){if(!this.serviceObject)this._initService()},onError:function(err){if(err)if(err.code===1){if(err.message&&lang.isArray(err.message)){this.publish(types.EVENTS.ERROR,{message:err.message.join("\x3cbr/\x3e")});return}}else if(err.code===0)this.publish(types.EVENTS.STATUS,"Ok");var struct={error:err};this.publish(types.EVENTS.ERROR,struct,this)},callMethodEx:function(serverClassIn,method,args,
readyCB,omitError){this.check();var serviceClass=serverClassIn||this.serviceClass;var thiz=this;if(!this.serviceObject){console.error("have no service object");return null}if(!this.serviceObject[serviceClass]||this.serviceObject[serviceClass][method]==null){if(omitError===true)this.onError({code:1,message:["Sorry, server doesnt know "+method+" in class"+serviceClass]});return null}var params={};if(this.config&&this.config.RPC_PARAMS){params=lang.mixin(params,this.config.RPC_PARAMS.rpcFixedParams);
params[this.config.RPC_PARAMS.rpcUserField]=this.config.RPC_PARAMS.rpcUserValue;this.serviceObject.extraArgs=params;this.serviceObject.signatureField=this.config.RPC_PARAMS.rpcSignatureField;this.serviceObject.signatureToken=this.config.RPC_PARAMS.rpcSignatureToken}this.serviceObject[serviceClass][method](args).then(function(res){try{if(readyCB)readyCB(res)}catch(e){console.error("bad news : callback for method "+method+" caused a crash in service class "+serviceClass)}if(res&&res.error&&res.error.code==
3)setTimeout(function(){thiz.onMessages(res.error)},50);if(res&&res.error&&res.error&&res.error.code!=0){thiz.onError(res.error);return}if(omitError==true){var struct={message:"Ok!"};thiz.publish(types.EVENTS.STATUS,struct,this)}},function(err){thiz.onError(err)})},callMethodEx2:function(serverClassIn,method,args,readyCB,omitError){this.check();var serviceClass=serverClassIn||this.serviceClass;var thiz=this;if(!this.serviceObject){console.error("have no service object");return null}if(this.serviceObject[serviceClass][method]==
null){if(omitError===true)this.onError({code:1,message:["Sorry, server doesnt know "+method]});return null}var params={};if(this.config&&this.config.RPC_PARAMS){params=lang.mixin(params,this.config.RPC_PARAMS.rpcFixedParams);params[this.config.RPC_PARAMS.rpcUserField]=this.config.RPC_PARAMS.rpcUserValue;this.serviceObject.extraArgs=params;this.serviceObject.signatureField=this.config.RPC_PARAMS.rpcSignatureField;this.serviceObject.signatureToken=this.config.RPC_PARAMS.rpcSignatureToken}return this.serviceObject[serviceClass][method](args)}})})},
"xide/views/ConsoleKeyboardDelegate":function(){define(["dojo/_base/declare","dojo/keys","dojo/has"],function(declare,keys,has){return declare("xide.views.ConsoleKeyboardDelegate",null,{ctlrKeyDown:false,onKeyUp:function(evt){switch(evt.keyCode){case keys.META:case keys.SHIFT:case keys.ALT:case keys.CTRL:this.ctlrKeyDown=false;break}},onKey:function(evt){var thiz=this;if(evt.type&&evt.type=="keyup")return this.onKeyUp(evt);var vKey=86,cKey=67,cutKey=88;if(evt.keyCode==keys.ENTER)if(this.ctlrKeyDown){if(this.openItemAlternate){evt.preventDefault();
this.openItemAlternate(null)}}else{this.onEnter();evt.preventDefault()}else switch(evt.keyCode){case keys.UP_ARROW:this.onUp();break;case keys.DOWN_ARROW:this.onDown();break;case keys.META:case keys.ALT:case keys.SHIFT:case keys.CTRL:this.ctlrKeyDown=true;setTimeout(function(){thiz.ctlrKeyDown=false},2E3);break;case keys.TAB:if(this.onTab){this.onTab(evt);evt.preventDefault()}break;case keys.BACKSPACE:var doBack=true;if(has("chrome")&&this.ctlrKeyDown==false)doBack=false;if(doBack)if(this.onBack){evt.preventDefault();
this.onBack()}break;case cKey:if(this.ctlrKeyDown&&this.onClipBoardCopy){evt.preventDefault();this.onClipBoardCopy()}break;case vKey:if(this.ctlrKeyDown&&this.onClipBoardPaste){evt.preventDefault();this.onClipBoardPaste()}break;case cutKey:if(this.ctlrKeyDown&&this.onClipBoardCut){evt.preventDefault();this.onClipBoardCut()}break}}})})},"cbtree/models/FileStoreModel":function(){define("cbtree/models/FileStoreModel",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/window","dojo/aspect",
"./TreeStoreModel","../data/util/sorter"],function(array,declare,lang,win,aspect,TreeStoreModel,sorter){return declare([TreeStoreModel],{deferItemLoadingUntilExpand:true,queryOptions:null,sort:null,rootLabel:"ROOT",rootId:"$rootDir$",moduleName:"cbTree/models/FileStoreModel",forceChildren:false,constructor:function(params){var store=this.store;this.root={store:this,root:true,id:this.rootId,label:this.rootLabel,children:params.rootChildren};this.root[this.checkedAttr]=this.checkedState;this.hasFakeRoot=
true;this._validateStore=false;if(params.queryOptions)this._setQueryOptions(params.queryOptions);if(params.sort)this._setSortFields(params.sort);if(store.getFeatures()["dojo.data.api.Notification"])this.connects=this.connects.concat([aspect.after(store,"onClose",lang.hitch(this,"onStoreClose"),true)]);0&&console.warn("cbTree/models/FileStoreModel has been deprecated and will be removed with dojo 2.0 !!")},_setQueryOptions:function(queryOptions){if(lang.isObject(queryOptions))this.queryOptions=queryOptions},
_setSortFields:function(sort){if(lang.isArray(sort)){var isArrayOfObjects=true;array.forEach(sort,function(field){if(!lang.isObject(field))isArrayOfObjects=false});if(isArrayOfObjects)this.sort=sort}},_sort:function(items){var options={ignoreCase:true,sort:[{attribute:"directory",descending:true,ignoreCase:true},{attribute:"name",descending:false,ignoreCase:true}]};var _sort=options.sort;if(items.length&&_sort){var sortList=new sorter(_sort);items.sort(sortList.sortFunction())}},getChildrenInner:function(parentItem,
onComplete,onError){var store=this.store;var scope=this;var root=this.root;var isLoaded=this.store.isItemLoaded(root);var doRootQuery=true;if(this.forceChildren)doRootQuery=false;if(this.forceChildren&&this.store.isItemLoaded(parentItem)&&parentItem.children){if(parentItem.path==this.actualRoot.path&&!this.root.children)this.root.children=parentItem.children;this._sort(parentItem.children);onComplete(parentItem.children);return}if(parentItem===this.root)if(this.root.children)onComplete(this.root.children);
else this.store.fetch({query:this.query,queryOptions:this.queryOptions,sort:this.sort,onComplete:lang.hitch(this,function(items){if(this.forceChildren){this.root.children=items[0].children;onComplete(items[0].children)}else{this.root.children=items;onComplete(items)}}),onError:onError});else{if(!store.isItemLoaded(parentItem)){var getChildren=lang.hitch(this,arguments.callee);store.loadItem(scope._mixinFetch({item:parentItem,onItem:function(parentItem){getChildren(parentItem,onComplete,onError)},
onError:onError}));return}store.fetchChildren({item:parentItem,query:this.query,queryOptions:this.queryOptions,sort:this.sort,onError:onError,scope:scope,onComplete:function(items){if(items&&items.length==1&&items.children)onComplete(items[0].children);else onComplete(items)}})}return},getChildren:function(parentItem,onComplete,onError){try{var store=this.store;var scope=this;var root=this.root;var isLoaded=this.store.isItemLoaded(root);var doRootQuery=true;if(this.forceChildren)doRootQuery=false;
if(this.forceChildren&&this.store.isItemLoaded(parentItem)&&parentItem.children){onComplete(parentItem.children);return}if(parentItem==this.root&&parentItem.path==null)parentItem.path=this.root.id;if(this.forceChildren&&parentItem.path==this.actualRoot.path&&this.store.isItemLoaded(this.actualRoot)){this.root.children=this.actualRoot.children;onComplete(this.actualRoot.children);return}var thiz=this;if(parentItem===this.root){if(this.forceChildren&&this.actualRoot&&!this.store.isItemLoaded(this.actualRoot)){this.store.loadItem(scope._mixinFetch({item:this.actualRoot,
onItem:function(parentItem){thiz.getChildrenInner(parentItem,onComplete,onError)},onError:onError}));return}if(this.root.children)onComplete(this.root.children);else{this.store.fetchEx({query:this.query,queryOptions:this.queryOptions,sort:this.sort,onComplete:lang.hitch(this,function(items){thiz.root.children=items;onComplete(items)})});this.store.fetch({query:this.query,queryOptions:this.queryOptions,sort:this.sort,onComplete:lang.hitch(this,function(items){if(this.forceChildren&&items.length>0){this.root.children=
items[0].children;onComplete(items[0].children)}else{this.root.children=items;onComplete(items)}}),onError:onError})}}else{if(this.forceChildren)if(!store.isItemLoaded(parentItem)){this.store.loadItem(scope._mixinFetch({item:parentItem,onItem:function(parentItem){thiz.getChildrenInner(parentItem,onComplete,onError)},onError:onError}));return}store.fetchChildren({item:parentItem,query:this.query,queryOptions:this.queryOptions,sort:this.sort,onError:onError,scope:scope,onComplete:function(items){if(items&&
items.length==1&&items.children)onComplete(items[0].children);else onComplete(items)}})}}catch(e){debugger}},getParents:function(storeItem){var parents=[];if(storeItem){if(storeItem!==this.root){parents=this.store.getParents(storeItem);if(!parents.length)return[this.root]}return parents}},mayHaveChildren:function(item){return item===this.root||this.inherited(arguments)},fetchItemByIdentity:function(keywordArgs){if(keywordArgs.identity==this.root.id){var scope=keywordArgs.scope?keywordArgs.scope:win.global;
if(keywordArgs.onItem)keywordArgs.onItem.call(scope,this.root)}else this.inherited(arguments)},getIcon:function(item){if(this.iconAttr){if(item!==this.root)return this.store.getValue(item,this.iconAttr);return this.root[this.iconAttr]}},getIdentity:function(item){return item===this.root?this.root.id:this.inherited(arguments)},getLabel:function(item){return item===this.root?this.root.label:this.inherited(arguments)},isItem:function(something){return something===this.root?true:this.inherited(arguments)},
isChildOf:function(parent,item){if(parent===this.root){if(array.indexOf(this.root.children,item)!==-1)return true}else return this.inherited(arguments)},deleteItem:function(item,onBegin,onComplete,onError,scope){var scope=scope||window.global;if(item===this.root){var children=this.root.children||[];var i;if(children.length>0){if(onBegin)if(!onBegin.call(scope,item))return;for(i=0;i<children.length;i++)this.store.deleteItem(children[i],null,onComplete,onError,scope)}}else return this.store.deleteItem(item,
onBegin,onComplete,onError,scope)},newItem:function(args,parent,insertIndex,childrenAttr){throw new Error(this.moduleName+"::newItem(): Operation not allowed on a File Store.");},pasteItem:function(childItem,oldParentItem,newParentItem,bCopy,insertIndex,childrenAttr){var newParentDir="",childItemDir="";if(this.store.isItem(childItem)){childItemDir=this.store.getDirectory(childItem);if(newParentItem!==this.root)if(newParentItem.directory)newParentDir=this.store.getPath(newParentItem);else newParentDir=
this.store.getDirectory(newParentItem);if(childItemDir!==newParentDir){var newPath=newParentDir+"/"+this.store.getLabel(childItem);this.store.renameItem(childItem,newPath)}}},onDeleteItem:function(item){if(array.indexOf(this.root.children,item)!=-1)this._requeryTop();this.inherited(arguments)},onNewItem:function(item,parentInfo){if(parentInfo){this.getChildren(parentInfo.item,lang.hitch(this,function(children){this.onChildrenChange(parentInfo.item,children)}));this._updateCheckedParent(item,true)}else this._requeryTop()},
onSetItem:function(storeItem,attribute,oldValue,newValue,owner){if(this._queryAttrs.length&&array.indexOf(this._queryAttrs,attribute)!=-1)this._requeryTop();this.inherited(arguments)},onStoreClose:function(reset){},_requeryTop:function(){var oldChildren=this.root.children||[];this.store.fetch({query:this.query,queryOptions:this.queryOptions,sort:this.sort,onComplete:lang.hitch(this,function(newChildren){this.root.children=newChildren;if(oldChildren.length!=newChildren.length||array.some(oldChildren,
function(item,idx){return newChildren[idx]!=item})){this.onChildrenChange(this.root,newChildren);this._updateCheckedParent(newChildren[0],true)}})})}})})},"url:dijit/form/templates/CheckBox.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline" role\x3d"presentation"\n\t\x3e\x3cinput\n\t \t${!nameAttrSetting} type\x3d"${type}" role\x3d"${type}" aria-checked\x3d"false" ${checkedAttrSetting}\n\t\tclass\x3d"dijitReset dijitCheckBoxInput"\n\t\tdata-dojo-attach-point\x3d"focusNode"\n\t \tdata-dojo-attach-event\x3d"ondijitclick:_onClick"\n/\x3e\x3c/div\x3e\n',
"dojo/dnd/autoscroll":function(){define(["../_base/lang","../sniff","../_base/window","../dom-geometry","../dom-style","../window"],function(lang,has,win,domGeom,domStyle,winUtils){var exports={};lang.setObject("dojo.dnd.autoscroll",exports);exports.getViewport=winUtils.getBox;exports.V_TRIGGER_AUTOSCROLL=32;exports.H_TRIGGER_AUTOSCROLL=32;exports.V_AUTOSCROLL_VALUE=16;exports.H_AUTOSCROLL_VALUE=16;var viewport,doc=win.doc,maxScrollTop=Infinity,maxScrollLeft=Infinity;exports.autoScrollStart=function(d){doc=
d;viewport=winUtils.getBox(doc);var html=win.body(doc).parentNode;maxScrollTop=Math.max(html.scrollHeight-viewport.h,0);maxScrollLeft=Math.max(html.scrollWidth-viewport.w,0)};exports.autoScroll=function(e){var v=viewport||winUtils.getBox(doc),html=win.body(doc).parentNode,dx=0,dy=0;if(e.clientX<exports.H_TRIGGER_AUTOSCROLL)dx=-exports.H_AUTOSCROLL_VALUE;else if(e.clientX>v.w-exports.H_TRIGGER_AUTOSCROLL)dx=Math.min(exports.H_AUTOSCROLL_VALUE,maxScrollLeft-html.scrollLeft);if(e.clientY<exports.V_TRIGGER_AUTOSCROLL)dy=
-exports.V_AUTOSCROLL_VALUE;else if(e.clientY>v.h-exports.V_TRIGGER_AUTOSCROLL)dy=Math.min(exports.V_AUTOSCROLL_VALUE,maxScrollTop-html.scrollTop);window.scrollBy(dx,dy)};exports._validNodes={"div":1,"p":1,"td":1};exports._validOverflow={"auto":1,"scroll":1};exports.autoScrollNodes=function(e){var b,t,w,h,rx,ry,dx=0,dy=0,oldLeft,oldTop;for(var n=e.target;n;){if(n.nodeType==1&&n.tagName.toLowerCase()in exports._validNodes){var s=domStyle.getComputedStyle(n),overflow=s.overflow.toLowerCase()in exports._validOverflow,
overflowX=s.overflowX.toLowerCase()in exports._validOverflow,overflowY=s.overflowY.toLowerCase()in exports._validOverflow;if(overflow||overflowX||overflowY){b=domGeom.getContentBox(n,s);t=domGeom.position(n,true)}if(overflow||overflowX){w=Math.min(exports.H_TRIGGER_AUTOSCROLL,b.w/2);rx=e.pageX-t.x;if(has("webkit")||has("opera"))rx+=win.body().scrollLeft;dx=0;if(rx>0&&rx<b.w){if(rx<w)dx=-w;else if(rx>b.w-w)dx=w;oldLeft=n.scrollLeft;n.scrollLeft=n.scrollLeft+dx}}if(overflow||overflowY){h=Math.min(exports.V_TRIGGER_AUTOSCROLL,
b.h/2);ry=e.pageY-t.y;if(has("webkit")||has("opera"))ry+=win.body().scrollTop;dy=0;if(ry>0&&ry<b.h){if(ry<h)dy=-h;else if(ry>b.h-h)dy=h;oldTop=n.scrollTop;n.scrollTop=n.scrollTop+dy}}if(dx||dy)return}try{n=n.parentNode}catch(x){n=null}}exports.autoScroll(e)};return exports})},"dojox/mdnd/dropMode/OverDropMode":function(){define("dojox/mdnd/dropMode/OverDropMode",["dojo/_base/kernel","dojo/_base/declare","dojo/_base/connect","dojo/_base/array","dojo/dom-geometry","dojox/mdnd/AreaManager"],function(dojo,
declare,connect,array,geom){var odm=declare("dojox.mdnd.dropMode.OverDropMode",null,{_oldXPoint:null,_oldYPoint:null,_oldBehaviour:"up",constructor:function(){this._dragHandler=[connect.connect(dojox.mdnd.areaManager(),"onDragEnter",function(coords,size){var m=dojox.mdnd.areaManager();if(m._oldIndexArea==-1)m._oldIndexArea=m._lastValidIndexArea})]},addArea:function(areas,object){var length=areas.length,position=geom.position(object.node,true);object.coords={"x":position.x,"y":position.y};if(length==
0)areas.push(object);else{var x=object.coords.x;for(var i=0;i<length;i++)if(x<areas[i].coords.x){for(var j=length-1;j>=i;j--)areas[j+1]=areas[j];areas[i]=object;break}if(i==length)areas.push(object)}return areas},updateAreas:function(areaList){var length=areaList.length;for(var i=0;i<length;i++)this._updateArea(areaList[i])},_updateArea:function(area){var position=geom.position(area.node,true);area.coords.x=position.x;area.coords.x2=position.x+position.w;area.coords.y=position.y},initItems:function(area){array.forEach(area.items,
function(obj){var node=obj.item.node;var position=geom.position(node,true);var y=position.y+position.h/2;obj.y=y});area.initItems=true},refreshItems:function(area,indexItem,size,added){if(indexItem==-1)return;else if(area&&size&&size.h){var height=size.h;if(area.margin)height+=area.margin.t;var length=area.items.length;for(var i=indexItem;i<length;i++){var item=area.items[i];if(added)item.y+=height;else item.y-=height}}},getDragPoint:function(coords,size,mousePosition){return{"x":mousePosition.x,
"y":mousePosition.y}},getTargetArea:function(areaList,coords,currentIndexArea){var index=0;var x=coords.x;var y=coords.y;var end=areaList.length;var start=0,direction="right",compute=false;if(currentIndexArea==-1||arguments.length<3)compute=true;else if(this._checkInterval(areaList,currentIndexArea,x,y))index=currentIndexArea;else{if(this._oldXPoint<x)start=currentIndexArea+1;else{start=currentIndexArea-1;end=0;direction="left"}compute=true}if(compute)if(direction==="right"){for(var i=start;i<end;i++)if(this._checkInterval(areaList,
i,x,y)){index=i;break}if(i==end)index=-1}else{for(var i=start;i>=end;i--)if(this._checkInterval(areaList,i,x,y)){index=i;break}if(i==end-1)index=-1}this._oldXPoint=x;return index},_checkInterval:function(areaList,index,x,y){var area=areaList[index];var node=area.node;var coords=area.coords;var startX=coords.x;var endX=coords.x2;var startY=coords.y;var endY=startY+node.offsetHeight;if(startX<=x&&x<=endX&&startY<=y&&y<=endY)return true;return false},getDropIndex:function(targetArea,coords){var length=
targetArea.items.length;var coordinates=targetArea.coords;var y=coords.y;if(length>0)for(var i=0;i<length;i++)if(y<targetArea.items[i].y)return i;else if(i==length-1)return-1;return-1},destroy:function(){array.forEach(this._dragHandler,connect.disconnect)}});dojox.mdnd.areaManager()._dropMode=new dojox.mdnd.dropMode.OverDropMode;return odm})},"dojox/math/BigInteger-ext":function(){define("dojox/math/BigInteger-ext",["dojo","dojox","dojox/math/BigInteger"],function(dojo,dojox){dojo.experimental("dojox.math.BigInteger-ext");
var BigInteger=dojox.math.BigInteger,nbi=BigInteger._nbi,nbv=BigInteger._nbv,nbits=BigInteger._nbits,Montgomery=BigInteger._Montgomery;function bnClone(){var r=nbi();this._copyTo(r);return r}function bnIntValue(){if(this.s<0)if(this.t==1)return this[0]-this._DV;else{if(this.t==0)return-1}else if(this.t==1)return this[0];else if(this.t==0)return 0;return(this[1]&(1<<32-this._DB)-1)<<this._DB|this[0]}function bnByteValue(){return this.t==0?this.s:this[0]<<24>>24}function bnShortValue(){return this.t==
0?this.s:this[0]<<16>>16}function bnpChunkSize(r){return Math.floor(Math.LN2*this._DB/Math.log(r))}function bnSigNum(){if(this.s<0)return-1;else if(this.t<=0||this.t==1&&this[0]<=0)return 0;else return 1}function bnpToRadix(b){if(b==null)b=10;if(this.signum()==0||b<2||b>36)return"0";var cs=this._chunkSize(b);var a=Math.pow(b,cs);var d=nbv(a),y=nbi(),z=nbi(),r="";this._divRemTo(d,y,z);while(y.signum()>0){r=(a+z.intValue()).toString(b).substr(1)+r;y._divRemTo(d,y,z)}return z.intValue().toString(b)+
r}function bnpFromRadix(s,b){this._fromInt(0);if(b==null)b=10;var cs=this._chunkSize(b);var d=Math.pow(b,cs),mi=false,j=0,w=0;for(var i=0;i<s.length;++i){var x=intAt(s,i);if(x<0){if(s.charAt(i)=="-"&&this.signum()==0)mi=true;continue}w=b*w+x;if(++j>=cs){this._dMultiply(d);this._dAddOffset(w,0);j=0;w=0}}if(j>0){this._dMultiply(Math.pow(b,j));this._dAddOffset(w,0)}if(mi)BigInteger.ZERO._subTo(this,this)}function bnpFromNumber(a,b,c){if("number"==typeof b)if(a<2)this._fromInt(1);else{this._fromNumber(a,
c);if(!this.testBit(a-1))this._bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);if(this._isEven())this._dAddOffset(1,0);while(!this.isProbablePrime(b)){this._dAddOffset(2,0);if(this.bitLength()>a)this._subTo(BigInteger.ONE.shiftLeft(a-1),this)}}else{var x=[],t=a&7;x.length=(a>>3)+1;b.nextBytes(x);if(t>0)x[0]&=(1<<t)-1;else x[0]=0;this._fromString(x,256)}}function bnToByteArray(){var i=this.t,r=[];r[0]=this.s;var p=this._DB-i*this._DB%8,d,k=0;if(i-- >0){if(p<this._DB&&(d=this[i]>>p)!=(this.s&this._DM)>>
p)r[k++]=d|this.s<<this._DB-p;while(i>=0){if(p<8){d=(this[i]&(1<<p)-1)<<8-p;d|=this[--i]>>(p+=this._DB-8)}else{d=this[i]>>(p-=8)&255;if(p<=0){p+=this._DB;--i}}if((d&128)!=0)d|=-256;if(k==0&&(this.s&128)!=(d&128))++k;if(k>0||d!=this.s)r[k++]=d}}return r}function bnEquals(a){return this.compareTo(a)==0}function bnMin(a){return this.compareTo(a)<0?this:a}function bnMax(a){return this.compareTo(a)>0?this:a}function bnpBitwiseTo(a,op,r){var i,f,m=Math.min(a.t,this.t);for(i=0;i<m;++i)r[i]=op(this[i],a[i]);
if(a.t<this.t){f=a.s&this._DM;for(i=m;i<this.t;++i)r[i]=op(this[i],f);r.t=this.t}else{f=this.s&this._DM;for(i=m;i<a.t;++i)r[i]=op(f,a[i]);r.t=a.t}r.s=op(this.s,a.s);r._clamp()}function op_and(x,y){return x&y}function bnAnd(a){var r=nbi();this._bitwiseTo(a,op_and,r);return r}function op_or(x,y){return x|y}function bnOr(a){var r=nbi();this._bitwiseTo(a,op_or,r);return r}function op_xor(x,y){return x^y}function bnXor(a){var r=nbi();this._bitwiseTo(a,op_xor,r);return r}function op_andnot(x,y){return x&
~y}function bnAndNot(a){var r=nbi();this._bitwiseTo(a,op_andnot,r);return r}function bnNot(){var r=nbi();for(var i=0;i<this.t;++i)r[i]=this._DM&~this[i];r.t=this.t;r.s=~this.s;return r}function bnShiftLeft(n){var r=nbi();if(n<0)this._rShiftTo(-n,r);else this._lShiftTo(n,r);return r}function bnShiftRight(n){var r=nbi();if(n<0)this._lShiftTo(-n,r);else this._rShiftTo(n,r);return r}function lbit(x){if(x==0)return-1;var r=0;if((x&65535)==0){x>>=16;r+=16}if((x&255)==0){x>>=8;r+=8}if((x&15)==0){x>>=4;r+=
4}if((x&3)==0){x>>=2;r+=2}if((x&1)==0)++r;return r}function bnGetLowestSetBit(){for(var i=0;i<this.t;++i)if(this[i]!=0)return i*this._DB+lbit(this[i]);if(this.s<0)return this.t*this._DB;return-1}function cbit(x){var r=0;while(x!=0){x&=x-1;++r}return r}function bnBitCount(){var r=0,x=this.s&this._DM;for(var i=0;i<this.t;++i)r+=cbit(this[i]^x);return r}function bnTestBit(n){var j=Math.floor(n/this._DB);if(j>=this.t)return this.s!=0;return(this[j]&1<<n%this._DB)!=0}function bnpChangeBit(n,op){var r=
BigInteger.ONE.shiftLeft(n);this._bitwiseTo(r,op,r);return r}function bnSetBit(n){return this._changeBit(n,op_or)}function bnClearBit(n){return this._changeBit(n,op_andnot)}function bnFlipBit(n){return this._changeBit(n,op_xor)}function bnpAddTo(a,r){var i=0,c=0,m=Math.min(a.t,this.t);while(i<m){c+=this[i]+a[i];r[i++]=c&this._DM;c>>=this._DB}if(a.t<this.t){c+=a.s;while(i<this.t){c+=this[i];r[i++]=c&this._DM;c>>=this._DB}c+=this.s}else{c+=this.s;while(i<a.t){c+=a[i];r[i++]=c&this._DM;c>>=this._DB}c+=
a.s}r.s=c<0?-1:0;if(c>0)r[i++]=c;else if(c<-1)r[i++]=this._DV+c;r.t=i;r._clamp()}function bnAdd(a){var r=nbi();this._addTo(a,r);return r}function bnSubtract(a){var r=nbi();this._subTo(a,r);return r}function bnMultiply(a){var r=nbi();this._multiplyTo(a,r);return r}function bnDivide(a){var r=nbi();this._divRemTo(a,r,null);return r}function bnRemainder(a){var r=nbi();this._divRemTo(a,null,r);return r}function bnDivideAndRemainder(a){var q=nbi(),r=nbi();this._divRemTo(a,q,r);return[q,r]}function bnpDMultiply(n){this[this.t]=
this.am(0,n-1,this,0,0,this.t);++this.t;this._clamp()}function bnpDAddOffset(n,w){while(this.t<=w)this[this.t++]=0;this[w]+=n;while(this[w]>=this._DV){this[w]-=this._DV;if(++w>=this.t)this[this.t++]=0;++this[w]}}function NullExp(){}function nNop(x){return x}function nMulTo(x,y,r){x._multiplyTo(y,r)}function nSqrTo(x,r){x._squareTo(r)}NullExp.prototype.convert=nNop;NullExp.prototype.revert=nNop;NullExp.prototype.mulTo=nMulTo;NullExp.prototype.sqrTo=nSqrTo;function bnPow(e){return this._exp(e,new NullExp)}
function bnpMultiplyLowerTo(a,n,r){var i=Math.min(this.t+a.t,n);r.s=0;r.t=i;while(i>0)r[--i]=0;var j;for(j=r.t-this.t;i<j;++i)r[i+this.t]=this.am(0,a[i],r,i,0,this.t);for(j=Math.min(a.t,n);i<j;++i)this.am(0,a[i],r,i,0,n-i);r._clamp()}function bnpMultiplyUpperTo(a,n,r){--n;var i=r.t=this.t+a.t-n;r.s=0;while(--i>=0)r[i]=0;for(i=Math.max(n-this.t,0);i<a.t;++i)r[this.t+i-n]=this.am(n-i,a[i],r,0,0,this.t+i-n);r._clamp();r._drShiftTo(1,r)}function Barrett(m){this.r2=nbi();this.q3=nbi();BigInteger.ONE._dlShiftTo(2*
m.t,this.r2);this.mu=this.r2.divide(m);this.m=m}function barrettConvert(x){if(x.s<0||x.t>2*this.m.t)return x.mod(this.m);else if(x.compareTo(this.m)<0)return x;else{var r=nbi();x._copyTo(r);this.reduce(r);return r}}function barrettRevert(x){return x}function barrettReduce(x){x._drShiftTo(this.m.t-1,this.r2);if(x.t>this.m.t+1){x.t=this.m.t+1;x._clamp()}this.mu._multiplyUpperTo(this.r2,this.m.t+1,this.q3);this.m._multiplyLowerTo(this.q3,this.m.t+1,this.r2);while(x.compareTo(this.r2)<0)x._dAddOffset(1,
this.m.t+1);x._subTo(this.r2,x);while(x.compareTo(this.m)>=0)x._subTo(this.m,x)}function barrettSqrTo(x,r){x._squareTo(r);this.reduce(r)}function barrettMulTo(x,y,r){x._multiplyTo(y,r);this.reduce(r)}Barrett.prototype.convert=barrettConvert;Barrett.prototype.revert=barrettRevert;Barrett.prototype.reduce=barrettReduce;Barrett.prototype.mulTo=barrettMulTo;Barrett.prototype.sqrTo=barrettSqrTo;function bnModPow(e,m){var i=e.bitLength(),k,r=nbv(1),z;if(i<=0)return r;else if(i<18)k=1;else if(i<48)k=3;else if(i<
144)k=4;else if(i<768)k=5;else k=6;if(i<8)z=new Classic(m);else if(m._isEven())z=new Barrett(m);else z=new Montgomery(m);var g=[],n=3,k1=k-1,km=(1<<k)-1;g[1]=z.convert(this);if(k>1){var g2=nbi();z.sqrTo(g[1],g2);while(n<=km){g[n]=nbi();z.mulTo(g2,g[n-2],g[n]);n+=2}}var j=e.t-1,w,is1=true,r2=nbi(),t;i=nbits(e[j])-1;while(j>=0){if(i>=k1)w=e[j]>>i-k1&km;else{w=(e[j]&(1<<i+1)-1)<<k1-i;if(j>0)w|=e[j-1]>>this._DB+i-k1}n=k;while((w&1)==0){w>>=1;--n}if((i-=n)<0){i+=this._DB;--j}if(is1){g[w]._copyTo(r);is1=
false}else{while(n>1){z.sqrTo(r,r2);z.sqrTo(r2,r);n-=2}if(n>0)z.sqrTo(r,r2);else{t=r;r=r2;r2=t}z.mulTo(r2,g[w],r)}while(j>=0&&(e[j]&1<<i)==0){z.sqrTo(r,r2);t=r;r=r2;r2=t;if(--i<0){i=this._DB-1;--j}}}return z.revert(r)}function bnGCD(a){var x=this.s<0?this.negate():this.clone();var y=a.s<0?a.negate():a.clone();if(x.compareTo(y)<0){var t=x;x=y;y=t}var i=x.getLowestSetBit(),g=y.getLowestSetBit();if(g<0)return x;if(i<g)g=i;if(g>0){x._rShiftTo(g,x);y._rShiftTo(g,y)}while(x.signum()>0){if((i=x.getLowestSetBit())>
0)x._rShiftTo(i,x);if((i=y.getLowestSetBit())>0)y._rShiftTo(i,y);if(x.compareTo(y)>=0){x._subTo(y,x);x._rShiftTo(1,x)}else{y._subTo(x,y);y._rShiftTo(1,y)}}if(g>0)y._lShiftTo(g,y);return y}function bnpModInt(n){if(n<=0)return 0;var d=this._DV%n,r=this.s<0?n-1:0;if(this.t>0)if(d==0)r=this[0]%n;else for(var i=this.t-1;i>=0;--i)r=(d*r+this[i])%n;return r}function bnModInverse(m){var ac=m._isEven();if(this._isEven()&&ac||m.signum()==0)return BigInteger.ZERO;var u=m.clone(),v=this.clone();var a=nbv(1),
b=nbv(0),c=nbv(0),d=nbv(1);while(u.signum()!=0){while(u._isEven()){u._rShiftTo(1,u);if(ac){if(!a._isEven()||!b._isEven()){a._addTo(this,a);b._subTo(m,b)}a._rShiftTo(1,a)}else if(!b._isEven())b._subTo(m,b);b._rShiftTo(1,b)}while(v._isEven()){v._rShiftTo(1,v);if(ac){if(!c._isEven()||!d._isEven()){c._addTo(this,c);d._subTo(m,d)}c._rShiftTo(1,c)}else if(!d._isEven())d._subTo(m,d);d._rShiftTo(1,d)}if(u.compareTo(v)>=0){u._subTo(v,u);if(ac)a._subTo(c,a);b._subTo(d,b)}else{v._subTo(u,v);if(ac)c._subTo(a,
c);d._subTo(b,d)}}if(v.compareTo(BigInteger.ONE)!=0)return BigInteger.ZERO;if(d.compareTo(m)>=0)return d.subtract(m);if(d.signum()<0)d._addTo(m,d);else return d;if(d.signum()<0)return d.add(m);else return d}var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,
397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];var lplim=(1<<26)/lowprimes[lowprimes.length-1];function bnIsProbablePrime(t){var i,x=this.abs();if(x.t==1&&x[0]<=lowprimes[lowprimes.length-1]){for(i=0;i<lowprimes.length;++i)if(x[0]==lowprimes[i])return true;return false}if(x._isEven())return false;i=1;while(i<lowprimes.length){var m=lowprimes[i],j=i+1;while(j<lowprimes.length&&m<lplim)m*=lowprimes[j++];m=x._modInt(m);while(i<j)if(m%lowprimes[i++]==0)return false}return x._millerRabin(t)}
function bnpMillerRabin(t){var n1=this.subtract(BigInteger.ONE);var k=n1.getLowestSetBit();if(k<=0)return false;var r=n1.shiftRight(k);t=t+1>>1;if(t>lowprimes.length)t=lowprimes.length;var a=nbi();for(var i=0;i<t;++i){a._fromInt(lowprimes[i]);var y=a.modPow(r,this);if(y.compareTo(BigInteger.ONE)!=0&&y.compareTo(n1)!=0){var j=1;while(j++<k&&y.compareTo(n1)!=0){y=y.modPowInt(2,this);if(y.compareTo(BigInteger.ONE)==0)return false}if(y.compareTo(n1)!=0)return false}}return true}dojo.extend(BigInteger,
{_chunkSize:bnpChunkSize,_toRadix:bnpToRadix,_fromRadix:bnpFromRadix,_fromNumber:bnpFromNumber,_bitwiseTo:bnpBitwiseTo,_changeBit:bnpChangeBit,_addTo:bnpAddTo,_dMultiply:bnpDMultiply,_dAddOffset:bnpDAddOffset,_multiplyLowerTo:bnpMultiplyLowerTo,_multiplyUpperTo:bnpMultiplyUpperTo,_modInt:bnpModInt,_millerRabin:bnpMillerRabin,clone:bnClone,intValue:bnIntValue,byteValue:bnByteValue,shortValue:bnShortValue,signum:bnSigNum,toByteArray:bnToByteArray,equals:bnEquals,min:bnMin,max:bnMax,and:bnAnd,or:bnOr,
xor:bnXor,andNot:bnAndNot,not:bnNot,shiftLeft:bnShiftLeft,shiftRight:bnShiftRight,getLowestSetBit:bnGetLowestSetBit,bitCount:bnBitCount,testBit:bnTestBit,setBit:bnSetBit,clearBit:bnClearBit,flipBit:bnFlipBit,add:bnAdd,subtract:bnSubtract,multiply:bnMultiply,divide:bnDivide,remainder:bnRemainder,divideAndRemainder:bnDivideAndRemainder,modPow:bnModPow,modInverse:bnModInverse,pow:bnPow,gcd:bnGCD,isProbablePrime:bnIsProbablePrime});return dojox.math.BigInteger})},"dcl/mini":function(){(function(factory){if(typeof define!=
"undefined")define("dcl/mini",[],factory);else if(typeof module!="undefined")module.exports=factory();else dcl=factory()})(function(){var counter=0,cname="constructor",pname="prototype",F=function(){},empty={},mix,extractChain,stubSuper,stubChain,stubChainSuper,post;function dcl(superClass,props){var bases=[0],proto,base,ctor,meta,connectionMap,output,vector,superClasses,i,j=0,n;if(superClass)if(superClass instanceof Array){connectionMap={};superClasses=superClass.slice(0).reverse();for(i=superClasses.length-
1;i>=0;--i){base=superClasses[i];base._u=base._u||counter++;if(proto=base._m){for(vector=proto.b,j=vector.length-1;j>0;--j){n=vector[j]._u;connectionMap[n]=(connectionMap[n]||0)+1}superClasses[i]=vector.slice(0)}else superClasses[i]=[base]}output={};c:while(superClasses.length){for(i=0;i<superClasses.length;++i){vector=superClasses[i];base=vector[0];n=base._u;if(!connectionMap[n]){if(!output[n]){bases.push(base);output[n]=1}vector.shift();if(vector.length)--connectionMap[vector[0]._u];else superClasses.splice(i,
1);continue c}}dcl._e("cycle",props,superClasses)}superClass=superClass[0];j=bases.length-((meta=superClass._m)&&superClass===bases[bases.length-(j=meta.b.length)]?j:1)-1}else{superClass._u=superClass._u||counter++;bases=bases.concat((meta=superClass._m)?meta.b:superClass)}proto=superClass?dcl.delegate(superClass[pname]):{};vector=superClass&&(meta=superClass._m)?dcl.delegate(meta.w):{constructor:2};for(;j>0;--j){base=bases[j];meta=base._m;dcl.mix(proto,meta&&meta.h||base[pname]);if(meta)for(n in superClasses=
meta.w)vector[n]=(+vector[n]||0)|superClasses[n]}for(n in props)if(isSuper(meta=props[n]))vector[n]=+vector[n]||0;else proto[n]=meta;meta={b:bases,h:props,w:vector,c:{}};bases[0]={_m:meta,prototype:proto};buildStubs(meta,proto);ctor=proto[cname];ctor._m=meta;ctor[pname]=proto;bases[0]=ctor;return dcl._p(ctor)}function Super(f){this.f=f}function isSuper(f){return f&&f.spr instanceof Super}function allKeys(o){var keys=[];for(var name in o)keys.push(name);return keys}(mix=function(a,b){for(var n in b)a[n]=
b[n]})(dcl,{mix:mix,delegate:function(o){return Object.create(o)},allKeys:allKeys,Super:Super,superCall:function superCall(f){return dcl._mk(f)},_mk:function makeSuper(f,S){var fn=function(){};fn.spr=new (S||Super)(f);return fn},_p:function(ctor){return ctor},_e:function(msg){throw Error("dcl: "+msg);},_f:function(f,a,n){var t=f.spr.f(a);t.ctr=f.ctr;return t},_ec:extractChain=function(bases,name,advice){var i=bases.length-1,chain=[],base,f,around=advice=="f";for(;base=bases[i];--i)if((f=base._m)?
(f=f.h).hasOwnProperty(name)&&(isSuper(f=f[name])?around?f.spr.f:f=f.spr[advice]:around):around&&(f=name==cname?base:base[pname][name])&&f!==empty[name]){f.ctr=base;chain.push(f)}return chain},_sc:stubChain=function(chain){var l=chain.length,f;return!l?0:l==1?(f=chain[0],function(){f.apply(this,arguments)}):function(){for(var i=0;i<l;++i)chain[i].apply(this,arguments)}},_ss:stubSuper=function(chain,name){var i=0,f,p=empty[name];for(;f=chain[i];++i)p=isSuper(f)?chain[i]=dcl._f(f,p,name):f;return name!=
cname?p:function(){p.apply(this,arguments)}},_st:stubChainSuper=function(chain,stub,name){var i=0,f,diff,pi=0;for(;f=chain[i];++i)if(isSuper(f)){diff=i-pi;diff=chain[i]=dcl._f(f,!diff?0:diff==1?chain[pi]:stub(chain.slice(pi,i)),name);pi=i}diff=i-pi;return!diff?0:diff==1&&name!=cname?chain[pi]:stub(pi?chain.slice(pi):chain)},_sb:function(id,bases,name,chains){var f=chains[name]=extractChain(bases,name,"f");return(id?stubChainSuper(f,stubChain,name):stubSuper(f,name))||function(){}}});function buildStubs(meta,
proto){var weaver=meta.w,bases=meta.b,chains=meta.c;for(var name in weaver)proto[name]=dcl._sb(weaver[name],bases,name,chains)}return dcl})},"url:dijit/form/templates/DropDownBox.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tid\x3d"widget_${id}"\n\trole\x3d"combobox"\n\taria-haspopup\x3d"true"\n\tdata-dojo-attach-point\x3d"_popupStateNode"\n\t\x3e\x3cdiv class\x3d\'dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer\'\n\t\tdata-dojo-attach-point\x3d"_buttonNode" role\x3d"presentation"\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitArrowButtonInner" value\x3d"\x26#9660; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"button presentation" aria-hidden\x3d"true"\n\t\t\t${_buttonInputDisabled}\n\t/\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d\'dijitReset dijitValidationContainer\'\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value\x3d"\x26#935; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t/\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitInputContainer"\n\t\t\x3e\x3cinput class\x3d\'dijitReset dijitInputInner\' ${!nameAttrSetting} type\x3d"text" autocomplete\x3d"off"\n\t\t\tdata-dojo-attach-point\x3d"textbox,focusNode" role\x3d"textbox"\n\t/\x3e\x3c/div\n\x3e\x3c/div\x3e\n',
"xfile/views/FileTreeView":function(){define("xfile/views/FileTreeView",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","dojox/rpc/Service","dojo/_base/lang","dijit/tree/ForestStoreModel","dijit/Menu","dijit/MenuItem","dijit/Tree","dijit/tree/dndSource","dijit/layout/ContentPane","cbtree/Tree","cbtree/extensions/TreeStyling","cbtree/model/FileStoreModel","cbtree/model/FileStoreModelChecked","cbtree/store/FileStore","dojox/grid/DataGrid","xfile/factory/model",
"./FileGridView","dojo/dom-construct","./FileView","xide/types","./FileTreeViewSelectionMixin"],function(array,declare,html,domClass,on,Service,lang,ForestStoreModel,Menu,MenuItem,Tree,dndSource,ContentPane,CBTree,TreeStyling,FileStoreModel,FileStoreModelChecked,FileStore,DataGrid,XFFactory,FileGridView,domConstruct,FileView,types,FileTreeViewSelectionMixin){lang.extend(DataGrid,{_onDelete:function(){},_onNew:function(){},_onSet:function(){}});return dojo.declare("xfile.views.FileTreeView",[ContentPane,
FileView,FileTreeViewSelectionMixin],{uuid:null,serviceObject:null,model:null,store:null,gridStore:null,tree:null,currentItem:null,currentTreeNode:null,pMenu:null,pMenuContextItem:null,lastNewPageData:null,currentInsertionNode:null,newItemData:null,didLoad:false,styleToggleToolbar:null,fileStoreUrl:null,sortFields:null,queryOptions:null,layoutFiles:null,gridView:null,themeRoot:null,rootPrefix:null,selectable:false,url:null,rootLabel:"",reCreateStore:true,pathToRegex:function(path){return path;var segm=
path.split("/");var regex="(^\\.";var i;for(i=0;i<segm.length;i++)if(segm[i]!==".")regex=regex+"\\/"+segm[i];regex=regex+"\\/[^\\/]*$)";return regex},updateGrid:function(item){var thiz=this;var _updateGrid=function(item){thiz.updateGrid(item)};if(!this.store.isItemLoaded)return;if(!this.store.isItemLoaded(item))this.store.loadItem({item:item,onItem:_updateGrid});else this.setQuery(this.store.getValue(item,"path"));if(this.gridView&&this.gridView.trail)this.gridView.updateTrail(item.path)},setQuery:function(path){this.gridView.createControls()},
initVariables:function(){this.sortFields=[{attribute:"directory",descending:true},{attribute:"name",ignoreCase:false}];this.queryOptions={deep:true,storeOnly:true};this.layoutFiles=[[{field:"name",name:"Filename",width:20},{field:"size",name:"File Size (bytes)",width:10},{field:"directory",name:"Is Directory",width:10},{field:"path",name:"Path",width:"auto"}]]},_createGridView:function(item){var thiz=this;var parent=dijit.byId("topTabs");if(!this.gridView){var title=item.path;if(title==null)title=
"My Files";this.gridView=new FileGridView({title:title,region:"center",closable:true,delegate:this,store:this.store,tree:this.tree,tabIndex:1,className:"fileGridView",themeRoot:this.themeRoot,rootPrefix:this.rootPrefix,model:this.mode},dojo.doc.createElement("div"));parent.addChild(this.gridView);parent.selectChild(this.gridView);this.gridView.initWidgets();var _updateCB=function(item){thiz.updateGrid(item)};this.gridView.trail.on("click",_updateCB);this.doInitialQuery()}else{this.gridView.set("title",
item.path);parent.selectChild(this.gridView)}},onFileClicked:function(item){if(this.delegate&&this.delegate.setActiveItem)this.delegate.setActiveItem(item);if(item&&item.directory==null)this.getEditorDelegate().onFileClicked(item);else if(item.directory!=null&&item.directory===true)this.updateGrid(item)},onTreeClicked:function(item,nodeWidget){var isDirectory=item&&item.directory!=null&&item.directory===true;if(item&&item.root!=null&&item.root===true)isDirectory=true;this.currentTreeDataItem=item;
this.currentTreeNode=nodeWidget;if(this.contextMenuHandler)this.contextMenuHandler.pMenuContextItem=nodeWidget;if(this.delegate&&this.delegate.onTreeClicked)this.delegate.onTreeClicked(item);return},initWidgets:function(data){var thiz=this;var setSelected=function(selected){this.labelNode.setAttribute("aria-selected",selected?"true":"false");domClass.toggle(this.rowNode," ui-state-active",selected)};var _TreeNode=dijit._TreeNode;if(_TreeNode)_TreeNode.prototype.setSelected=setSelected;this.store=
this.store||window["xappFileStore"];this.model=this.model||window["xappFileModel"];if(this.selectable===true){var rootItem=this.store.getItemByPath(null,this.url);this.model=new types.config.FILES_MODEL_PROTO({store:this.store,forceChildren:true,actualRoot:rootItem,rootLabel:this.rootLabel,iconAttr:"icon",rootId:this.url,checkedRoot:true,checkedAll:true,checkedState:true,query:{path:this.url},checkedStrict:true,queryOptions:{ignoreCase:false,sort:[{attribute:"directory",descending:true,ignoreCase:false},
{attribute:"name",descending:false,ignoreCase:false}]},labelAttr:"name"})}var treeClzProto=this.selectable===true?CBTree:Tree;this.tree=new treeClzProto({model:this.model,persist:true,checkboxMultiState:true,className:"container ui-widget-content",showRoot:this.selectable===true,icon:{iconClass:"networkIcon",indent:false},branchIcons:false,nodeIcons:false});this.onTreeCreated(this.tree);this.model.owner=this.tree;this.domNode.appendChild(this.tree.domNode);this.tree.startup();dojo.connect(this.tree,
"onClick",function(item,nodeWidget){thiz.onTreeClicked(item,nodeWidget)});dojo.connect(this.tree,"onMouseDown",function(item,nodeWidget){var tn=dijit.getEnclosingWidget(item.target);if(thiz.contextMenuHandler)if(tn){var _item=tn.params?tn.params.item:null;if(_item){thiz.pMenuContextItem=_item;thiz.activeItem=_item;if(thiz.contextMenuHandler)thiz.contextMenuHandler.pMenuContextItem=_item}}});domClass.add(this.tree.containerNode,"ui-widget");try{this._createContextMenu(this.tree)}catch(e){debugger}this.store.query({path:this.url});
this.doInitialQuery()},startup:function(){if(this.didLoad)return;this.inherited(arguments);if(this.delegate&&this.delegate.containerNode)domClass.remove(this.delegate.containerNode,"ui-state-default");this.initVariables();this.didLoad=true}})})},"dijit/form/NumberTextBox":function(){define("dijit/form/NumberTextBox",["dojo/_base/declare","dojo/_base/lang","dojo/number","./RangeBoundTextBox"],function(declare,lang,number,RangeBoundTextBox){var NumberTextBoxMixin=declare("dijit.form.NumberTextBoxMixin",
null,{pattern:number.regexp,value:NaN,editOptions:{pattern:"#.######"},_formatter:number.format,postMixInProperties:function(){this.inherited(arguments);this._set("type","text")},_setConstraintsAttr:function(constraints){var places=typeof constraints.places=="number"?constraints.places:0;if(places)places++;if(typeof constraints.max!="number")constraints.max=9*Math.pow(10,15-places);if(typeof constraints.min!="number")constraints.min=-9*Math.pow(10,15-places);this.inherited(arguments,[constraints]);
if(this.focusNode&&this.focusNode.value&&!isNaN(this.value))this.set("value",this.value)},_onFocus:function(){if(this.disabled)return;var val=this.get("value");if(typeof val=="number"&&!isNaN(val)){var formattedValue=this.format(val,this.constraints);if(formattedValue!==undefined)this.textbox.value=formattedValue}this.inherited(arguments)},format:function(value,constraints){var formattedValue=String(value);if(typeof value!="number")return formattedValue;if(isNaN(value))return"";if(!("rangeCheck"in
this&&this.rangeCheck(value,constraints))&&constraints.exponent!==false&&/\de[-+]?\d/i.test(formattedValue))return formattedValue;if(this.editOptions&&this.focused)constraints=lang.mixin({},constraints,this.editOptions);return this._formatter(value,constraints)},_parser:number.parse,parse:function(value,constraints){var v=this._parser(value,lang.mixin({},constraints,this.editOptions&&this.focused?this.editOptions:{}));if(this.editOptions&&this.focused&&isNaN(v))v=this._parser(value,constraints);return v},
_getDisplayedValueAttr:function(){var v=this.inherited(arguments);return isNaN(v)?this.textbox.value:v},filter:function(value){return value==null||value===""?NaN:this.inherited(arguments)},serialize:function(value,options){return typeof value!="number"||isNaN(value)?"":this.inherited(arguments)},_setBlurValue:function(){var val=lang.hitch(lang.delegate(this,{focused:true}),"get")("value");this._setValueAttr(val,true)},_setValueAttr:function(value,priorityChange,formattedValue){if(value!==undefined&&
formattedValue===undefined){formattedValue=String(value);if(typeof value=="number")if(isNaN(value))formattedValue="";else{if("rangeCheck"in this&&this.rangeCheck(value,this.constraints)||this.constraints.exponent===false||!/\de[-+]?\d/i.test(formattedValue))formattedValue=undefined}else if(!value){formattedValue="";value=NaN}else value=undefined}this.inherited(arguments,[value,priorityChange,formattedValue])},_getValueAttr:function(){var v=this.inherited(arguments);if(isNaN(v)&&this.textbox.value!==
"")if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)&&(new RegExp("^"+number._realNumberRegexp(lang.delegate(this.constraints))+"$")).test(this.textbox.value)){var n=Number(this.textbox.value);return isNaN(n)?undefined:n}else return undefined;else return v},isValid:function(isFocused){if(!this.focused||this._isEmpty(this.textbox.value))return this.inherited(arguments);else{var v=this.get("value");if(!isNaN(v)&&this.rangeCheck(v,this.constraints))if(this.constraints.exponent!==
false&&/\de[-+]?\d/i.test(this.textbox.value))return true;else return this.inherited(arguments);else return false}}});var NumberTextBox=declare("dijit.form.NumberTextBox",[RangeBoundTextBox,NumberTextBoxMixin],{baseClass:"dijitTextBox dijitNumberTextBox"});NumberTextBox.Mixin=NumberTextBoxMixin;return NumberTextBox})},"xide/widgets/ImageWidget":function(){define(["dojo/_base/declare","xide/widgets/WidgetBase","xide/utils"],function(declare,WidgetBase,utils){return declare("xide.widgets.ImageWidget",
[WidgetBase],{href:"templates/ImageWidget.html",wContentSelectorButton:null,lastUploadedFileName:null,ajaxplorerIframe:null,ajaxplorerDialog:null,oriPath:null,featherEditor:null,img:null,minHeight:"51px;",value:"",onPlatformChanged:function(newPlatform){this.inherited(arguments);this.setThumbnail(this.getValue())},clearValue:function(){this.setValue(null);this.setThumbnail(null)},templateString:"\x3cdiv class\x3d'widgetContainer widgetBorder widgetTable' style\x3d''\x3e"+"\x3ctable border\x3d'0' cellpadding\x3d'5px' width\x3d'100%' \x3e"+
"\x3ctbody\x3e"+"\x3ctr\x3e"+"\x3ctd width\x3d'25%' class\x3d'widgetTitle'\x3e\x3cspan\x3e\x3cb\x3e${!title}\x3c/b\x3e\x3cspan\x3e\x3c/td\x3e"+"\x3ctd width\x3d'100px' class\x3d'widgetValue' valign\x3d'middle' data-dojo-attach-point\x3d'previewNode'\x3e\x3c/td\x3e"+"\x3ctd width\x3d'25px' data-dojo-attach-point\x3d'button0'\x3e\x3c/td\x3e"+"\x3ctd data-dojo-attach-point\x3d'button1'\x3e\x3c/td\x3e"+"\x3ctd data-dojo-attach-point\x3d'button2' width\x3d'25px' \x3e\x3c/td\x3e"+"\x3ctd data-dojo-attach-point\x3d'button3' width\x3d'25px' \x3e\x3c/td\x3e"+
"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e"+"\x3cdiv data-dojo-attach-point\x3d'expander' onclick\x3d'' style\x3d'width:100%;'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'last'\x3e\x3c/div\x3e"+"\x3c/div\x3e",updateImageUrl:function(url){this.oriPath=url;this.userData=utils.setCIValueByField(this.userData,"value",url);this.setThumbnail(url);this.delegate.updateItem(this.userData)},onLoad:function(res){this.getWidgetsFromTemplate()},setThumbnail:function(fileName){return;var fullPath=
sctx.getSession().toRelativeAssetUrl(fileName);if(this.img)utils.destroyWidget(this.img);if(fileName==null)return;this.previewNode.innerHTML="";if(fileName.length>0&&fileName!="Unset"){this.img=dojo.create("IMG",{src:fullPath,id:"imagePreviewNode",style:"valign:middle;",className:"widgetImagePreview",height:"43px",width:"43px",alt:fileName});this.previewNode.appendChild(this.img)}else this.previewNode.innerHTML="Unset"},ajaxplorerFileSelected:function(fileName){this.oriPath=fileName;this.lastUploadedFileName=
fileName;this.setThumbnail(fileName);this.setValue(fileName)},openLightBox:function(){this.ajaxplorerDialog=sctx.getWorkflowManager().getAjaxplorerDialog(this);this.ajaxplorerDialog.show();this.ajaxplorerDialog.resize()},delayedCIUpdate:function(thiz){thiz.userData=utils.setCIValueByField(thiz.userData,"value",thiz.oriPath);sctx.getStoreDelegate().updateDataItem(thiz.userData)},prepareQuickEditor:function(){var thiz=this;this.featherEditor=new Aviary.Feather({apiKey:sctx.getSession().serviceSettings.featherEditorApiKey,
tools:"all",apiVersion:2,appendTo:"injection_site",onError:function(errorObject){},onSave:function(imageID,newURL){var img=dojo.byId(imageID);img.src=newURL;thiz.userData=utils.setCIValueByField(thiz.userData,"value",newURL);sctx.getStoreDelegate().updateDataItem(thiz.userData);setTimeout(function(){thiz.delayedCIUpdate(thiz)},2E3)},cropPresets:["4:3","16:9","320x240","640x480","800x600","1280x1024","1600x1200","160x160","480x640","600x800","1024x1280","1200x1600"],resizePresets:["320x480","640x960",
"800x600","1280x1024","1600x1200","240x320","480x640","600x800","1024x1280","1200x1600"]})},launchEditor:function(id){this.prepareQuickEditor();this.oriPath=utils.getCIValueByField(this.userData,"value");var theUrl=sctx.getSession().toRelativeAssetUrl(this.oriPath);this.featherEditor.launch({image:id,url:theUrl});return true},fillTemplate:function(){var thiz=this;var selectButton=new dijit.form.Button({iconClass:"dijitEditorIcon widgetImageSelectButton",style:"float:left;",role:"button",showLabel:false,
checked:true});this.button0.appendChild(selectButton.domNode);dojo.connect(selectButton,"onClick",function(item){thiz.openLightBox()});this.addClearButton();var value=this.getValue();if(value)this.setThumbnail(value)},startup:function(){this.inherited(arguments);this.fillTemplate()}})})},"dojox/encoding/digests/_base":function(){define("dojox/encoding/digests/_base",[],function(){var base={};base.outputTypes={Base64:0,Hex:1,String:2,Raw:3};base.addWords=function(a,b){var l=(a&65535)+(b&65535);var m=
(a>>16)+(b>>16)+(l>>16);return m<<16|l&65535};var chrsz=8;var mask=(1<<chrsz)-1;base.stringToWord=function(s){var wa=[];for(var i=0,l=s.length*chrsz;i<l;i+=chrsz)wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<i%32;return wa};base.wordToString=function(wa){var s=[];for(var i=0,l=wa.length*32;i<l;i+=chrsz)s.push(String.fromCharCode(wa[i>>5]>>>i%32&mask));return s.join("")};base.wordToHex=function(wa){var h="0123456789abcdef",s=[];for(var i=0,l=wa.length*4;i<l;i++)s.push(h.charAt(wa[i>>2]>>i%4*8+4&15)+h.charAt(wa[i>>
2]>>i%4*8&15));return s.join("")};base.wordToBase64=function(wa){var p="\x3d",tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=[];for(var i=0,l=wa.length*4;i<l;i+=3){var t=(wa[i>>2]>>8*(i%4)&255)<<16|(wa[i+1>>2]>>8*((i+1)%4)&255)<<8|wa[i+2>>2]>>8*((i+2)%4)&255;for(var j=0;j<4;j++)if(i*8+j*6>wa.length*32)s.push(p);else s.push(tab.charAt(t>>6*(3-j)&63))}return s.join("")};base.stringToUtf8=function(input){var output="";var i=-1;var x,y;while(++i<input.length){x=input.charCodeAt(i);
y=i+1<input.length?input.charCodeAt(i+1):0;if(55296<=x&&x<=56319&&56320<=y&&y<=57343){x=65536+((x&1023)<<10)+(y&1023);i++}if(x<=127)output+=String.fromCharCode(x);else if(x<=2047)output+=String.fromCharCode(192|x>>>6&31,128|x&63);else if(x<=65535)output+=String.fromCharCode(224|x>>>12&15,128|x>>>6&63,128|x&63);else if(x<=2097151)output+=String.fromCharCode(240|x>>>18&7,128|x>>>12&63,128|x>>>6&63,128|x&63)}return output};return base})},"dojo/dom-construct":function(){define(["exports","./_base/kernel",
"./sniff","./_base/window","./dom","./dom-attr"],function(exports,dojo,has,win,dom,attr){var tagWrap={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},reTag=/<\s*([\w\:]+)/,masterNode={},masterNum=0,masterName="__"+dojo._scopeName+"ToDomId";for(var param in tagWrap)if(tagWrap.hasOwnProperty(param)){var tw=tagWrap[param];
tw.pre=param=="option"?'\x3cselect multiple\x3d"multiple"\x3e':"\x3c"+tw.join("\x3e\x3c")+"\x3e";tw.post="\x3c/"+tw.reverse().join("\x3e\x3c/")+"\x3e"}var html5domfix;if(has("ie")<=8)html5domfix=function(doc){doc.__dojo_html5_tested="yes";var div=create("div",{innerHTML:"\x3cnav\x3ea\x3c/nav\x3e",style:{visibility:"hidden"}},doc.body);if(div.childNodes.length!==1)("abbr article aside audio canvas details figcaption figure footer header "+"hgroup mark meter nav output progress section summary time video").replace(/\b\w+\b/g,
function(n){doc.createElement(n)});destroy(div)};function _insertBefore(node,ref){var parent=ref.parentNode;if(parent)parent.insertBefore(node,ref)}function _insertAfter(node,ref){var parent=ref.parentNode;if(parent)if(parent.lastChild==ref)parent.appendChild(node);else parent.insertBefore(node,ref.nextSibling)}exports.toDom=function toDom(frag,doc){doc=doc||win.doc;var masterId=doc[masterName];if(!masterId){doc[masterName]=masterId=++masterNum+"";masterNode[masterId]=doc.createElement("div")}if(has("ie")<=
8)if(!doc.__dojo_html5_tested&&doc.body)html5domfix(doc);frag+="";var match=frag.match(reTag),tag=match?match[1].toLowerCase():"",master=masterNode[masterId],wrap,i,fc,df;if(match&&tagWrap[tag]){wrap=tagWrap[tag];master.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i)master=master.firstChild}else master.innerHTML=frag;if(master.childNodes.length==1)return master.removeChild(master.firstChild);df=doc.createDocumentFragment();while(fc=master.firstChild)df.appendChild(fc);return df};exports.place=
function place(node,refNode,position){refNode=dom.byId(refNode);if(typeof node=="string")node=/^\s*</.test(node)?exports.toDom(node,refNode.ownerDocument):dom.byId(node);if(typeof position=="number"){var cn=refNode.childNodes;if(!cn.length||cn.length<=position)refNode.appendChild(node);else _insertBefore(node,cn[position<0?0:position])}else switch(position){case "before":_insertBefore(node,refNode);break;case "after":_insertAfter(node,refNode);break;case "replace":refNode.parentNode.replaceChild(node,
refNode);break;case "only":exports.empty(refNode);refNode.appendChild(node);break;case "first":if(refNode.firstChild){_insertBefore(node,refNode.firstChild);break}default:refNode.appendChild(node)}return node};var create=exports.create=function create(tag,attrs,refNode,pos){var doc=win.doc;if(refNode){refNode=dom.byId(refNode);doc=refNode.ownerDocument}if(typeof tag=="string")tag=doc.createElement(tag);if(attrs)attr.set(tag,attrs);if(refNode)exports.place(tag,refNode,pos);return tag};function _empty(node){if("innerHTML"in
node)try{node.innerHTML="";return}catch(e){}for(var c;c=node.lastChild;)node.removeChild(c)}exports.empty=function empty(node){_empty(dom.byId(node))};function _destroy(node,parent){if(node.firstChild)_empty(node);if(parent)has("ie")&&parent.canHaveChildren&&"removeNode"in node?node.removeNode(false):parent.removeChild(node)}var destroy=exports.destroy=function destroy(node){node=dom.byId(node);if(!node)return;_destroy(node,node.parentNode)}})},"dijit/form/NumberSpinner":function(){define("dijit/form/NumberSpinner",
["dojo/_base/declare","dojo/keys","./_Spinner","./NumberTextBox"],function(declare,keys,_Spinner,NumberTextBox){return declare("dijit.form.NumberSpinner",[_Spinner,NumberTextBox.Mixin],{baseClass:"dijitTextBox dijitSpinner dijitNumberTextBox",adjust:function(val,delta){var tc=this.constraints,v=isNaN(val),gotMax=!isNaN(tc.max),gotMin=!isNaN(tc.min);if(v&&delta!=0)val=delta>0?gotMin?tc.min:gotMax?tc.max:0:gotMax?this.constraints.max:gotMin?tc.min:0;var newval=val+delta;if(v||isNaN(newval))return val;
if(gotMax&&newval>tc.max)newval=tc.max;if(gotMin&&newval<tc.min)newval=tc.min;return newval},_onKeyDown:function(e){if(this.disabled||this.readOnly)return;if((e.keyCode==keys.HOME||e.keyCode==keys.END)&&!(e.ctrlKey||e.altKey||e.metaKey)&&typeof this.get("value")!="undefined"){var value=this.constraints[e.keyCode==keys.HOME?"min":"max"];if(typeof value=="number")this._setValueAttr(value,false);e.stopPropagation();e.preventDefault()}}})})},"xfile/widgets/FileProperties":function(){define("xfile/widgets/FileProperties",
["dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/dom-construct","dojo/on","xide/widgets/TemplatedWidgetBase","xide/types","xapp/factory/Events","xide/utils/StringUtils"],function(declare,html,domClass,domConstruct,on,TemplatedWidgetBase,types,eventFactory,StringUtils){return declare("xfile.widgets.FileProperties",[TemplatedWidgetBase],{item:null,fileName:"",fileSize:"",fileModified:"",fileType:"",fileOwner:"",fileGroup:"",filePermissions:"",tBody:null,templateString:'\x3ctable class\x3d"filePropertyTable" border\x3d"0" cellpadding\x3d"5px" width\x3d"100%" height\x3d"90px" \x3e'+
"\x3ctbody data-dojo-attach-point\x3d'tBody' align\x3d'left'\x3e"+"\x3ctr class\x3d'filePropertyRow' valign\x3d'top'\x3e"+"\x3ctd class\x3d'filePropertyLabelColumn' valign\x3d'middle' width\x3d'30%'\x3e"+"\x3cspan\x3eName\x3c/span\x3e"+"\x3c/td\x3e"+"\x3ctd class\x3d'filePropertyValueColumn' valign\x3d'middle' width\x3d'70%'\x3e"+"\x3cspan\x3e${!fileName}\x3c/span\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr class\x3d'filePropertyRow' valign\x3d'top'\x3e"+"\x3ctd class\x3d'filePropertyLabelColumn' valign\x3d'middle' width\x3d'30%'\x3e"+
"\x3cspan\x3eSize\x3c/span\x3e"+"\x3c/td\x3e"+"\x3ctd class\x3d'filePropertyValueColumn' valign\x3d'middle' width\x3d'70%'\x3e"+"\x3cspan\x3e${!fileSize}\x3c/span\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr class\x3d'filePropertyRow' valign\x3d'top'\x3e"+"\x3ctd class\x3d'filePropertyLabelColumn' valign\x3d'middle' width\x3d'30%'\x3e"+"\x3cspan\x3eLast Modif.\x3c/span\x3e"+"\x3c/td\x3e"+"\x3ctd class\x3d'filePropertyValueColumn' valign\x3d'middle' width\x3d'70%'\x3e"+"\x3cspan\x3e${!fileModified}\x3c/span\x3e"+
"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr class\x3d'filePropertyRow' valign\x3d'top'\x3e"+"\x3ctd class\x3d'filePropertyLabelColumn' valign\x3d'middle' width\x3d'30%'\x3e"+"\x3cspan\x3eType\x3c/span\x3e"+"\x3c/td\x3e"+"\x3ctd class\x3d'filePropertyValueColumn' valign\x3d'middle' width\x3d'70%'\x3e"+"\x3cspan\x3e${!fileType}\x3c/span\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr class\x3d'filePropertyRow' valign\x3d'top'\x3e"+"\x3ctd class\x3d'filePropertyLabelColumn' valign\x3d'middle' width\x3d'30%'\x3e"+"\x3cspan\x3eOwner\x3c/span\x3e"+
"\x3c/td\x3e"+"\x3ctd class\x3d'filePropertyValueColumn' valign\x3d'middle' width\x3d'70%'\x3e"+"\x3cspan\x3e${!fileOwner}\x3c/span\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3ctr class\x3d'filePropertyRow' valign\x3d'top'\x3e"+"\x3ctd class\x3d'filePropertyLabelColumn' valign\x3d'middle' width\x3d'30%'\x3e"+"\x3cspan\x3eGroup\x3c/span\x3e"+"\x3c/td\x3e"+"\x3ctd class\x3d'filePropertyValueColumn' valign\x3d'middle' width\x3d'70%'\x3e"+"\x3cspan\x3e${!fileGroup}\x3c/span\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+
"\x3ctr class\x3d'filePropertyRow' valign\x3d'top'\x3e"+"\x3ctd class\x3d'filePropertyLabelColumn' valign\x3d'middle' width\x3d'30%'\x3e"+"\x3cspan\x3ePermissions\x3c/span\x3e"+"\x3c/td\x3e"+"\x3ctd class\x3d'filePropertyValueColumn' valign\x3d'middle' width\x3d'70%'\x3e"+"\x3cspan\x3e${!filePermissions}\x3c/span\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e",addField:function(label,value){var _tpl="\x3ctd class\x3d'filePropertyLabelColumn' valign\x3d'middle' width\x3d'30%'\x3e"+
"\x3cspan\x3e${label}\x3c/span\x3e"+"\x3c/td\x3e"+"\x3ctd class\x3d'filePropertyValueColumn' valign\x3d'middle' width\x3d'70%'\x3e"+"\x3cspan\x3e${value}\x3c/span\x3e"+"\x3c/td\x3e";_tpl=StringUtils.substituteString(_tpl,{label:label,value:value});var tr=domConstruct.create("TR",{innerHTML:_tpl,className:"filePropertyRow",valign:"top"},this.tBody)},formatDateSimple:function(data,format){var momentUnix=moment.unix(data);var dateStr=momentUnix.format("YYYY MMMM Do, h:mm:ss a");return dateStr},postMixInProperties:function(){this.inherited(arguments);
var item=this.item;if(item){this.fileName=item.name;this.fileSize=item.size||"0";this.filePermissions=item.permissions;if(item.owner&&item.owner.user)this.fileOwner=item.owner.user.name;if(item.owner&&item.owner.group)this.fileGroup=item.owner.group.name;this.fileModified=this.formatDateSimple(item.modified);var fileTypeName="";if(item.directory!=null&&item.directory===true)fileTypeName="Directory";else fileTypeName=item.mime;this.fileType=fileTypeName}},_initEvents:function(){},_createButton:function(){},
onButtonClicked:function(button){if(this.delegate&&this.delegate.onActionButton)this.delegate.onActionButton(button,button.item,button.operation,button.owner)},startup:function(){this.inherited(arguments);if(this.item&&this.item.dimension!=null&&this.item.dimension!==false)this.addField("Dimension",this.item.dimension);var thiz=this}})})},"url:dijit/templates/CheckedMenuItem.html":'\x3ctr class\x3d"dijitReset dijitMenuItem" data-dojo-attach-point\x3d"focusNode" role\x3d"${role}" tabIndex\x3d"-1" aria-checked\x3d"${checked}"\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemIconCell" role\x3d"presentation"\x3e\n\t\t\x3cspan class\x3d"dijitInline dijitIcon dijitMenuItemIcon dijitCheckedMenuItemIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\x3e\n\t\t\x3cspan class\x3d"dijitMenuItemIconChar dijitCheckedMenuItemIconChar"\x3e${checkedChar}\x3c/span\x3e\n\t\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemLabel" colspan\x3d"2" data-dojo-attach-point\x3d"containerNode,labelNode,textDirNode"\x3e\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuItemAccelKey" style\x3d"display: none" data-dojo-attach-point\x3d"accelKeyNode"\x3e\x3c/td\x3e\n\t\x3ctd class\x3d"dijitReset dijitMenuArrowCell" role\x3d"presentation"\x3e\x26#160;\x3c/td\x3e\n\x3c/tr\x3e\n',
"xstyle/has-class":function(){define("xstyle/has-class",["dojo/has"],function(has){var tested={};return function(){var test,args=arguments;for(var i=0;i<args.length;i++){var test=args[i];if(!tested[test]){tested[test]=true;var parts=test.match(/^(no-)?(.+?)((-[\d\.]+)(-[\d\.]+)?)?$/),hasResult=has(parts[2]),lower=-parts[4];if((lower>0?lower<=hasResult&&(-parts[5]||lower)>=hasResult:!!hasResult)==!parts[1])document.documentElement.className+=" has-"+test}}}})},"xapp/utils":function(){define("xapp/utils",
["dojo/_base/declare"],function(declare,utils){return declare("xapp.utils",null,{})})},"xfile/views/PreviewEditor":function(){define("xfile/views/PreviewEditor",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dojo/_base/lang","dojo/dom-geometry","xide/widgets/TemplatedWidgetBase","xide/utils"],function(array,declare,html,on,lang,domGeometry,TemplatedWidgetBase,utils){return declare("xfile.views.PreviewEditor",[TemplatedWidgetBase],{wFloatingPane:null,closeable:true,moduleView:null,
didStartup:false,ckEditorRoot:null,ckEditor:null,editorControlsRoot:null,btnSave:null,title:null,dataItem:null,content:null,titleWidget:null,dataRef:null,sourceType:null,dataName:null,saveButton:true,titleEdit:true,editorContent:null,getContent:function(){if(this.ckEditor)return this.ckEditor.getData();return null},templateString:"\x3cdiv class\x3d'editorRoot' data-dojo-type\x3d'dijit.layout.ContentPane' title\x3d'${!title}' closable\x3d'true' data-dojo-attach-point\x3d'wFloatingPane' style\x3d''\x3e"+
"\x3cdiv data-dojo-type\x3d'dijit.layout.ContentPane'\x3e"+"\x3cdiv data-dojo-attach-point\x3d'ckEditorRoot' style\x3d''\x3e\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",createEditorControls:function(){},onHide:function(){},onClose:function(){this.ckEditor.destroy();utils.destroyWidget(this.ckEditor);utils.destroyWidget(this);this.inherited(arguments)},destroy:function(){},attachCKEditor:function(){var thiz=this;this.ckEditorRoot.id=this.id+"_Editor";var rootId=this.ckEditorRoot.id;this.ckEditor=CKEDITOR.replace(rootId,
{removePlugins:"docprops,colordialog,div,link,scayt,showblocks,specialchar,devtools,pastefromword,pastetext,iframe,iframedialog,liststyle,wsc,styles,find,smiley,source,styles,fonts,table,tableresize,templates,flash,iframe,image,link,forms,div,pagebreak,styles,xml,scayt,showblocks,uicolor",startupFocus:true,on:{instanceReady:function(ev){this.focus()}}});this.ckEditor.setData(this.content);this.ckEditor.focus();setTimeout(function(){thiz.ckEditor.focus()},2E3)},saveContentCB:function(thiz,res){},saveContent:function(){var refId=
utils.toInt(this.dataItem.uid);var content=this.ckEditor.getData();if(sctx&&sctx.getContentManager&&sctx.getContentManager())var newId=sctx.getContentManager().saveContent(this,this.saveContentCB,refId,content,"Content",this.titleWidget.value)},startup:function(){if(this.didStartup)return;this.set("closable",true);this.inherited(arguments);this.didStartup=true;this.attachCKEditor()}})})},"dojox/math/BigInteger":function(){define("dojox/math/BigInteger",["dojo","dojox"],function(dojo,dojox){dojo.getObject("math.BigInteger",
true,dojox);dojo.experimental("dojox.math.BigInteger");var dbits;var canary=0xdeadbeefcafe;var j_lm=(canary&16777215)==15715070;function BigInteger(a,b,c){if(a!=null)if("number"==typeof a)this._fromNumber(a,b,c);else if(!b&&"string"!=typeof a)this._fromString(a,256);else this._fromString(a,b)}function nbi(){return new BigInteger(null)}function am1(i,x,w,j,c,n){while(--n>=0){var v=x*this[i++]+w[j]+c;c=Math.floor(v/67108864);w[j++]=v&67108863}return c}function am2(i,x,w,j,c,n){var xl=x&32767,xh=x>>
15;while(--n>=0){var l=this[i]&32767;var h=this[i++]>>15;var m=xh*l+h*xl;l=xl*l+((m&32767)<<15)+w[j]+(c&1073741823);c=(l>>>30)+(m>>>15)+xh*h+(c>>>30);w[j++]=l&1073741823}return c}function am3(i,x,w,j,c,n){var xl=x&16383,xh=x>>14;while(--n>=0){var l=this[i]&16383;var h=this[i++]>>14;var m=xh*l+h*xl;l=xl*l+((m&16383)<<14)+w[j]+c;c=(l>>28)+(m>>14)+xh*h;w[j++]=l&268435455}return c}if(j_lm&&navigator.appName=="Microsoft Internet Explorer"){BigInteger.prototype.am=am2;dbits=30}else if(j_lm&&navigator.appName!=
"Netscape"){BigInteger.prototype.am=am1;dbits=26}else{BigInteger.prototype.am=am3;dbits=28}var BI_FP=52;var BI_RM="0123456789abcdefghijklmnopqrstuvwxyz";var BI_RC=[];var rr,vv;rr="0".charCodeAt(0);for(vv=0;vv<=9;++vv)BI_RC[rr++]=vv;rr="a".charCodeAt(0);for(vv=10;vv<36;++vv)BI_RC[rr++]=vv;rr="A".charCodeAt(0);for(vv=10;vv<36;++vv)BI_RC[rr++]=vv;function int2char(n){return BI_RM.charAt(n)}function intAt(s,i){var c=BI_RC[s.charCodeAt(i)];return c==null?-1:c}function bnpCopyTo(r){for(var i=this.t-1;i>=
0;--i)r[i]=this[i];r.t=this.t;r.s=this.s}function bnpFromInt(x){this.t=1;this.s=x<0?-1:0;if(x>0)this[0]=x;else if(x<-1)this[0]=x+_DV;else this.t=0}function nbv(i){var r=nbi();r._fromInt(i);return r}function bnpFromString(s,b){var k;if(b==16)k=4;else if(b==8)k=3;else if(b==256)k=8;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else{this._fromRadix(s,b);return}this.t=0;this.s=0;var i=s.length,mi=false,sh=0;while(--i>=0){var x=k==8?s[i]&255:intAt(s,i);if(x<0){if(s.charAt(i)=="-")mi=true;continue}mi=
false;if(sh==0)this[this.t++]=x;else if(sh+k>this._DB){this[this.t-1]|=(x&(1<<this._DB-sh)-1)<<sh;this[this.t++]=x>>this._DB-sh}else this[this.t-1]|=x<<sh;sh+=k;if(sh>=this._DB)sh-=this._DB}if(k==8&&(s[0]&128)!=0){this.s=-1;if(sh>0)this[this.t-1]|=(1<<this._DB-sh)-1<<sh}this._clamp();if(mi)BigInteger.ZERO._subTo(this,this)}function bnpClamp(){var c=this.s&this._DM;while(this.t>0&&this[this.t-1]==c)--this.t}function bnToString(b){if(this.s<0)return"-"+this.negate().toString(b);var k;if(b==16)k=4;else if(b==
8)k=3;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else return this._toRadix(b);var km=(1<<k)-1,d,m=false,r="",i=this.t;var p=this._DB-i*this._DB%k;if(i-- >0){if(p<this._DB&&(d=this[i]>>p)>0){m=true;r=int2char(d)}while(i>=0){if(p<k){d=(this[i]&(1<<p)-1)<<k-p;d|=this[--i]>>(p+=this._DB-k)}else{d=this[i]>>(p-=k)&km;if(p<=0){p+=this._DB;--i}}if(d>0)m=true;if(m)r+=int2char(d)}}return m?r:"0"}function bnNegate(){var r=nbi();BigInteger.ZERO._subTo(this,r);return r}function bnAbs(){return this.s<
0?this.negate():this}function bnCompareTo(a){var r=this.s-a.s;if(r)return r;var i=this.t;r=i-a.t;if(r)return r;while(--i>=0)if(r=this[i]-a[i])return r;return 0}function nbits(x){var r=1,t;if(t=x>>>16){x=t;r+=16}if(t=x>>8){x=t;r+=8}if(t=x>>4){x=t;r+=4}if(t=x>>2){x=t;r+=2}if(t=x>>1){x=t;r+=1}return r}function bnBitLength(){if(this.t<=0)return 0;return this._DB*(this.t-1)+nbits(this[this.t-1]^this.s&this._DM)}function bnpDLShiftTo(n,r){var i;for(i=this.t-1;i>=0;--i)r[i+n]=this[i];for(i=n-1;i>=0;--i)r[i]=
0;r.t=this.t+n;r.s=this.s}function bnpDRShiftTo(n,r){for(var i=n;i<this.t;++i)r[i-n]=this[i];r.t=Math.max(this.t-n,0);r.s=this.s}function bnpLShiftTo(n,r){var bs=n%this._DB;var cbs=this._DB-bs;var bm=(1<<cbs)-1;var ds=Math.floor(n/this._DB),c=this.s<<bs&this._DM,i;for(i=this.t-1;i>=0;--i){r[i+ds+1]=this[i]>>cbs|c;c=(this[i]&bm)<<bs}for(i=ds-1;i>=0;--i)r[i]=0;r[ds]=c;r.t=this.t+ds+1;r.s=this.s;r._clamp()}function bnpRShiftTo(n,r){r.s=this.s;var ds=Math.floor(n/this._DB);if(ds>=this.t){r.t=0;return}var bs=
n%this._DB;var cbs=this._DB-bs;var bm=(1<<bs)-1;r[0]=this[ds]>>bs;for(var i=ds+1;i<this.t;++i){r[i-ds-1]|=(this[i]&bm)<<cbs;r[i-ds]=this[i]>>bs}if(bs>0)r[this.t-ds-1]|=(this.s&bm)<<cbs;r.t=this.t-ds;r._clamp()}function bnpSubTo(a,r){var i=0,c=0,m=Math.min(a.t,this.t);while(i<m){c+=this[i]-a[i];r[i++]=c&this._DM;c>>=this._DB}if(a.t<this.t){c-=a.s;while(i<this.t){c+=this[i];r[i++]=c&this._DM;c>>=this._DB}c+=this.s}else{c+=this.s;while(i<a.t){c-=a[i];r[i++]=c&this._DM;c>>=this._DB}c-=a.s}r.s=c<0?-1:
0;if(c<-1)r[i++]=this._DV+c;else if(c>0)r[i++]=c;r.t=i;r._clamp()}function bnpMultiplyTo(a,r){var x=this.abs(),y=a.abs();var i=x.t;r.t=i+y.t;while(--i>=0)r[i]=0;for(i=0;i<y.t;++i)r[i+x.t]=x.am(0,y[i],r,i,0,x.t);r.s=0;r._clamp();if(this.s!=a.s)BigInteger.ZERO._subTo(r,r)}function bnpSquareTo(r){var x=this.abs();var i=r.t=2*x.t;while(--i>=0)r[i]=0;for(i=0;i<x.t-1;++i){var c=x.am(i,x[i],r,2*i,0,1);if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1))>=x._DV){r[i+x.t]-=x._DV;r[i+x.t+1]=1}}if(r.t>0)r[r.t-
1]+=x.am(i,x[i],r,2*i,0,1);r.s=0;r._clamp()}function bnpDivRemTo(m,q,r){var pm=m.abs();if(pm.t<=0)return;var pt=this.abs();if(pt.t<pm.t){if(q!=null)q._fromInt(0);if(r!=null)this._copyTo(r);return}if(r==null)r=nbi();var y=nbi(),ts=this.s,ms=m.s;var nsh=this._DB-nbits(pm[pm.t-1]);if(nsh>0){pm._lShiftTo(nsh,y);pt._lShiftTo(nsh,r)}else{pm._copyTo(y);pt._copyTo(r)}var ys=y.t;var y0=y[ys-1];if(y0==0)return;var yt=y0*(1<<this._F1)+(ys>1?y[ys-2]>>this._F2:0);var d1=this._FV/yt,d2=(1<<this._F1)/yt,e=1<<this._F2;
var i=r.t,j=i-ys,t=q==null?nbi():q;y._dlShiftTo(j,t);if(r.compareTo(t)>=0){r[r.t++]=1;r._subTo(t,r)}BigInteger.ONE._dlShiftTo(ys,t);t._subTo(y,y);while(y.t<ys)y[y.t++]=0;while(--j>=0){var qd=r[--i]==y0?this._DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);if((r[i]+=y.am(0,qd,r,j,0,ys))<qd){y._dlShiftTo(j,t);r._subTo(t,r);while(r[i]<--qd)r._subTo(t,r)}}if(q!=null){r._drShiftTo(ys,q);if(ts!=ms)BigInteger.ZERO._subTo(q,q)}r.t=ys;r._clamp();if(nsh>0)r._rShiftTo(nsh,r);if(ts<0)BigInteger.ZERO._subTo(r,r)}function bnMod(a){var r=
nbi();this.abs()._divRemTo(a,null,r);if(this.s<0&&r.compareTo(BigInteger.ZERO)>0)a._subTo(r,r);return r}function Classic(m){this.m=m}function cConvert(x){if(x.s<0||x.compareTo(this.m)>=0)return x.mod(this.m);else return x}function cRevert(x){return x}function cReduce(x){x._divRemTo(this.m,null,x)}function cMulTo(x,y,r){x._multiplyTo(y,r);this.reduce(r)}function cSqrTo(x,r){x._squareTo(r);this.reduce(r)}dojo.extend(Classic,{convert:cConvert,revert:cRevert,reduce:cReduce,mulTo:cMulTo,sqrTo:cSqrTo});
function bnpInvDigit(){if(this.t<1)return 0;var x=this[0];if((x&1)==0)return 0;var y=x&3;y=y*(2-(x&15)*y)&15;y=y*(2-(x&255)*y)&255;y=y*(2-((x&65535)*y&65535))&65535;y=y*(2-x*y%this._DV)%this._DV;return y>0?this._DV-y:-y}function Montgomery(m){this.m=m;this.mp=m._invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<m._DB-15)-1;this.mt2=2*m.t}function montConvert(x){var r=nbi();x.abs()._dlShiftTo(this.m.t,r);r._divRemTo(this.m,null,r);if(x.s<0&&r.compareTo(BigInteger.ZERO)>0)this.m._subTo(r,
r);return r}function montRevert(x){var r=nbi();x._copyTo(r);this.reduce(r);return r}function montReduce(x){while(x.t<=this.mt2)x[x.t++]=0;for(var i=0;i<this.m.t;++i){var j=x[i]&32767;var u0=j*this.mpl+((j*this.mph+(x[i]>>15)*this.mpl&this.um)<<15)&x._DM;j=i+this.m.t;x[j]+=this.m.am(0,u0,x,i,0,this.m.t);while(x[j]>=x._DV){x[j]-=x._DV;x[++j]++}}x._clamp();x._drShiftTo(this.m.t,x);if(x.compareTo(this.m)>=0)x._subTo(this.m,x)}function montSqrTo(x,r){x._squareTo(r);this.reduce(r)}function montMulTo(x,
y,r){x._multiplyTo(y,r);this.reduce(r)}dojo.extend(Montgomery,{convert:montConvert,revert:montRevert,reduce:montReduce,mulTo:montMulTo,sqrTo:montSqrTo});function bnpIsEven(){return(this.t>0?this[0]&1:this.s)==0}function bnpExp(e,z){if(e>4294967295||e<1)return BigInteger.ONE;var r=nbi(),r2=nbi(),g=z.convert(this),i=nbits(e)-1;g._copyTo(r);while(--i>=0){z.sqrTo(r,r2);if((e&1<<i)>0)z.mulTo(r2,g,r);else{var t=r;r=r2;r2=t}}return z.revert(r)}function bnModPowInt(e,m){var z;if(e<256||m._isEven())z=new Classic(m);
else z=new Montgomery(m);return this._exp(e,z)}dojo.extend(BigInteger,{_DB:dbits,_DM:(1<<dbits)-1,_DV:1<<dbits,_FV:Math.pow(2,BI_FP),_F1:BI_FP-dbits,_F2:2*dbits-BI_FP,_copyTo:bnpCopyTo,_fromInt:bnpFromInt,_fromString:bnpFromString,_clamp:bnpClamp,_dlShiftTo:bnpDLShiftTo,_drShiftTo:bnpDRShiftTo,_lShiftTo:bnpLShiftTo,_rShiftTo:bnpRShiftTo,_subTo:bnpSubTo,_multiplyTo:bnpMultiplyTo,_squareTo:bnpSquareTo,_divRemTo:bnpDivRemTo,_invDigit:bnpInvDigit,_isEven:bnpIsEven,_exp:bnpExp,toString:bnToString,negate:bnNegate,
abs:bnAbs,compareTo:bnCompareTo,bitLength:bnBitLength,mod:bnMod,modPowInt:bnModPowInt});dojo._mixin(BigInteger,{ZERO:nbv(0),ONE:nbv(1),_nbi:nbi,_nbv:nbv,_nbits:nbits,_Montgomery:Montgomery});dojox.math.BigInteger=BigInteger;return dojox.math.BigInteger})},"xfile/views/RemoteEditor":function(){define("xfile/views/RemoteEditor",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-style","dojo/_base/connect","dojo/on","dojo/_base/lang","dojo/dom-geometry","xide/widgets/TemplatedWidgetBase",
"xide/types","xapp/factory"],function(array,declare,html,domStyle,connect,on,lang,domGeometry,TemplatedWidgetBase,types,factory){return dojo.declare("xfile.views.RemoteEditor",[TemplatedWidgetBase],{title:null,wFloatingPane:null,didStartup:false,scriptFrame:null,scriptRoot:null,frameUrl:null,scriptFrameParent:null,editorWaitingTime:4E3,isLoading:false,parentContainer:null,saveUrl:null,itemPath:null,extraPadding:5,templateString:"\x3cdiv class\x3d'scriptEditor' title\x3d'${!title}' data-dojo-attach-point\x3d'wFloatingPane' style\x3d''\x3e"+
"\x3cdiv id\x3d'scriptFrameParent' class\x3d'scriptFrameParent' data-dojo-attach-point\x3d'scriptFrameParent'\x3e\x3c/div\x3e"+"\x3c/div\x3e",focus:function(){},sendMessage:function(message){this.scriptFrame.postMessage(JSON.stringify(message))},onMessage:function(message){var result=JSON.parse(message);if(result&&result.command&&result.command==="save")if(this.delegate&&this.delegate.onImageSaved)this.delegate.onImageSaved(result.url)},looseFocus:function(){this.domNode.blur();if(this.scriptFrameParent){this.scriptFrameParent.blur();
this.domNode.tabindex=-1;this.scriptFrameParent.tabindex=-1;this.scriptFrameParent.blur()}},onEditorReady:function(url){var scriptStandBy=dijit.registry.byId("scriptStandBy");if(scriptStandBy)scriptStandBy.hide();this.frameUrl=url;if(!url)return null;var thiz=this;var xdmTarget=this.scriptFrameParent;if(xdmTarget);this._focusEditor();this.isLoading=false;var bindStr="?";if(url.indexOf("?")!=-1)bindStr="\x26";url+=bindStr+"xdmTarget\x3d"+encodeURIComponent(""+window.location.href);var dstNode=this.parentContainer.containerNode||
this.parentContainer.domNode;var box=domGeometry.getMarginBox(dstNode);box.w-=this.extraPadding;box.h-=this.extraPadding;console.error("open remote editor : "+url);this.scriptFrame=new easyXDM.Socket({remote:url,container:this.scriptFrameParent,props:{style:{width:box.w+"px",height:box.h+"px"}},onload:function(){},onReady:function(){thiz.looseFocus();thiz.sendMessage({command:"edit",height:box.h,width:box.w,url:thiz.editUrl,saveUrl:thiz.saveUrl,title:thiz.title})},onMessage:function(message,origin){thiz.onMessage(message)}})},
_focusEditor:function(){setTimeout(function(){var l=dojo.query('[id*\x3d"easyXDM_"]');if(l!=null&&l.length>0)for(var i=0;i<l.length;i++)if(l[i].contentWindow)l[i].contentWindow.focus()},200)},onHide:function(){},destroy:function(){},onResize:function(){if(this.parentContainer&&this.scriptFrameParent&&this.scriptFrameParent.children.length>0){var box=domGeometry.getMarginBox(this.parentContainer.containerNode);box.w-=this.extraPadding;box.h-=this.extraPadding;var dst=this.scriptFrameParent.children[0];
domStyle.set(dst,{width:box.w+"px",height:box.h+"px"})}},reload:function(scope){dojo.empty(this.scriptFrameParent);this.scriptFrame=null;if(this.frameUrl)this.onEditorReady(this.frameUrl);if(this.scriptFrameParent){this.domNode.tabindex=-1;this.scriptFrameParent.tabindex=-1;this.scriptFrameParent.blur()}},changeScope:function(scope){},_registerMenuHandlers:function(){var thiz=this},startup:function(){this.inherited(arguments);console.error("remote editor startup");if(this.frameUrl)try{this.onEditorReady(this.frameUrl)}catch(e){debugger}var thiz=
this;var resizeCB=function(){thiz.onResize()};dojo.connect(window,dojo.global.onorientationchange!==undefined?"onorientationchange":"onresize",this,function(){setTimeout(function(){resizeCB()},500)})}})})},"xwordpress/manager/WorkflowManager":function(){define("xwordpress/manager/WorkflowManager",["dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dijit/Dialog","xide/widgets/TemplatedWidgetBase","xapp/utils","xas/types","xfile/types","dojo/_base/window","xide/manager/WorkflowManager",
"xwordpress/views/MainView"],function(declare,domClass,domGeometry,domStyle,Dialog,TemplatedWidgetBase,utils,ctypes,fTypes,win,WorkflowManager,MainView){return dojo.declare("xwordpress.manager.WorkflowManager",[WorkflowManager],{dataSourceView:null,runSettingsWidget:null,consoleWidget:null,connectionView:null,runSettingsView:null,templateString:"\x3cdiv\x3e\x3c/div\x3e",metaDataStore:null,fileTreeView:null,actionToolbar:null,buttons:null,mainView:null,resizeToNode:function(parent){if(parent!=null){var parentO=
dojo.byId(parent);if(parentO){var size=domGeometry.getMarginBox(parentO);var dstHeight=size.h;dstHeight-=40;var mainContainer=dijit.registry.byId("main");if(mainContainer){mainContainer.containerNode.style.height=dstHeight+"px";mainContainer.resize();setTimeout(function(){mainContainer.resize()},300)}}}},init:function(){},repaint:function(evt,parent){var winSize=dojo.window.getBox();if(parent!=null){var parentO=dojo.byId(parent);if(parentO){this.resizeToNode(parent);return}}var dstHeight=winSize.h;
var el1=dojo.byId("border-top");if(el1){var box=domGeometry.getMarginBox(el1);if(box.h>0)dstHeight-=box.h}var el2=dojo.byId("header-box");if(el2){var box=domGeometry.getMarginBox(el2);if(box.h>0)dstHeight-=box.h}var el3=dojo.byId("toolbar-box");if(el3){var box=domGeometry.getMarginBox(el3);if(box.h>0)dstHeight-=box.h}dstHeight-=33;var mainContainer=dijit.registry.byId("main");if(mainContainer){mainContainer.containerNode.style.height=dstHeight+"px";mainContainer.resize();setTimeout(function(){mainContainer.resize()},
300)}},_createSettingsView:function(root){var thiz=this;var parent=dijit.registry.byId("settingsRoot");var settingsReadyCB=function(res){thiz.ctx.application.metaDataStore=new dojo.data.ItemFileWriteStore({data:{identifier:"id",items:res.items},labelAttribute:"title"});if(!thiz.settingsView){thiz.settingsView=new xwordpress.views.SettingsTreeView({title:"Settings",className:"resourceBrowser contentPanel",closable:false,selected:true,region:"bottom",style:"overflow-y:auto;left:0;padding:0px !important;overflow-x:hidden;",
splitter:true,metaStore:thiz.ctx.application.metaDataStore},dojo.doc.createElement("div"));parent.addChild(thiz.settingsView);thiz.settingsView.startup();thiz.settingsView.initWidgets()}};this.ctx.getSettingsManager().get(null,settingsReadyCB)},_createFileTreeView:function(root){var thiz=this;var parent=dijit.registry.byId("settingsRoot");if(!parent)return;var xfileCtx=xfile.getContext();var fileView=xfileCtx.openUrl(xfile.types.config.START_PATH,parent)},adjustWP:function(){var footer=dojo.byId("wpfooter");
if(footer)xapp.utils.destroyWidget(footer)},initWidgets:function(config){this.inherited(arguments);xfile.getContext().fileManager=this.ctx.getFileManager();xfile.getContext().scriptManager=this.ctx.getScriptManager();xfile.getContext().scriptManager.config=config;xfile.getContext().fileManager.config=config;this.adjustWP();if(!this.mainView){var parentNode=dojo.byId(config.ROOT_NODE||"xFileRoot");if(parentNode){this.mainView=new MainView({ctx:this.ctx,config:config,panelManager:this.ctx.getPanelManager()},
parentNode);this.mainView.startup();this.ctx.mainView=this.mainView;this.ctx.getPanelManager().rootView=this.mainView;this.mainView.initWithConfig(config)}}}})})},"url:cbtree/templates/TrailBarItem.html":'\x3cdiv class\x3d"dijitReset dijitInline dijitMenuItem" data-dojo-attach-point\x3d"focusNode" role\x3d"menuitem" tabIndex\x3d"-1"\x3e\n\t\x3cimg src\x3d"${_blankGif}" alt\x3d"" class\x3d"dijitIcon dijitMenuItemIcon" data-dojo-attach-point\x3d"iconNode"/\x3e\n\t\x3cspan data-dojo-attach-point\x3d"containerNode"\x3e\x3c/span\x3e\n\x3c/div\x3e\n',
"dojo/NodeList-dom":function(){define(["./_base/kernel","./query","./_base/array","./_base/lang","./dom-class","./dom-construct","./dom-geometry","./dom-attr","./dom-style"],function(dojo,query,array,lang,domCls,domCtr,domGeom,domAttr,domStyle){var magicGuard=function(a){return a.length==1&&typeof a[0]=="string"};var orphan=function(node){var p=node.parentNode;if(p)p.removeChild(node)};var NodeList=query.NodeList,awc=NodeList._adaptWithCondition,aafe=NodeList._adaptAsForEach,aam=NodeList._adaptAsMap;
function getSet(module){return function(node,name,value){if(arguments.length==2)return module[typeof name=="string"?"get":"set"](node,name);return module.set(node,name,value)}}lang.extend(NodeList,{_normalize:function(content,refNode){var parse=content.parse===true;if(typeof content.template=="string"){var templateFunc=content.templateFunc||dojo.string&&dojo.string.substitute;content=templateFunc?templateFunc(content.template,content):content}var type=typeof content;if(type=="string"||type=="number"){content=
domCtr.toDom(content,refNode&&refNode.ownerDocument);if(content.nodeType==11)content=lang._toArray(content.childNodes);else content=[content]}else if(!lang.isArrayLike(content))content=[content];else if(!lang.isArray(content))content=lang._toArray(content);if(parse)content._runParse=true;return content},_cloneNode:function(node){return node.cloneNode(true)},_place:function(ary,refNode,position,useClone){if(refNode.nodeType!=1&&position=="only")return;var rNode=refNode,tempNode;var length=ary.length;
for(var i=length-1;i>=0;i--){var node=useClone?this._cloneNode(ary[i]):ary[i];if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!tempNode)tempNode=rNode.ownerDocument.createElement("div");tempNode.appendChild(node);dojo.parser.parse(tempNode);node=tempNode.firstChild;while(tempNode.firstChild)tempNode.removeChild(tempNode.firstChild)}if(i==length-1)domCtr.place(node,rNode,position);else rNode.parentNode.insertBefore(node,rNode);rNode=node}},position:aam(domGeom.position),attr:awc(getSet(domAttr),
magicGuard),style:awc(getSet(domStyle),magicGuard),addClass:aafe(domCls.add),removeClass:aafe(domCls.remove),toggleClass:aafe(domCls.toggle),replaceClass:aafe(domCls.replace),empty:aafe(domCtr.empty),removeAttr:aafe(domAttr.remove),marginBox:aam(domGeom.getMarginBox),place:function(queryOrNode,position){var item=query(queryOrNode)[0];return this.forEach(function(node){domCtr.place(node,item,position)})},orphan:function(filter){return(filter?query._filterResult(this,filter):this).forEach(orphan)},
adopt:function(queryOrListOrNode,position){return query(queryOrListOrNode).place(this[0],position)._stash(this)},query:function(queryStr){if(!queryStr)return this;var ret=new NodeList;this.map(function(node){query(queryStr,node).forEach(function(subNode){if(subNode!==undefined)ret.push(subNode)})});return ret._stash(this)},filter:function(filter){var a=arguments,items=this,start=0;if(typeof filter=="string"){items=query._filterResult(this,a[0]);if(a.length==1)return items._stash(this);start=1}return this._wrap(array.filter(items,
a[start],a[start+1]),this)},addContent:function(content,position){content=this._normalize(content,this[0]);for(var i=0,node;node=this[i];i++)if(content.length)this._place(content,node,position,i>0);else domCtr.empty(node);return this}});return NodeList})},"xide/views/_GridKeyNavMixin":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/_base/lang","dojo/on","dijit/registry","dijit/_FocusMixin","xide/utils"],function(array,declare,domAttr,keys,lang,on,registry,
_FocusMixin,utils){return declare("xide.views._GridKeyNavMixin",[_FocusMixin],{tabIndex:"0",childSelector:null,postCreate:function(){this.inherited(arguments);domAttr.set(this.domNode,"tabIndex",this.tabIndex);if(!this._keyNavCodes){var keyCodes=this._keyNavCodes={};keyCodes[keys.UP_ARROW]=lang.hitch(this,"_onUpArrow");keyCodes[keys.DOWN_ARROW]=lang.hitch(this,"_onDownArrow")}var self=this,childSelector=typeof this.childSelector=="string"?this.childSelector:lang.hitch(this,"childSelector");this.own(on(this.domNode,
"keypress",lang.hitch(this,"_onContainerKeypress")),on(this.domNode,"keydown",lang.hitch(this,"_onContainerKeydown")),on(this.domNode,"focus",lang.hitch(this,"_onContainerFocus")),on(this.containerNode,on.selector(childSelector,"focusin"),function(evt){}))},_onLeftArrow:function(){},_onRightArrow:function(){},_onUpArrow:function(){},_onDownArrow:function(){},focus:function(){this.focusFirstChild()},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1)},_getLastFocusableChild:function(){return this._getNextFocusableChild(null,
-1)},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild())},focusLastChild:function(){this.focusChild(this._getLastFocusableChild())},focusChild:function(widget,last){if(!widget)return;if(this.focusedChildNode&&widget!==this.focusedChildNode)this._onChildBlur(this.focusedChildNode);if(widget.set)widget.set("tabIndex",this.tabIndex);else;if(widget.focus)widget.focus(last?"end":"start")},_onContainerFocus:function(evt){if(evt.target!==this.domNode||this.focusedChildNode)return;
this.focus()},_onFocus:function(){domAttr.set(this.domNode,"tabIndex","-1");this.inherited(arguments)},_onBlur:function(evt){domAttr.set(this.domNode,"tabIndex",this.tabIndex);if(this.focusedChildNode&&this.focusedChildNode.set){this.focusedChildNode.set("tabIndex","-1");this.lastFocusedChild=this.focusedChildNode;this._set("focusedChild",null)}this.inherited(arguments)},_onChildFocus:function(child){if(child&&child!=this.focusedChildNode){if(this.focusedChildNode&&!this.focusedChildNode._destroyed)this.focusedChildNode.set("tabIndex",
"-1");child.set("tabIndex",this.tabIndex);this.lastFocused=child;this._set("focusedChild",child)}},_searchString:"",multiCharSearchDuration:1E3,onKeyboardSearch:function(item,evt,searchString,numMatches){if(item)this.focusChild(item)},_keyboardSearchCompare:function(item,searchString){var element=item;if(item&&!item.data){var row=this.grid.row(item);if(row)item["data"]=row.data}var text=item?item.data?item.data.name:"":"";var currentString=text.replace(/^\s+/,"").substr(0,searchString.length).toLowerCase();
var res=!!searchString.length&&currentString==searchString?-1:0;return res},_onContainerKeydown:function(evt){var func=this._keyNavCodes[evt.keyCode];if(func){func(evt,this.focusedChild);evt.stopPropagation();evt.preventDefault();this._searchString=""}else if(evt.keyCode==keys.SPACE&&this._searchTimer&&!(evt.ctrlKey||evt.altKey||evt.metaKey)){evt.stopImmediatePropagation();evt.preventDefault();on.emit(this.domNode,"keypress",{charCode:keys.SPACE,cancelable:true,bubbles:true})}},_onContainerKeypress:function(evt){if(this.editing)return;
if(evt.charCode<32)return;if(evt.ctrlKey||evt.altKey)return;var matchedItem=null,searchString,numMatches=0,search=lang.hitch(this,function(){if(this._searchTimer)this._searchTimer.remove();this._searchString+=keyChar;var allSameLetter=/^(.)\1*$/.test(this._searchString);var searchLen=allSameLetter?1:this._searchString.length;searchString=this._searchString.substr(0,searchLen);this._searchTimer=this.defer(function(){this._searchTimer=null;this._searchString=""},this.multiCharSearchDuration);var currentItem=
this.focusedChildNode||this.focusedChild||null;if(searchLen==1||!currentItem){currentItem=this._getNextFocusableChild(currentItem,1);if(!currentItem)return}var stop=currentItem;var idx=0;do{var rc=this._keyboardSearchCompare(currentItem,searchString);if(!!rc&&numMatches++==0)matchedItem=currentItem;if(rc==-1){numMatches=-1;break}currentItem=this._getNextFocusableChild(currentItem,1)}while(currentItem!=stop)}),keyChar=String.fromCharCode(evt.charCode).toLowerCase();evt.preventDefault();evt.stopPropagation();
search();this.onKeyboardSearch(matchedItem,evt,searchString,numMatches)},_onChildBlur:function(){},_getNextFocusableChild:function(child,dir){var wrappedValue=child;do{if(!child){child=this[dir>0?"_getFirst":"_getLast"]();if(!child)break}else{if(child&&child.node){var innerNode=utils.find(".dgrid-cell",child.node,true);if(innerNode)child=innerNode}child=this._getNext(child,dir)}if(child!=null&&child!=wrappedValue)return child}while(child!=wrappedValue);return null},_getFirst:function(){var innerNode=
utils.find(".dgrid-row",this.grid.domNode,true);if(innerNode){var innerNode0=utils.find(".dgrid-cell",innerNode,true);if(innerNode0)return innerNode0}return innerNode},_getLast:function(){var innerNode=utils.find(".dgrid-row",this.grid.domNode,false);if(innerNode){var innerNode0=utils.find(".dgrid-cell",innerNode,true);if(innerNode0)return innerNode0}return null;return null},_getPrev:function(child,dir){if(child){var w=this.grid.up(child,1,true);if(w){var data=null;if(w.data)data=w.data;if(w.element)w=
w.element;var innerNode=utils.find(".dgrid-cell",w,true);if(innerNode){if(!innerNode.data)innerNode["data"]=data;return innerNode}return w}}return null},_getNext:function(child,dir){if(child){var w=this.grid.down(child,1,true);if(w){if(w.element)w=w.element;var innerNode=utils.find(".dgrid-cell",w,true);if(innerNode)return innerNode;return w}}return null}})})},"xwordpress/types":function(){define("xwordpress/types",["dojo/_base/declare"],function(declare){return declare("xwordpress.types",null,{})})},
"url:dijit/templates/TitlePane.html":'\x3cdiv\x3e\n\t\x3cdiv data-dojo-attach-event\x3d"ondijitclick:_onTitleClick, onkeydown:_onTitleKey"\n\t\t\tclass\x3d"dijitTitlePaneTitle" data-dojo-attach-point\x3d"titleBarNode" id\x3d"${id}_titleBarNode"\x3e\n\t\t\x3cdiv class\x3d"dijitTitlePaneTitleFocus" data-dojo-attach-point\x3d"focusNode"\x3e\n\t\t\t\x3cspan data-dojo-attach-point\x3d"arrowNode" class\x3d"dijitInline dijitArrowNode" role\x3d"presentation"\x3e\x3c/span\n\t\t\t\x3e\x3cspan data-dojo-attach-point\x3d"arrowNodeInner" class\x3d"dijitArrowNodeInner"\x3e\x3c/span\n\t\t\t\x3e\x3cspan data-dojo-attach-point\x3d"titleNode" class\x3d"dijitTitlePaneTextNode"\x3e\x3c/span\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\t\x3cdiv class\x3d"dijitTitlePaneContentOuter" data-dojo-attach-point\x3d"hideNode" role\x3d"presentation"\x3e\n\t\t\x3cdiv class\x3d"dijitReset" data-dojo-attach-point\x3d"wipeNode" role\x3d"presentation"\x3e\n\t\t\t\x3cdiv class\x3d"dijitTitlePaneContentInner" data-dojo-attach-point\x3d"containerNode" role\x3d"region" id\x3d"${id}_pane" aria-labelledby\x3d"${id}_titleBarNode"\x3e\n\t\t\t\t\x3c!-- nested divs because wipeIn()/wipeOut() doesn\'t work right on node w/padding etc.  Put padding on inner div. --\x3e\n\t\t\t\x3c/div\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e\n',
"dijit/form/_ButtonMixin":function(){define("dijit/form/_ButtonMixin",["dojo/_base/declare","dojo/dom","dojo/has","../registry"],function(declare,dom,has,registry){var ButtonMixin=declare("dijit.form._ButtonMixin"+(0?"_NoBidi":""),null,{label:"",type:"button",__onClick:function(e){e.stopPropagation();e.preventDefault();if(!this.disabled)this.valueNode.click(e);return false},_onClick:function(e){if(this.disabled){e.stopPropagation();e.preventDefault();return false}if(this.onClick(e)===false)e.preventDefault();
cancelled=e.defaultPrevented;if(!cancelled&&this.type=="submit"&&!(this.valueNode||this.focusNode).form)for(var node=this.domNode;node.parentNode;node=node.parentNode){var widget=registry.byNode(node);if(widget&&typeof widget._onSubmit=="function"){widget._onSubmit(e);e.preventDefault();cancelled=true;break}}return!cancelled},postCreate:function(){this.inherited(arguments);dom.setSelectable(this.focusNode,false)},onClick:function(){return true},_setLabelAttr:function(content){this._set("label",content);
var labelNode=this.containerNode||this.focusNode;labelNode.innerHTML=content}});if(0)ButtonMixin=declare("dijit.form._ButtonMixin",ButtonMixin,{_setLabelAttr:function(){this.inherited(arguments);var labelNode=this.containerNode||this.focusNode;this.applyTextDir(labelNode)}});return ButtonMixin})},"url:dijit/form/templates/Button.html":'\x3cspan class\x3d"dijit dijitReset dijitInline" role\x3d"presentation"\n\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitButtonNode"\n\t\tdata-dojo-attach-event\x3d"ondijitclick:__onClick" role\x3d"presentation"\n\t\t\x3e\x3cspan class\x3d"dijitReset dijitStretch dijitButtonContents"\n\t\t\tdata-dojo-attach-point\x3d"titleNode,focusNode"\n\t\t\trole\x3d"button" aria-labelledby\x3d"${id}_label"\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitToggleButtonIconChar"\x3e\x26#x25CF;\x3c/span\n\t\t\t\x3e\x3cspan class\x3d"dijitReset dijitInline dijitButtonText"\n\t\t\t\tid\x3d"${id}_label"\n\t\t\t\tdata-dojo-attach-point\x3d"containerNode"\n\t\t\t\x3e\x3c/span\n\t\t\x3e\x3c/span\n\t\x3e\x3c/span\n\t\x3e\x3cinput ${!nameAttrSetting} type\x3d"${type}" value\x3d"${value}" class\x3d"dijitOffScreen"\n\t\tdata-dojo-attach-event\x3d"onclick:_onClick"\n\t\ttabIndex\x3d"-1" role\x3d"presentation" data-dojo-attach-point\x3d"valueNode"\n/\x3e\x3c/span\x3e\n',
"xstyle/css":function(){define("xstyle/css",["require"],function(moduleRequire){function testElementStyle(tag,id,property){var docElement=document.documentElement;var testDiv=docElement.insertBefore(document.createElement(tag),docElement.firstChild);testDiv.id=id;var styleValue=(testDiv.currentStyle||getComputedStyle(testDiv,null))[property];docElement.removeChild(testDiv);return styleValue}return{load:function(resourceDef,require,callback,config){var url=require.toUrl(resourceDef);var cachedCss=
require.cache&&require.cache["url:"+url];if(cachedCss){if(cachedCss.xCss){var parser=cachedCss.parser;var xCss=cachedCss.xCss;cachedCss=cachedCss.cssText}moduleRequire(["./util/createStyleSheet"],function(createStyleSheet){createStyleSheet(cachedCss)});if(xCss);return checkForParser()}function checkForParser(){var parser=testElementStyle("x-parse",null,"content");if(parser&&parser!="none")require([eval(parser)],callback);else callback()}var displayStyle=testElementStyle("div",resourceDef.replace(/\//g,
"-").replace(/\..*/,"")+"-loaded","display");if(displayStyle=="none")return checkForParser();moduleRequire(["./core/load-css"],function(load){load(url,checkForParser)})}}})},"xide/factory/Views":function(){define(["xide/factory","dojo/_base/window","xide/utils","xide/types","xide/layout/TabContainer","xide/layout/ContentPane","dojox/widget/Standby"],function(factory,win,utils,types,TabContainer,ContentPane){factory.showStandBy=function(show){var splash=document.getElementById("loadingWrapper");if(show){if(splash)splash.style.display=
"inline-block"}else if(splash)splash.style.display="none";return null};factory.createTabbedSettingsView=function(CIS,parent,showAllTab){var tabContainer=new dijit.layout.TabContainer({tabStrip:true,tabPosition:"left-h",splitter:true,style:"min-width:450px;","className":"widgetBase"});parent.domNode.appendChild(tabContainer.domNode);tabContainer.startup();var widgetTabMap={};var widgetGroups=[];if(showAllTab){var dstTabContainerAll=widgetTabMap[types.WidgetGroup.All];if(dstTabContainerAll==null){dstTabContainerAll=
new ContentPane({title:"All",style:"padding:5px;",closeable:false,onShow:function(){}});widgetTabMap[types.WidgetGroup.All]=dstTabContainerAll;dstTabContainerAll.startup();tabContainer.addChild(dstTabContainerAll)}}var widgetGroup=null;for(var i=0;i<CIS.length;i++){var ci=CIS[i];var groupTitle=utils.toString(ci["group"])||null;if(groupTitle==="-1")groupTitle=null;if(groupTitle==null){widgetGroup=utils.getWidgetGroup(ci);if(widgetGroup==types.WidgetGroup.Hidden)continue;groupTitle=utils.getWidgetGroupTitle(widgetGroup)}else widgetGroup=
groupTitle;var dstTabContainer=widgetTabMap[widgetGroup];if(dstTabContainer==null){widgetGroups.push(widgetGroup);dstTabContainer=new ContentPane({title:groupTitle,preload:false,closeable:false,adjustChildsToWidth:true});widgetTabMap[widgetGroup]=dstTabContainer}}widgetGroups.sort(function(a,b){return a-b});for(var wgi=0;wgi<widgetGroups.length;wgi++){widgetGroup=widgetGroups[wgi];var container=widgetTabMap[widgetGroup];container.startup();tabContainer.addChild(container)}tabContainer["widgetTabMap"]=
widgetTabMap;return tabContainer}})},"dijit/focus":function(){define("dijit/focus",["dojo/aspect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/Evented","dojo/_base/lang","dojo/on","dojo/domReady","dojo/sniff","dojo/Stateful","dojo/_base/window","dojo/window","./a11y","./registry","./main"],function(aspect,declare,dom,domAttr,domConstruct,Evented,lang,on,domReady,has,Stateful,win,winUtils,a11y,registry,dijit){var FocusManager=declare([Stateful,Evented],{curNode:null,activeStack:[],
constructor:function(){var check=lang.hitch(this,function(node){if(dom.isDescendant(this.curNode,node))this.set("curNode",null);if(dom.isDescendant(this.prevNode,node))this.set("prevNode",null)});aspect.before(domConstruct,"empty",check);aspect.before(domConstruct,"destroy",check)},registerIframe:function(iframe){return this.registerWin(iframe.contentWindow,iframe)},registerWin:function(targetWindow,effectiveNode){var _this=this,body=targetWindow.document&&targetWindow.document.body;if(body){var mdh=
on(targetWindow.document,"mousedown, touchstart",function(evt){_this._justMouseDowned=true;setTimeout(function(){_this._justMouseDowned=false},0);if(evt&&evt.target&&evt.target.parentNode==null)return;_this._onTouchNode(effectiveNode||evt.target,"mouse")});var fih=on(body,"focusin",function(evt){if(!evt.target.tagName)return;var tag=evt.target.tagName.toLowerCase();if(tag=="#document"||tag=="body")return;if(a11y.isTabNavigable(evt.target))_this._onFocusNode(effectiveNode||evt.target);else _this._onTouchNode(effectiveNode||
evt.target)});var foh=on(body,"focusout",function(evt){_this._onBlurNode(effectiveNode||evt.target)});return{remove:function(){mdh.remove();fih.remove();foh.remove();mdh=fih=foh=null;body=null}}}},_onBlurNode:function(node){if(this._clearFocusTimer)clearTimeout(this._clearFocusTimer);this._clearFocusTimer=setTimeout(lang.hitch(this,function(){this.set("prevNode",this.curNode);this.set("curNode",null)}),0);if(this._justMouseDowned)return;if(this._clearActiveWidgetsTimer)clearTimeout(this._clearActiveWidgetsTimer);
this._clearActiveWidgetsTimer=setTimeout(lang.hitch(this,function(){delete this._clearActiveWidgetsTimer;this._setStack([])}),0)},_onTouchNode:function(node,by){if(this._clearActiveWidgetsTimer){clearTimeout(this._clearActiveWidgetsTimer);delete this._clearActiveWidgetsTimer}var newStack=[];try{while(node){var popupParent=domAttr.get(node,"dijitPopupParent");if(popupParent)node=registry.byId(popupParent).domNode;else if(node.tagName&&node.tagName.toLowerCase()=="body"){if(node===win.body())break;
node=winUtils.get(node.ownerDocument).frameElement}else{var id=node.getAttribute&&node.getAttribute("widgetId"),widget=id&&registry.byId(id);if(widget&&!(by=="mouse"&&widget.get("disabled")))newStack.unshift(id);node=node.parentNode}}}catch(e){}this._setStack(newStack,by)},_onFocusNode:function(node){if(!node)return;if(node.nodeType==9)return;if(this._clearFocusTimer){clearTimeout(this._clearFocusTimer);delete this._clearFocusTimer}this._onTouchNode(node);if(node==this.curNode)return;this.set("prevNode",
this.curNode);this.set("curNode",node)},_setStack:function(newStack,by){var oldStack=this.activeStack,lastOldIdx=oldStack.length-1,lastNewIdx=newStack.length-1;if(newStack[lastNewIdx]==oldStack[lastOldIdx])return;this.set("activeStack",newStack);var widget,i;for(i=lastOldIdx;i>=0&&oldStack[i]!=newStack[i];i--){widget=registry.byId(oldStack[i]);if(widget){widget._hasBeenBlurred=true;widget.set("focused",false);if(widget._focusManager==this)widget._onBlur(by);this.emit("widget-blur",widget,by)}}for(i++;i<=
lastNewIdx;i++){widget=registry.byId(newStack[i]);if(widget){widget.set("focused",true);if(widget._focusManager==this)widget._onFocus(by);this.emit("widget-focus",widget,by)}}},focus:function(node){if(node)try{node.focus()}catch(e){}}});var singleton=new FocusManager;domReady(function(){var handle=singleton.registerWin(winUtils.get(document));if(has("ie"))on(window,"unload",function(){if(handle){handle.remove();handle=null}})});dijit.focus=function(node){singleton.focus(node)};for(var attr in singleton)if(!/^_/.test(attr))dijit.focus[attr]=
typeof singleton[attr]=="function"?lang.hitch(singleton,attr):singleton[attr];singleton.watch(function(attr,oldVal,newVal){dijit.focus[attr]=newVal});return singleton})},"xlog/manager/LogManager":function(){define(["dojo/_base/declare","dojo/_base/lang","dojo/dom-class","xide/manager/ServerActionBase","xide/manager/BeanManager","dojox/encoding/digests/MD5","xide/types","xide/utils","xide/factory","dojo/cookie","dojo/json","dojo/store/Memory","dojo/store/Observable","xlog/views/LogView","xide/client/WebSocket",
"xide/views/ConsoleView"],function(declare,lang,domClass,ServerActionBase,BeanManager,MD5,types,utils,factory,cookie,json,Memory,Observable,LogView,WebSocket,ConsoleView){return declare("xide.manager.LogManager",[ServerActionBase,BeanManager],{serviceClass:"XIDE_Log_Service",cookiePrefix:"logging",singleton:false,serviceView:null,clients:null,beanNamespace:"logging",views:null,getViewId:function(item){var data={info:item.info};return this.beanNamespace+MD5(JSON.stringify(data),1)},loadPreferences:function(){var _cookie=
this.cookiePrefix+"_debug_settings";var settings=cookie(_cookie);settings=settings?json.parse(settings):{};return settings},savePreferences:function(settings){var _cookie=this.cookiePrefix+"_debug_settings";cookie(_cookie,json.stringify(settings))},clear:function(){this.store.setData({identifier:"id",label:"level",items:[],sort:"time"});for(var i=0;i<this.views.length;i++)this.views[i].grid.set("store",this.store)},getViewTarget:function(){var mainView=this.ctx.getApplication().mainView;return mainView.getNewAlternateTarget()},
getStore:function(){return this.store},isValid:function(){return this.store!=null},initStore:function(data){var sdata={identifier:"id",label:"level",items:data,sort:"time"};this.store=Observable(Memory({data:sdata}));return this.store},createLoggingView:function(store,where){var parent=this.getViewTarget();try{var view=utils.addWidget(LogView,{delegate:this,store:store,title:"Log",closable:true},this,parent,true);return view}catch(e){console.error(e)}},openLogView:function(){if(!this.isValid())this.initStore([]);
this.initStore([]);this.views.push(this.createLoggingView(this.store))},addLoggingMessage:function(msg){var item={id:utils.createUUID(),level:msg.level,message:msg.message,host:"",data:msg.data||{},time:msg.time||(new Date).getTime(),type:""};if(msg.data){if(msg.data.type)item.type=msg.data.type;if(msg.data.device&&msg.data.device.host)item.host=msg.data.device.host+":"+msg.data.device.port;if(msg.data.deviceMessage)item.message=item.message+":"+msg.data.deviceMessage}if(!this.isValid())this.initStore([]);
this.getStore().put(item)},onServerLogMessage:function(evt){0&&console.log("on server log message",evt);this.addLoggingMessage(evt)},init:function(){this.inherited(arguments);this.subscribe(types.EVENTS.ON_MAIN_MENU_OPEN,this.onMainMenuOpen);this.subscribe(types.EVENTS.ON_SERVER_LOG_MESSAGE,this.onServerLogMessage);this.views=[]},onReload:function(){},onMainMenuOpen:function(evt){var menu=evt["menu"];if(!menu["logMenuItem"]&&menu["name"]==types.MAIN_MENU_KEYS.VIEWS){menu["logMenuItem"]=new dijit.MenuItem({label:"Log",
onClick:lang.hitch(this,"openLogView")});menu.addChild(menu["logMenuItem"])}},ls:function(readyCB,errorCB){var thiz=this;var _cb=function(data){thiz.rawData=data;thiz.initStore(data);if(readyCB)readyCB(data)};return this.callMethodEx(null,"ls",null,_cb,true)}})})},"dojo/dnd/TimedMoveable":function(){define(["../_base/declare","./Moveable"],function(declare,Moveable){var oldOnMove=Moveable.prototype.onMove;return declare("dojo.dnd.TimedMoveable",Moveable,{timeout:40,constructor:function(node,params){if(!params)params=
{};if(params.timeout&&typeof params.timeout=="number"&&params.timeout>=0)this.timeout=params.timeout},onMoveStop:function(mover){if(mover._timer){clearTimeout(mover._timer);oldOnMove.call(this,mover,mover._leftTop)}Moveable.prototype.onMoveStop.apply(this,arguments)},onMove:function(mover,leftTop){mover._leftTop=leftTop;if(!mover._timer){var _t=this;mover._timer=setTimeout(function(){mover._timer=null;oldOnMove.call(_t,mover,mover._leftTop)},this.timeout)}}})})},"dojox/widget/Toaster":function(){define("dojox/widget/Toaster",
["dojo/_base/declare","dojo/_base/lang","dojo/_base/connect","dojo/_base/fx","dojo/dom-style","dojo/dom-class","dojo/dom-geometry","dijit/registry","dijit/_WidgetBase","dijit/_TemplatedMixin","dijit/BackgroundIframe","dojo/fx","dojo/has","dojo/_base/window","dojo/window"],function(declare,lang,connect,baseFx,domStyle,domClass,domGeometry,registry,WidgetBase,Templated,BackgroundIframe,coreFx,has,baseWindow,window){lang.getObject("dojox.widget",true);var capitalize=function(w){return w.substring(0,
1).toUpperCase()+w.substring(1)};return declare("dojox.widget.Toaster",[WidgetBase,Templated],{templateString:'\x3cdiv class\x3d"dijitToasterClip" dojoAttachPoint\x3d"clipNode"\x3e\x3cdiv class\x3d"dijitToasterContainer" dojoAttachPoint\x3d"containerNode" dojoAttachEvent\x3d"onclick:onSelect"\x3e\x3cdiv class\x3d"dijitToasterContent" dojoAttachPoint\x3d"contentNode"\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',messageTopic:"",messageTypes:{MESSAGE:"message",WARNING:"warning",ERROR:"error",FATAL:"fatal"},
defaultType:"message",positionDirection:"br-up",positionDirectionTypes:["br-up","br-left","bl-up","bl-right","tr-down","tr-left","tl-down","tl-right"],duration:2E3,slideDuration:500,separator:"\x3chr\x3e\x3c/hr\x3e",postCreate:function(){this.inherited(arguments);this.hide();baseWindow.body().appendChild(this.domNode);if(this.messageTopic)connect.subscribe(this.messageTopic,this,"_handleMessage")},_handleMessage:function(message){if(lang.isString(message))this.setContent(message);else this.setContent(message.message,
message.type,message.duration)},setContent:function(message,messageType,duration){duration=duration||this.duration;if(this.slideAnim){if(this.slideAnim.status()!="playing")this.slideAnim.stop();if(this.slideAnim.status()=="playing"||this.fadeAnim&&this.fadeAnim.status()=="playing"){setTimeout(lang.hitch(this,function(){this.setContent(message,messageType,duration)}),50);return}}for(var type in this.messageTypes)domClass.remove(this.containerNode,"dijitToaster"+capitalize(this.messageTypes[type]));
domStyle.set(this.containerNode,"opacity",1);this._setContent(message);domClass.add(this.containerNode,"dijitToaster"+capitalize(messageType||this.defaultType));this.show();var nodeSize=domGeometry.getMarginBox(this.containerNode);this._cancelHideTimer();if(this.isVisible){this._placeClip();if(!this._stickyMessage)this._setHideTimer(duration)}else{var style=this.containerNode.style;var pd=this.positionDirection;if(pd.indexOf("-up")>=0){style.left=0+"px";style.top=nodeSize.h+10+"px"}else if(pd.indexOf("-left")>=
0){style.left=nodeSize.w+10+"px";style.top=0+"px"}else if(pd.indexOf("-right")>=0){style.left=0-nodeSize.w-10+"px";style.top=0+"px"}else if(pd.indexOf("-down")>=0){style.left=0+"px";style.top=0-nodeSize.h-10+"px"}else throw new Error(this.id+".positionDirection is invalid: "+pd);this.slideAnim=coreFx.slideTo({node:this.containerNode,top:0,left:0,duration:this.slideDuration});this.connect(this.slideAnim,"onEnd",function(nodes,anim){this.fadeAnim=baseFx.fadeOut({node:this.containerNode,duration:1E3});
this.connect(this.fadeAnim,"onEnd",function(evt){this.isVisible=false;this.hide()});this._setHideTimer(duration);this.connect(this,"onSelect",function(evt){this._cancelHideTimer();this._stickyMessage=false;this.fadeAnim.play()});this.isVisible=true});this.slideAnim.play()}},_setContent:function(message){if(lang.isFunction(message)){message(this);return}if(message&&this.isVisible)message=this.contentNode.innerHTML+this.separator+message;this.contentNode.innerHTML=message},_cancelHideTimer:function(){if(this._hideTimer){clearTimeout(this._hideTimer);
this._hideTimer=null}},_setHideTimer:function(duration){this._cancelHideTimer();if(duration>0){this._cancelHideTimer();this._hideTimer=setTimeout(lang.hitch(this,function(evt){if(this.bgIframe&&this.bgIframe.iframe)this.bgIframe.iframe.style.display="none";this._hideTimer=null;this._stickyMessage=false;this.fadeAnim.play()}),duration)}else this._stickyMessage=true},_placeClip:function(){var view=window.getBox();var nodeSize=domGeometry.getMarginBox(this.containerNode);var style=this.clipNode.style;
style.height=nodeSize.h+"px";style.width=nodeSize.w+"px";var pd=this.positionDirection;if(pd.match(/^t/))style.top=view.t+"px";else if(pd.match(/^b/))style.top=view.h-nodeSize.h-2+view.t+"px";if(pd.match(/^[tb]r-/))style.left=view.w-nodeSize.w-1-view.l+"px";else if(pd.match(/^[tb]l-/))style.left=0+"px";else if(pd.match(/^[tb]c-/))style.left=Math.round((view.w-nodeSize.w-1-view.l)/2)+"px";style.clip="rect(0px, "+nodeSize.w+"px, "+nodeSize.h+"px, 0px)";if(has("ie")){if(!this.bgIframe){this.clipNode.id=
registry.getUniqueId("dojox_widget_Toaster_clipNode");this.bgIframe=new BackgroundIframe(this.clipNode)}var iframe=this.bgIframe.iframe;if(iframe)iframe.style.display="block"}},onSelect:function(e){},show:function(){domStyle.set(this.domNode,"display","block");this._placeClip();if(!this._scrollConnected)this._scrollConnected=connect.connect(window,"onscroll",this,this._placeClip)},hide:function(){domStyle.set(this.domNode,"display","none");if(this._scrollConnected){connect.disconnect(this._scrollConnected);
this._scrollConnected=false}domStyle.set(this.containerNode,"opacity",1)}})})},"dojox/layout/GridContainerLite":function(){require({cache:{"url:dojox/layout/resources/GridContainer.html":'\x3cdiv id\x3d"${id}" class\x3d"gridContainer" dojoAttachPoint\x3d"containerNode" tabIndex\x3d"0" dojoAttachEvent\x3d"onkeypress:_selectFocus"\x3e\n\t\x3cdiv dojoAttachPoint\x3d"gridContainerDiv"\x3e\n\t\t\x3ctable class\x3d"gridContainerTable" dojoAttachPoint\x3d"gridContainerTable" cellspacing\x3d"0" cellpadding\x3d"0"\x3e\n\t\t\t\x3ctbody\x3e\n\t\t\t\t\x3ctr dojoAttachPoint\x3d"gridNode" \x3e\n\t\t\t\t\t\n\t\t\t\t\x3c/tr\x3e\n\t\t\t\x3c/tbody\x3e\n\t\t\x3c/table\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e'}});
define("dojox/layout/GridContainerLite",["dojo/_base/kernel","dojo/text!./resources/GridContainer.html","dojo/_base/declare","dojo/query","dojo/_base/sniff","dojo/dom-class","dojo/dom-style","dojo/dom-geometry","dojo/dom-construct","dojo/dom-attr","dojo/_base/array","dojo/_base/lang","dojo/_base/event","dojo/keys","dojo/topic","dijit/registry","dijit/focus","dijit/_base/focus","dijit/_WidgetBase","dijit/_TemplatedMixin","dijit/layout/_LayoutWidget","dojo/_base/NodeList","dojox/mdnd/AreaManager","dojox/mdnd/DropIndicator",
"dojox/mdnd/dropMode/OverDropMode","dojox/mdnd/AutoScroll"],function(dojo,template,declare,query,has,domClass,domStyle,geom,domConstruct,domAttr,array,lang,events,keys,topic,registry,focus,baseFocus,_WidgetBase,_TemplatedMixin,_LayoutWidget,NodeList){var gcl=declare("dojox.layout.GridContainerLite",[_LayoutWidget,_TemplatedMixin],{autoRefresh:true,templateString:template,dragHandleClass:"dojoxDragHandle",nbZones:1,doLayout:true,isAutoOrganized:true,acceptTypes:[],colWidths:"",constructor:function(props,
node){this.acceptTypes=(props||{}).acceptTypes||["text"];this._disabled=true},postCreate:function(){this.inherited(arguments);this._grid=[];this._createCells();this.subscribe("/dojox/mdnd/drop","resizeChildAfterDrop");this.subscribe("/dojox/mdnd/drag/start","resizeChildAfterDragStart");this._dragManager=dojox.mdnd.areaManager();this._dragManager.autoRefresh=this.autoRefresh;this._dragManager.dragHandleClass=this.dragHandleClass;if(this.doLayout)this._border={h:has("ie")?geom.getBorderExtents(this.gridContainerTable).h:
0,w:has("ie")==6?1:0};else{domStyle.set(this.domNode,"overflowY","hidden");domStyle.set(this.gridContainerTable,"height","auto")}},startup:function(){if(this._started)return;if(this.isAutoOrganized)this._organizeChildren();else this._organizeChildrenManually();array.forEach(this.getChildren(),function(child){child.startup()});if(this._isShown())this.enableDnd();this.inherited(arguments)},resizeChildAfterDrop:function(node,targetArea,indexChild){if(this._disabled)return false;if(registry.getEnclosingWidget(targetArea.node)==
this){var widget=registry.byNode(node);if(widget.resize&&lang.isFunction(widget.resize))widget.resize();widget.set("column",node.parentNode.cellIndex);if(this.doLayout){var domNodeHeight=this._contentBox.h,divHeight=geom.getContentBox(this.gridContainerDiv).h;if(divHeight>=domNodeHeight)domStyle.set(this.gridContainerTable,"height",domNodeHeight-this._border.h+"px")}return true}return false},resizeChildAfterDragStart:function(node,sourceArea,indexChild){if(this._disabled)return false;if(registry.getEnclosingWidget(sourceArea.node)==
this){this._draggedNode=node;if(this.doLayout)geom.setMarginBox(this.gridContainerTable,{h:geom.getContentBox(this.gridContainerDiv).h-this._border.h});return true}return false},getChildren:function(){var children=new NodeList;array.forEach(this._grid,function(dropZone){query("\x3e [widgetId]",dropZone.node).map(registry.byNode).forEach(function(item){children.push(item)})});return children},_isShown:function(){if("open"in this)return this.open;else{var node=this.domNode;return node.style.display!=
"none"&&node.style.visibility!="hidden"&&!domClass.contains(node,"dijitHidden")}},layout:function(){if(this.doLayout){var contentBox=this._contentBox;geom.setMarginBox(this.gridContainerTable,{h:contentBox.h-this._border.h});geom.setContentSize(this.domNode,{w:contentBox.w-this._border.w})}array.forEach(this.getChildren(),function(widget){if(widget.resize&&lang.isFunction(widget.resize))widget.resize()})},onShow:function(){if(this._disabled)this.enableDnd()},onHide:function(){if(!this._disabled)this.disableDnd()},
_createCells:function(){if(this.nbZones===0)this.nbZones=1;var accept=this.acceptTypes.join(","),i=0;var origWidths=this.colWidths||[];var widths=[];var colWidth;var widthSum=0;for(i=0;i<this.nbZones;i++)if(widths.length<origWidths.length){widthSum+=origWidths[i];widths.push(origWidths[i])}else{if(!colWidth)colWidth=(100-widthSum)/(this.nbZones-i);widths.push(colWidth)}i=0;while(i<this.nbZones){this._grid.push({node:domConstruct.create("td",{"class":"gridContainerZone",accept:accept,id:this.id+"_dz"+
i,style:{"width":widths[i]+"%"}},this.gridNode)});i++}},_getZonesAttr:function(){return query(".gridContainerZone",this.containerNode)},enableDnd:function(){var m=this._dragManager;array.forEach(this._grid,function(dropZone){m.registerByNode(dropZone.node)});m._dropMode.updateAreas(m._areaList);this._disabled=false},disableDnd:function(){var m=this._dragManager;array.forEach(this._grid,function(dropZone){m.unregister(dropZone.node)});m._dropMode.updateAreas(m._areaList);this._disabled=true},_organizeChildren:function(){var children=
dojox.layout.GridContainerLite.superclass.getChildren.call(this);var numZones=this.nbZones,numPerZone=Math.floor(children.length/numZones),mod=children.length%numZones,i=0;for(var z=0;z<numZones;z++){for(var r=0;r<numPerZone;r++){this._insertChild(children[i],z);i++}if(mod>0){try{this._insertChild(children[i],z);i++}catch(e){console.error("Unable to insert child in GridContainer",e)}mod--}else if(numPerZone===0)break}},_organizeChildrenManually:function(){var children=dojox.layout.GridContainerLite.superclass.getChildren.call(this),
length=children.length,child;for(var i=0;i<length;i++){child=children[i];try{this._insertChild(child,child.column-1)}catch(e){console.error("Unable to insert child in GridContainer",e)}}},_insertChild:function(child,column,p){var zone=this._grid[column].node,length=zone.childNodes.length;if(typeof p==undefined||p>length)p=length;if(this._disabled){domConstruct.place(child.domNode,zone,p);domAttr.set(child.domNode,"tabIndex","0")}else if(!child.dragRestriction)this._dragManager.addDragItem(zone,child.domNode,
p,true);else{domConstruct.place(child.domNode,zone,p);domAttr.set(child.domNode,"tabIndex","0")}child.set("column",column);return child},removeChild:function(widget){if(this._disabled)this.inherited(arguments);else this._dragManager.removeDragItem(widget.domNode.parentNode,widget.domNode)},addService:function(child,column,p){kernel.deprecated("addService is deprecated.","Please use  instead.","Future");this.addChild(child,column,p)},addChild:function(child,column,p){child.domNode.id=child.id;dojox.layout.GridContainerLite.superclass.addChild.call(this,
child,0);if(column<0||column==undefined)column=0;if(p<=0)p=0;try{return this._insertChild(child,column,p)}catch(e){console.error("Unable to insert child in GridContainer",e)}return null},_setColWidthsAttr:function(value){this.colWidths=lang.isString(value)?value.split(","):lang.isArray(value)?value:[value];if(this._started)this._updateColumnsWidth()},_updateColumnsWidth:function(manager){var length=this._grid.length;var origWidths=this.colWidths||[];var widths=[];var colWidth;var widthSum=0;var i;
for(i=0;i<length;i++)if(widths.length<origWidths.length){widthSum+=origWidths[i]*1;widths.push(origWidths[i])}else{if(!colWidth){colWidth=(100-widthSum)/(this.nbZones-i);if(colWidth<0)colWidth=100/this.nbZones}widths.push(colWidth);widthSum+=colWidth*1}if(widthSum>100){var divisor=100/widthSum;for(i=0;i<widths.length;i++)widths[i]*=divisor}for(i=0;i<length;i++)this._grid[i].node.style.width=widths[i]+"%"},_selectFocus:function(event){if(this._disabled)return;var key=event.keyCode,k=keys,zone=null,
cFocus=baseFocus.getFocus(),focusNode=cFocus.node,m=this._dragManager,found,i,j,r,children,area,widget;if(focusNode==this.containerNode){area=this.gridNode.childNodes;switch(key){case k.DOWN_ARROW:case k.RIGHT_ARROW:found=false;for(i=0;i<area.length;i++){children=area[i].childNodes;for(j=0;j<children.length;j++){zone=children[j];if(zone!=null&&zone.style.display!="none"){focus.focus(zone);events.stop(event);found=true;break}}if(found)break}break;case k.UP_ARROW:case k.LEFT_ARROW:area=this.gridNode.childNodes;
found=false;for(i=area.length-1;i>=0;i--){children=area[i].childNodes;for(j=children.length;j>=0;j--){zone=children[j];if(zone!=null&&zone.style.display!="none"){focus.focus(zone);events.stop(event);found=true;break}}if(found)break}break}}else if(focusNode.parentNode.parentNode==this.gridNode){var child=key==k.UP_ARROW||key==k.LEFT_ARROW?"lastChild":"firstChild";var pos=key==k.UP_ARROW||key==k.LEFT_ARROW?"previousSibling":"nextSibling";switch(key){case k.UP_ARROW:case k.DOWN_ARROW:events.stop(event);
found=false;var focusTemp=focusNode;while(!found){children=focusTemp.parentNode.childNodes;var num=0;for(i=0;i<children.length;i++){if(children[i].style.display!="none")num++;if(num>1)break}if(num==1)return;if(focusTemp[pos]==null)zone=focusTemp.parentNode[child];else zone=focusTemp[pos];if(zone.style.display==="none")focusTemp=zone;else found=true}if(event.shiftKey){var parent=focusNode.parentNode;for(i=0;i<this.gridNode.childNodes.length;i++)if(parent==this.gridNode.childNodes[i])break;children=
this.gridNode.childNodes[i].childNodes;for(j=0;j<children.length;j++)if(zone==children[j])break;if(has("mozilla")||has("webkit"))i--;widget=registry.byNode(focusNode);if(!widget.dragRestriction){r=m.removeDragItem(parent,focusNode);this.addChild(widget,i,j);domAttr.set(focusNode,"tabIndex","0");focus.focus(focusNode)}else topic.publish("/dojox/layout/gridContainer/moveRestriction",this)}else focus.focus(zone);break;case k.RIGHT_ARROW:case k.LEFT_ARROW:events.stop(event);if(event.shiftKey){var z=0;
if(focusNode.parentNode[pos]==null){if(has("ie")&&key==k.LEFT_ARROW)z=this.gridNode.childNodes.length-1}else if(focusNode.parentNode[pos].nodeType==3)z=this.gridNode.childNodes.length-2;else{for(i=0;i<this.gridNode.childNodes.length;i++){if(focusNode.parentNode[pos]==this.gridNode.childNodes[i])break;z++}if(has("mozilla")||has("webkit"))z--}widget=registry.byNode(focusNode);var _dndType=focusNode.getAttribute("dndtype");if(_dndType==null)if(widget&&widget.dndType)_dndType=widget.dndType.split(/\s*,\s*/);
else _dndType=["text"];else _dndType=_dndType.split(/\s*,\s*/);var accept=false;for(i=0;i<this.acceptTypes.length;i++)for(j=0;j<_dndType.length;j++)if(_dndType[j]==this.acceptTypes[i]){accept=true;break}if(accept&&!widget.dragRestriction){var parentSource=focusNode.parentNode,place=0;if(k.LEFT_ARROW==key){var t=z;if(has("mozilla")||has("webkit"))t=z+1;place=this.gridNode.childNodes[t].childNodes.length}r=m.removeDragItem(parentSource,focusNode);this.addChild(widget,z,place);domAttr.set(r,"tabIndex",
"0");focus.focus(r)}else topic.publish("/dojox/layout/gridContainer/moveRestriction",this)}else{var node=focusNode.parentNode;while(zone===null){if(node[pos]!==null&&node[pos].nodeType!==3)node=node[pos];else if(pos==="previousSibling")node=node.parentNode.childNodes[node.parentNode.childNodes.length-1];else node=node.parentNode.childNodes[has("ie")?0:1];zone=node[child];if(zone&&zone.style.display=="none"){children=zone.parentNode.childNodes;var childToSelect=null;if(pos=="previousSibling")for(i=
children.length-1;i>=0;i--){if(children[i].style.display!="none"){childToSelect=children[i];break}}else for(i=0;i<children.length;i++)if(children[i].style.display!="none"){childToSelect=children[i];break}if(!childToSelect){focusNode=zone;node=focusNode.parentNode;zone=null}else zone=childToSelect}}focus.focus(zone)}break}}},destroy:function(){var m=this._dragManager;array.forEach(this._grid,function(dropZone){m.unregister(dropZone.node)});this.inherited(arguments)}});gcl.ChildWidgetProperties={column:"1",
dragRestriction:false};lang.extend(_WidgetBase,gcl.ChildWidgetProperties);return gcl})},"xide/widgets/JSONEditorWidget":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/_base/lang","dojo/on","xide/widgets/WidgetBase","xide/views/TextEditor","xide/utils"],function(array,declare,html,domClass,lang,on,WidgetBase,TextEditor,utils){return declare("xide.widgets.JSONEditorWidget",[WidgetBase],{didLoad:false,minHeight:"525px",editorHeight:"470px",jsonEditorHeight:"270px",
aceEditorHeight:"200px",newLabel:"New Entry",newEntryTemplate:"",wNew:null,initialTemplate:[],wSaveButton:null,showACEEditor:true,aceEditorOptions:null,aceEditor:null,aceNode:null,wBorderContainer:null,wJSONPane:null,wACEPane:null,wToAceButton:null,wFromAceButton:null,hasSave:true,hasNew:false,templateString:"\x3cdiv class\x3d'jsonEditorWidgetContainer' style\x3d'width: 100%;height:${!minHeight};'\x3e\x3cdiv data-dojo-attach-point\x3d'wBorderContainer' data-dojo-type\x3d'dijit.layout.BorderContainer' region\x3d'center' data-dojo-props\x3d\"design:'sidebar',liveSplitters:true\" class\x3d'' style\x3d'width:100%;height:${!minHeight};'\x3e"+
"\x3cscript type\x3d'dojo/method'\x3e"+"this._splitterClass \x3d 'dojox.layout.ToggleSplitter';"+"\x3c/script\x3e"+"\x3cdiv style\x3d'height:30px;'\x3e"+"\x3cdiv class\x3d'jsonEditorToolbar' data-dojo-attach-point\x3d'menuBar' data-dojo-type\x3d'dijit.MenuBar' data-dojo-props\x3d\"region:'top'\"\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.PopupMenuBarItem' data-dojo-attach-point\x3d'menu' style\x3d'float: left;' disabled\x3d'false'\x3e"+"\x3cspan style\x3d'color: #000000; !important'\x3eNew\x3c/span\x3e"+
"\x3cdiv data-dojo-type\x3d'dijit.Menu' style\x3d'display: none;'\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.MenuItem' data-dojo-attach-point\x3d'wNew'\x3e${!newLabel}\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'wSaveButton' class\x3d'scriptEditorReloadButton' data-dojo-type\x3d'dijit.form.ToggleButton' data-dojo-props\x3d\"iconClass:'',showLabel:true\"\x3eSave\x3c/div\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.MenuSeparator' style\x3d'float: left;width: 1px;height: 27px;background-color: #969696;margin-right: 15px;margin-left: 15px;'\x3e\x3c/div\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'wToAceButton' class\x3d'' data-dojo-type\x3d'dijit.form.ToggleButton' data-dojo-props\x3d\"iconClass:'el-icon-chevron-down',showLabel:false\"\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'wFromAceButton' class\x3d'' data-dojo-type\x3d'dijit.form.ToggleButton' data-dojo-props\x3d\"iconClass:'el-icon-chevron-up',showLabel:false\"\x3e\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'wJSONPane' style\x3d'height:50%;width: 100%;padding: 0px;overflow: hidden;margin:0px;' toggleSplitterFullSize\x3d'100%' toggleSplitterCollapsedSize\x3d'100px' toggleSplitterState\x3d'open' data-dojo-type\x3d'dijit.layout.ContentPane' splitter\x3d'true' data-dojo-props\x3d\"region:'center',splitter:true\"\x3e"+
"\x3cdiv valign\x3d'middle' class\x3d'jsonEditorWidget' data-dojo-attach-point\x3d'valueNode' style\x3d'height:inherit;'\x3e\x3c/div\x3e"+"\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'wACEPane' style\x3d'height:50%;width: 100%;padding: 0px;overflow: hidden;' data-dojo-type\x3d'dijit.layout.ContentPane' splitter\x3d'true' data-dojo-props\x3d\"region:'bottom',splitter:true\"\x3e"+"\x3cdiv valign\x3d'middle' class\x3d'jsonAceEditorWidget' data-dojo-attach-point\x3d'aceNode' style\x3d'height:100%;padding: 0px;'\x3e\x3c/div\x3e"+
"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",editor:null,getValue:function(){if(this.editor){var json=this.editor.get();var val=JSON.stringify(json);return val}return this.inherited(arguments)},onPlatformChanged:function(newPlatform){this.inherited(arguments);if(this.nativeWidget)this.nativeWidget.set("value",this.getValue())},resize:function(){this.inherited(arguments);this.wBorderContainer.resize();var thiz=this;try{if(this.showACEEditor&&!this.aceEditor)this._createACEEditor(this.aceNode)}catch(e){console.error("constructing ace editor widget failed : "+
e.message)}thiz.wJSONPane.resize();thiz.wACEPane.resize();thiz.wBorderContainer.resize()},setupNativeWidgetHandler:function(){if(this.nativeWidget){var thiz=this;dojo.connect(this.nativeWidget,"onChange",function(item){if(thiz["isSaving"]);thiz["isSaving"]=true;thiz.widgetChanged(this)})}},_createJSONEditor:function(parentNode){this.editor=new JSONEditor(parentNode)},appendNewTemplatedEntry:function(){var json=this.editor.get();if(!lang.isArray(json))lang.mixin(json,{},this.newEntryTemplate);else json.push(this.newEntryTemplate);
this.editor.set(json)},onFromAce:function(){if(this.aceEditor){var value=this.aceEditor.get("value");this.editor.set(dojo.fromJson(value))}},onToAce:function(){var json=this.editor.get();var val=JSON.stringify(json,null,2);if(this.aceEditor)this.aceEditor.set("value",val)},onSave:function(value){},setupEventHandlers:function(){var thiz=this;if(this.wNew)dojo.connect(this.wNew,"onClick",function(item){if(thiz.newEntryTemplate)thiz.appendNewTemplatedEntry(thiz.newEntryTemplate)});if(this.wSaveButton)dojo.connect(this.wSaveButton,
"onClick",function(item){var json=thiz.editor.get();thiz.setValue(JSON.stringify(json));thiz.onSave(JSON.stringify(json))});if(this.wFromAceButton)dojo.connect(this.wFromAceButton,"onClick",function(item){thiz.onFromAce()});if(this.wToAceButton)dojo.connect(this.wToAceButton,"onClick",function(item){thiz.onToAce()})},_createACEEditor:function(parentNode){var _options={region:"center",value:"",style:"margin: 0; padding: 0; position:relative;overflow: auto;height:inherit;width:inherit;",mode:"javascript",
readOnly:false,tabSize:2,softTabs:false,wordWrap:false,showPrintMargin:false,highlightActiveLine:false,fontSize:"13px",showGutter:true,className:"editor-ace ace_editor ace-codebox-dark ace_dark"};var editorPane=new TextEditor(_options,dojo.doc.createElement("div"));parentNode.appendChild(editorPane.domNode);editorPane.startup();this.aceEditor=editorPane;this.aceEditor.setOptions();var editor=this.aceEditor.getEditor();var thiz=this},startup:function(){this.inherited(arguments);if(!this.hasNew){this.wNew=
null;utils.destroyWidget(this.wNew)}if(!this.hasSave){this.wSaveButton=null;utils.destroyWidget(this.wSaveButton)}domClass.remove(this.wFromAceButton.iconNode,"dijitReset");domClass.add(this.wFromAceButton,"actionToolbarButtonElusive");domClass.remove(this.wToAceButton.iconNode,"dijitReset");domClass.add(this.wToAceButton,"actionToolbarButtonElusive");try{if(!this.editor){var pdiv=dojo.doc.createElement("div");this.valueNode.appendChild(pdiv);this._createJSONEditor(pdiv);this._createACEEditor(this.aceNode)}}catch(e){console.error("constructing json editor widget failed : "+
e.message)}var jsonStr=utils.toString(this.valueStr);if(!jsonStr||jsonStr.length==0)jsonStr="[]";this.valueStr=jsonStr;if(this.editor&&this.valueStr){if(this.valueStr!="Unset")try{var _json=dojo.fromJson(jsonStr);this.editor.set(_json)}catch(e){console.error("json editor chrash "+jsonStr);if(jsonStr.indexOf(",")!=-1){var _splitted=jsonStr.split(",");this.editor.set(_splitted)}else this.editor.set(dojo.fromJson("[]"))}else this.editor.set(this.initialTemplate);this.editor.expandAll()}this.setupEventHandlers()}})})},
"dojo/selector/_loader":function(){define(["../has","require"],function(has,require){var testDiv=document.createElement("div");has.add("dom-qsa2.1",!!testDiv.querySelectorAll);has.add("dom-qsa3",function(){try{testDiv.innerHTML="\x3cp class\x3d'TEST'\x3e\x3c/p\x3e";return testDiv.querySelectorAll(".TEST:empty").length==1}catch(e){}});var fullEngine;var acme="./acme",lite="./lite";return{load:function(id,parentRequire,loaded,config){var req=require;id=id=="default"?has("config-selectorEngine")||"css3":
id;id=id=="css2"||id=="lite"?lite:id=="css2.1"?has("dom-qsa2.1")?lite:acme:id=="css3"?has("dom-qsa3")?lite:acme:id=="acme"?acme:(req=parentRequire)&&id;if(id.charAt(id.length-1)=="?"){id=id.substring(0,id.length-1);var optionalLoad=true}if(optionalLoad&&(has("dom-compliant-qsa")||fullEngine))return loaded(fullEngine);req([id],function(engine){if(id!="./lite")fullEngine=engine;loaded(engine)})}}})},"xfile/widgets/UploadItem":function(){define("xfile/widgets/UploadItem",["dojo/_base/declare","dojo/dom-construct",
"xapp/widgets/TemplatedWidgetBase","xapp/widgets/_CSSMixin","xapp/utils","xide/types","dojo/dom-class","dojo/dom-geometry","dijit/ProgressBar","xide/factory"],function(declare,domConstruct,TemplatedWidgetBase,CSSMixin,utils,types,domClass,domGeometry,ProgressBar,factory){return declare("xfile.widgets.UploadItem",[TemplatedWidgetBase,CSSMixin],{baseClass:"fileUploadProgress logMessage",backgroundClass:"imageBackground",tag:"div",root:null,templateString:"\x3cdiv\x3e\x3cspan class\x3d'fileUploadProgressLabel'\x3eUploading ${!name}\x3c/span\x3e\x3cdiv data-dojo-attach-point\x3d'root' class\x3d'fileUploadItem'\x3e\x3c/div\x3e\x3c/div\x3e",
item:null,name:"",progressBar:null,_createProgressBar:function(){var theBar=new ProgressBar({width:400,maximum:100,duration:2E3,dir:"ltr",report2:function(percent){return string.substitute("${0} out of ${1} max chars",[this.get("value"),this.maximum])}},dojo.doc.createElement("div"));this.root.appendChild(theBar.domNode);theBar.startup();this.progressBar=theBar},bytesLoaded:null,percentValue:null,onFinish:function(data){var item=data.item;if(!item||item!=this.item)return;this.progressBar.set("value",
100)},onProgress:function(data){console.error("onProgress");var item=data.item;if(!item||item!=this.item)return;var computableEvent=data.progress;var percentage=null;if(percentage==null){percentage=Math.round(computableEvent.loaded*100/computableEvent.total);this.bytesLoaded=computableEvent.loaded}if(!this.percentValue||this.percentValue!=percentage){console.error("progress :  "+percentage);this.progressBar.set("value",percentage)}this.percentValue=percentage},startup:function(){this.inherited(arguments);
var thiz=this;this._createProgressBar();factory.subscribe(types.EVENTS.UPLOAD_PROGRESS,this.onProgress,this);factory.subscribe(types.EVENTS.UPLOAD_FINISH,this.onFinish,this)}})})},"dojox/rpc/Service":function(){define("dojox/rpc/Service",["dojo","dojox","dojo/AdapterRegistry","dojo/_base/url"],function(dojo,dojox){dojo.declare("dojox.rpc.Service",null,{constructor:function(smd,options){var url;var self=this;function processSmd(smd){smd._baseUrl=new dojo._Url(dojo.isBrowser?location.href:dojo.config.baseUrl,
url||".")+"";self._smd=smd;for(var serviceName in self._smd.services){var pieces=serviceName.split(".");var current=self;for(var i=0;i<pieces.length-1;i++)current=current[pieces[i]]||(current[pieces[i]]={});current[pieces[pieces.length-1]]=self._generateService(serviceName,self._smd.services[serviceName])}}if(smd)if(dojo.isString(smd)||smd instanceof dojo._Url){if(smd instanceof dojo._Url)url=smd+"";else url=smd;var text=dojo._getText(url);if(!text)throw new Error("Unable to load SMD from "+smd);
else processSmd(dojo.fromJson(text))}else processSmd(smd);this._options=options?options:{};this._requestId=0},_generateService:function(serviceName,method){if(this[method])throw new Error("WARNING: "+serviceName+" already exists for service. Unable to generate function");method.name=serviceName;var func=dojo.hitch(this,"_executeMethod",method);var transport=dojox.rpc.transportRegistry.match(method.transport||this._smd.transport);if(transport.getExecutor)func=transport.getExecutor(func,method,this);
var schema=method.returns||(method._schema={});var servicePath="/"+serviceName+"/";schema._service=func;func.servicePath=servicePath;func._schema=schema;func.id=dojox.rpc.Service._nextId++;return func},_getRequest:function(method,args){var smd=this._smd;var envDef=dojox.rpc.envelopeRegistry.match(method.envelope||smd.envelope||"NONE");var parameters=(method.parameters||[]).concat(smd.parameters||[]);if(envDef.namedParams){if(args.length==1&&dojo.isObject(args[0]))args=args[0];else{var data={};for(var i=
0;i<method.parameters.length;i++)if(typeof args[i]!="undefined"||!method.parameters[i].optional)data[method.parameters[i].name]=args[i];args=data}if(method.strictParameters||smd.strictParameters)for(i in args){var found=false;for(var j=0;j<parameters.length;j++)if(parameters[j].name==i)found=true;if(!found)delete args[i]}for(i=0;i<parameters.length;i++){var param=parameters[i];if(!param.optional&&param.name&&!args[param.name])if(param["default"])args[param.name]=param["default"];else if(!(param.name in
args))throw new Error("Required parameter "+param.name+" was omitted");}}else if(parameters&&parameters[0]&&parameters[0].name&&args.length==1&&dojo.isObject(args[0]))if(envDef.namedParams===false)args=dojox.rpc.toOrdered(parameters,args);else args=args[0];if(dojo.isObject(this._options))args=dojo.mixin(args,this._options);var schema=method._schema||method.returns;var request=envDef.serialize.apply(this,[smd,method,args]);request._envDef=envDef;var contentType=method.contentType||smd.contentType||
request.contentType;return dojo.mixin(request,{sync:dojox.rpc._sync,contentType:contentType,headers:method.headers||smd.headers||request.headers||{},target:request.target||dojox.rpc.getTarget(smd,method),transport:method.transport||smd.transport||request.transport,envelope:method.envelope||smd.envelope||request.envelope,timeout:method.timeout||smd.timeout,callbackParamName:method.callbackParamName||smd.callbackParamName,rpcObjectParamName:method.rpcObjectParamName||smd.rpcObjectParamName,schema:schema,
handleAs:request.handleAs||"auto",preventCache:method.preventCache||smd.preventCache,frameDoc:this._options.frameDoc||undefined})},_executeMethod:function(method){var args=[];var i;for(i=1;i<arguments.length;i++)args.push(arguments[i]);var request=this._getRequest(method,args);var deferred=dojox.rpc.transportRegistry.match(request.transport).fire(request);deferred.addBoth(function(results){return request._envDef.deserialize.call(this,results)});return deferred}});dojox.rpc.getTarget=function(smd,
method){var dest=smd._baseUrl;if(smd.target)dest=new dojo._Url(dest,smd.target)+"";if(method.target)dest=new dojo._Url(dest,method.target)+"";return dest};dojox.rpc.toOrdered=function(parameters,args){if(dojo.isArray(args))return args;var data=[];for(var i=0;i<parameters.length;i++)data.push(args[parameters[i].name]);return data};dojox.rpc.transportRegistry=new dojo.AdapterRegistry(true);dojox.rpc.envelopeRegistry=new dojo.AdapterRegistry(true);dojox.rpc.envelopeRegistry.register("URL",function(str){return str==
"URL"},{serialize:function(smd,method,data){var d=dojo.objectToQuery(data);return{data:d,transport:"POST"}},deserialize:function(results){return results},namedParams:true});dojox.rpc.envelopeRegistry.register("JSON",function(str){return str=="JSON"},{serialize:function(smd,method,data){var d=dojo.toJson(data);return{data:d,handleAs:"json",contentType:"application/json"}},deserialize:function(results){return results}});dojox.rpc.envelopeRegistry.register("PATH",function(str){return str=="PATH"},{serialize:function(smd,
method,data){var i;var target=dojox.rpc.getTarget(smd,method);if(dojo.isArray(data))for(i=0;i<data.length;i++)target+="/"+data[i];else for(i in data)target+="/"+i+"/"+data[i];return{data:"",target:target}},deserialize:function(results){return results}});dojox.rpc.transportRegistry.register("POST",function(str){return str=="POST"},{fire:function(r){r.url=r.target;r.postData=r.data;return dojo.rawXhrPost(r)}});dojox.rpc.transportRegistry.register("GET",function(str){return str=="GET"},{fire:function(r){r.url=
r.target+(r.data?"?"+(r.rpcObjectParamName?r.rpcObjectParamName+"\x3d":"")+r.data:"");return dojo.xhrGet(r)}});dojox.rpc.transportRegistry.register("JSONP",function(str){return str=="JSONP"},{fire:function(r){r.url=r.target+(r.target.indexOf("?")==-1?"?":"\x26")+(r.rpcObjectParamName?r.rpcObjectParamName+"\x3d":"")+r.data;r.callbackParamName=r.callbackParamName||"callback";return dojo.io.script.get(r)}});dojox.rpc.Service._nextId=1;dojo._contentHandlers.auto=function(xhr){var handlers=dojo._contentHandlers;
var retContentType=xhr.getResponseHeader("Content-Type");var results=!retContentType?handlers.text(xhr):retContentType.match(/\/.*json/)?handlers.json(xhr):retContentType.match(/\/javascript/)?handlers.javascript(xhr):retContentType.match(/\/xml/)?handlers.xml(xhr):handlers.text(xhr);return results};return dojox.rpc.Service})},"dgrid/tree":function(){define(["dojo/_base/declare","dojo/_base/array","dojo/_base/Deferred","dojo/query","dojo/on","dojo/aspect","./util/has-css3","./Grid","dojo/has!touch?./util/touch",
"put-selector/put"],function(declare,arrayUtil,Deferred,querySelector,on,aspect,has,Grid,touchUtil,put){function defaultRenderExpando(level,hasChildren,expanded,object){var dir=this.grid.isRTL?"right":"left",cls=".dgrid-expando-icon",node;if(hasChildren)cls+=".ui-icon.ui-icon-triangle-1-"+(expanded?"se":"e");node=put("div"+cls+"[style\x3dmargin-"+dir+": "+level*(this.indentWidth||9)+"px; float: "+dir+"]");node.innerHTML="\x26nbsp;";return node}function ontransitionend(event){var container=this,height=
this.style.height;if(height)this.style.display=height=="0px"?"none":"block";if(event){put(this,".dgrid-tree-resetting");setTimeout(function(){put(container,"!dgrid-tree-resetting")})}this.style.height=""}function tree(column){var originalRenderCell=column.renderCell||Grid.defaultRenderCell;var currentLevel,clicked;if(!column)column={};column.shouldExpand=column.shouldExpand||function(row,level,previouslyExpanded){return previouslyExpanded};aspect.after(column,"init",function(){var grid=column.grid,
colSelector=".dgrid-content .dgrid-column-"+column.id,listeners=[];grid.cleanEmptyObservers=false;if(!grid.store)throw new Error("dgrid tree column plugin requires a store to operate.");if(!column.renderExpando)column.renderExpando=defaultRenderExpando;listeners.push(grid.on(column.expandOn||".dgrid-expando-icon:click,"+colSelector+":dblclick,"+colSelector+":keydown",function(event){var row=grid.row(event);if((!grid.store.mayHaveChildren||grid.store.mayHaveChildren(row.data))&&(event.type!="keydown"||
event.keyCode==32)&&!(event.type=="dblclick"&&clicked&&clicked.count>1&&row.id==clicked.id&&event.target.className.indexOf("dgrid-expando-icon")>-1))grid.expand(row);if(event.target.className.indexOf("dgrid-expando-icon")>-1)if(clicked&&clicked.id==grid.row(event).id)clicked.count++;else clicked={id:grid.row(event).id,count:1}}));if(has("touch"))listeners.push(grid.on(touchUtil.selector(colSelector,touchUtil.dbltap),function(){grid.expand(this)}));if(!grid._expanded)grid._expanded={};listeners.push(aspect.after(grid,
"insertRow",function(rowElement){var row=this.row(rowElement),expanded=column.shouldExpand(row,currentLevel,this._expanded[row.id]);if(expanded)this.expand(rowElement,true,true);return rowElement}));listeners.push(aspect.before(grid,"removeRow",function(rowElement,justCleanup){var connected=rowElement.connected;if(connected){querySelector("\x3e.dgrid-row",connected).forEach(function(element){grid.removeRow(element,true)});if(!justCleanup)put(connected,"!")}}));if(column.collapseOnRefresh)listeners.push(aspect.after(grid,
"cleanup",function(){this._expanded={}}));grid._calcRowHeight=function(rowElement){var connected=rowElement.connected;return rowElement.offsetHeight+(connected?connected.offsetHeight:0)};grid.expand=function(target,expand,noTransition){var row=target.element?target:grid.row(target),hasTransitionend=has("transitionend"),dfd=new Deferred,promise=dfd.promise;dfd.resolve();target=row.element;target=target.className.indexOf("dgrid-expando-icon")>-1?target:querySelector(".dgrid-expando-icon",target)[0];
if(target&&target.mayHaveChildren&&(noTransition||expand!==!!this._expanded[row.id])){var expanded=expand===undefined?!this._expanded[row.id]:expand;put(target,".ui-icon-triangle-1-"+(expanded?"se":"e")+"!ui-icon-triangle-1-"+(expanded?"e":"se"));var preloadNode=target.preloadNode,rowElement=row.element,container,containerStyle,scrollHeight,options={originalQuery:this.query};if(!preloadNode){container=rowElement.connected=put("div.dgrid-tree-container");preloadNode=target.preloadNode=put(rowElement,
"+",container,"div.dgrid-preload");var query=function(options){return grid.store.getChildren(row.data,options)};if(column.allowDuplicates)options.parentId=row.id;if("level"in target)query.level=target.level;promise=promise.then(function(){return grid.renderQuery?grid.renderQuery(query,preloadNode,options):grid.renderArray(query(options),preloadNode,"level"in query?{queryLevel:query.level}:{})}).then(function(){if(grid._expanded[row.id]&&hasTransitionend){var scrollHeight=container.scrollHeight;container.style.height=
scrollHeight?scrollHeight+"px":"auto"}});if(hasTransitionend)on(container,hasTransitionend,ontransitionend);else ontransitionend.call(container)}container=rowElement.connected;container.hidden=!expanded;containerStyle=container.style;if(!hasTransitionend||noTransition){containerStyle.display=expanded?"block":"none";containerStyle.height=""}else{if(expanded){containerStyle.display="block";scrollHeight=container.scrollHeight;containerStyle.height="0px"}else{put(container,".dgrid-tree-resetting");containerStyle.height=
container.scrollHeight+"px"}setTimeout(function(){put(container,"!dgrid-tree-resetting");containerStyle.height=expanded?scrollHeight?scrollHeight+"px":"auto":"0px"})}if(expanded)this._expanded[row.id]=true;else delete this._expanded[row.id]}return promise};aspect.after(column,"destroy",function(){arrayUtil.forEach(listeners,function(l){l.remove()});delete grid.expand;delete grid._calcRowHeight})});column.renderCell=function(object,value,td,options){var grid=column.grid,level=Number(options&&options.queryLevel)+
1,mayHaveChildren=!grid.store.mayHaveChildren||grid.store.mayHaveChildren(object),parentId=options.parentId,expando,node;level=currentLevel=isNaN(level)?0:level;expando=column.renderExpando(level,mayHaveChildren,grid._expanded[(parentId?parentId+"-":"")+grid.store.getIdentity(object)],object);expando.level=level;expando.mayHaveChildren=mayHaveChildren;node=originalRenderCell.call(column,object,value,td,options);if(node&&node.nodeType){put(td,expando);put(td,node)}else td.insertBefore(expando,td.firstChild)};
return column}tree.defaultRenderExpando=defaultRenderExpando;return tree})},"dojo/string":function(){define(["./_base/kernel","./_base/lang"],function(kernel,lang){var ESCAPE_REGEXP=/[&<>'"\/]/g;var ESCAPE_MAP={"\x26":"\x26amp;","\x3c":"\x26lt;","\x3e":"\x26gt;",'"':"\x26quot;","'":"\x26#x27;","/":"\x26#x2F;"};var string={};lang.setObject("dojo.string",string);string.escape=function(str){if(!str)return"";return str.replace(ESCAPE_REGEXP,function(c){return ESCAPE_MAP[c]})};string.rep=function(str,
num){if(num<=0||!str)return"";var buf=[];for(;;){if(num&1)buf.push(str);if(!(num>>=1))break;str+=str}return buf.join("")};string.pad=function(text,size,ch,end){if(!ch)ch="0";var out=String(text),pad=string.rep(ch,Math.ceil((size-out.length)/ch.length));return end?out+pad:pad+out};string.substitute=function(template,map,transform,thisObject){thisObject=thisObject||kernel.global;transform=transform?lang.hitch(thisObject,transform):function(v){return v};return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,
function(match,key,format){var value=lang.getObject(key,false,map);if(format)value=lang.getObject(format,false,thisObject).call(thisObject,value,key);return transform(value,key).toString()})};string.trim=String.prototype.trim?lang.trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--)if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break}return str};return string})},"dojo/dnd/Manager":function(){define(["../_base/array","../_base/declare","../_base/lang","../_base/window",
"../dom-class","../Evented","../has","../keys","../on","../topic","../touch","./common","./autoscroll","./Avatar"],function(array,declare,lang,win,domClass,Evented,has,keys,on,topic,touch,dnd,autoscroll,Avatar){var Manager=declare("dojo.dnd.Manager",[Evented],{constructor:function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[]},OFFSET_X:has("touch")?0:16,OFFSET_Y:has("touch")?-64:16,overSource:function(source){if(this.avatar){this.target=
source&&source.targetState!="Disabled"?source:null;this.canDropFlag=Boolean(this.target);this.avatar.update()}topic.publish("/dnd/source/over",source)},outSource:function(source){if(this.avatar){if(this.target==source){this.target=null;this.canDropFlag=false;this.avatar.update();topic.publish("/dnd/source/over",null)}}else topic.publish("/dnd/source/over",null)},startDrag:function(source,nodes,copy){autoscroll.autoScrollStart(win.doc);this.source=source;this.nodes=nodes;this.copy=Boolean(copy);this.avatar=
this.makeAvatar();win.body().appendChild(this.avatar.node);topic.publish("/dnd/start",source,nodes,this.copy);function stopEvent(e){e.preventDefault();e.stopPropagation()}this.events=[on(win.doc,touch.move,lang.hitch(this,"onMouseMove")),on(win.doc,touch.release,lang.hitch(this,"onMouseUp")),on(win.doc,"keydown",lang.hitch(this,"onKeyDown")),on(win.doc,"keyup",lang.hitch(this,"onKeyUp")),on(win.doc,"dragstart",stopEvent),on(win.body(),"selectstart",stopEvent)];var c="dojoDnd"+(copy?"Copy":"Move");
domClass.add(win.body(),c)},canDrop:function(flag){var canDropFlag=Boolean(this.target&&flag);if(!canDropFlag)0&&console.log("cant drop");if(this.canDropFlag!=canDropFlag){this.canDropFlag=canDropFlag;this.avatar.update()}},stopDrag:function(){domClass.remove(win.body(),["dojoDndCopy","dojoDndMove"]);array.forEach(this.events,function(handle){handle.remove()});this.events=[];this.avatar.destroy();this.avatar=null;this.source=this.target=null;this.nodes=[]},makeAvatar:function(){return new Avatar(this)},
updateAvatar:function(){this.avatar.update()},onMouseMove:function(e){var a=this.avatar;if(a){autoscroll.autoScrollNodes(e);var s=a.node.style;s.left=e.pageX+this.OFFSET_X+"px";s.top=e.pageY+this.OFFSET_Y+"px";var copy=Boolean(this.source.copyState(dnd.getCopyKeyState(e)));if(this.copy!=copy)this._setCopyStatus(copy)}if(has("touch"))e.preventDefault()},onMouseUp:function(e){if(this.avatar){if(this.target&&this.canDropFlag){var copy=Boolean(this.source.copyState(dnd.getCopyKeyState(e)));topic.publish("/dnd/drop/before",
this.source,this.nodes,copy,this.target,e);topic.publish("/dnd/drop",this.source,this.nodes,copy,this.target,e)}else topic.publish("/dnd/cancel");this.stopDrag()}},onKeyDown:function(e){if(this.avatar)switch(e.keyCode){case keys.CTRL:var copy=Boolean(this.source.copyState(true));if(this.copy!=copy)this._setCopyStatus(copy);break;case keys.ESCAPE:topic.publish("/dnd/cancel");this.stopDrag();break}},onKeyUp:function(e){if(this.avatar&&e.keyCode==keys.CTRL){var copy=Boolean(this.source.copyState(false));
if(this.copy!=copy)this._setCopyStatus(copy)}},_setCopyStatus:function(copy){this.copy=copy;this.source._markDndStatus(this.copy);this.updateAvatar();domClass.replace(win.body(),"dojoDnd"+(this.copy?"Copy":"Move"),"dojoDnd"+(this.copy?"Move":"Copy"))}});dnd._manager=null;Manager.manager=dnd.manager=function(){if(!dnd._manager)dnd._manager=new Manager;return dnd._manager};return Manager})},"xfile/views/ContextMenuHandler":function(){define("xfile/views/ContextMenuHandler",["dojo/_base/declare","dojo/_base/lang",
"dojo/dom-class","xide/views/OkCancelDialog","dijit/MenuSeparator","xide/types","xide/utils","xfile/views/FileRenameDialog","xide/widgets/TemplatedWidgetBase","xfile/views/EditorPluginMixin","xfile/widgets/EditorSelector","xide/mixins/EventedMixin"],function(declare,lang,domClass,OkCancelDialog,MenuSeparator,types,utils,FileRenameDialog,TemplatedWidgetBase,EditorPluginMixin,EditorSelector,EventedMixin){return declare("xfile.views.ContextMenuHandler",[TemplatedWidgetBase,EditorPluginMixin,EventedMixin],
{delegate:null,panelDelegate:null,panelManager:null,menu:null,node:null,store:null,model:null,pMenuContextItem:null,currentInsertionNode:null,menueItemEdit:null,menueItemOpen:null,menueItemOpenAlt:null,menueItemRefresh:null,menueItemRename:null,menueItemCopy:null,menueItemPaste:null,menueItemCut:null,menueItemDelete:null,menueItemCompress:null,menueItemProperties:null,menueItemStyleSettings:null,templateString:"\x3cdiv\x3e\x3c/div\x3e",addJQueryClasses:true,pluginItems:null,buttons:null,getCurrentSelection:function(){var selection=
null;if(this.pMenuContextItem)return[this.pMenuContextItem];else if(this.panelDelegate)selection=this.panelDelegate.getSelection();return selection},onCut:function(e){var selection=this.getCurrentSelection()||this.panelDelegate.getSelection();if(selection){var struct={items:selection};this.publish(types.EVENTS.ON_CLIPBOARD_CUT,struct,this)}},onPaste:function(e){this.publish(types.EVENTS.ON_CLIPBOARD_PASTE,{owner:this},this)},onCopy:function(e){var selection=this.getCurrentSelection()||this.panelDelegate.getSelection();
if(selection){var struct={items:selection};this.publish(types.EVENTS.ON_CLIPBOARD_COPY,struct,this)}},onCompress:function(e){var activeItem=this.getCurrentSelection()||this.delegate.getSelection();if(activeItem&&this.panelManager.compressItem)this.panelManager.compressItem(activeItem)},onOpenItem:function(e){if(this.panelDelegate)this.panelDelegate.openItem(this.getCurrentSelection())},onOpenItemAlt:function(e){if(this.panelDelegate)this.panelDelegate.openItemAlternate(this.pMenuContextItem)},onEdit:function(e){},
openStaticContentEditor:function(dataItem){var editorInstances=CKEDITOR.instances;var editor=factory.createEditor(this,dataItem);var parent=dijit.byId("topTabs");parent.addChild(editor);editor.startup();parent.selectChild(editor)},_deleteDataItem:function(normalizedItem){var dstStore=this.store;var test=""+normalizedItem["id"];var thiz=this;var found=utils.deleteStoreItemById(this.store,test);if(found)sctx.getDBManager().deleteDataSource(test)},onRename:function(e){var activeItem=this.getCurrentSelection()||
this.delegate.getActiveItem();var thiz=this;if(activeItem)thiz.panelManager.onRename(activeItem)},onDelete:function(e){var activeItem=this.getCurrentSelection()||this.delegate.getActiveItem();var thiz=this;if(activeItem)this.panelDelegate.deleteItem(activeItem)},_updateDeleteButton:function(deleteButton,dataItem){deleteButton.set("disabled",true);if(deleteButton&&dataItem&&dataItem.contentType){var itemDSValue=0;try{itemDSValue=parseInt(dataItem.contentType)}catch(e){return}if(itemDSValue!=0&&itemDSValue==
xapp.types.sourceType.DataSourceItem)deleteButton.set("disabled",false)}},onRefresh:function(e){var activeItem=this.getCurrentSelection()||this.delegate.getActiveItem();if(activeItem&&activeItem.params.item){var treeData=activeItem.params.item;if(treeData){var itemDSValue=0;try{itemDSValue=parseInt(treeData.contentType)}catch(e){return}if(itemDSValue!=0&&itemDSValue==xapp.types.sourceType.DataSourceItem);}}},_updateEditButton:function(editButton,dataItem){editButton.set("disabled",false);if(editButton&&
dataItem&&dataItem.contentType){var itemDSValue=0;try{itemDSValue=parseInt(dataItem.contentType)}catch(e){return}switch(itemDSValue){case xapp.types.sourceType.Unknown:editButton.set("disabled",true)}}},_updateNewButton:function(editButton,dataItem){if(editButton&&dataItem&&dataItem.contentType){var itemDSValue=0;try{itemDSValue=parseInt(dataItem.contentType)}catch(e){return}if(itemDSValue!=0)switch(itemDSValue){case xapp.types.sourceType.StaticWebContent:case xapp.types.sourceType.DataSourceItem:editButton.set("disabled",
false);return}}editButton.set("disabled",true)},onOpenProperties:function(e){var activeItem=this.getCurrentSelection()||this.delegate.getActiveItem();if(activeItem&&this.delegate.onOpenProperties)this.delegate.onOpenProperties(activeItem)},prepareEditorsSelector:function(editButton,editors){var thiz=this;var pSubMenu=new dijit.Menu({parentMenu:this.menu,onOpen:function(){if(thiz.addJQueryClasses&&this.domNode.parentNode){var _p=this.domNode.parentNode;domClass.add(_p,"ui-menu ui-widget ui-widget-content ui-corner-all")}}});
for(var i=0;i<editors.length;i++){var editor=editors[i];var _cb=editor.onEdit;var button=this.createMenuItem(editor.name,_cb,editor.iconClass,types.OPERATION.CUSTOM,pSubMenu)}var popupMenu=new dijit.PopupMenuItem({label:"Open With",popup:pSubMenu,onHide:function(){thiz.menu.removeChild(pSubMenu)}});this.editSelector=popupMenu;this.menu.addChild(popupMenu);dojo.place(popupMenu.domNode,editButton.domNode,"after");dojo.connect(pSubMenu,"_openMyself",this,function(e){if(thiz.addJQueryClasses&&pSubMenu.domNode&&
popupMenu.domNode.parentNode){var _p=pSubMenu.domNode.parentNode;domClass.add(_p,"ui-menu ui-widget ui-widget-content ui-corner-all")}});return pSubMenu},updateOpenItem:function(){var activeItem=this.getCurrentSelection()||this.delegate.getActiveItem();if(!activeItem)return;if(lang.isArray(activeItem)&&activeItem.length>0)activeItem=activeItem[0];utils.destroyWidget(this.editSelector);this.editSelector=null;var btnEdit=this.menueItemOpen;var editors=EditorPluginMixin.getEditors(activeItem);if(btnEdit)if(editors){if(btnEdit instanceof
dijit.MenuItem)try{var newEditMenu=this.prepareEditorsSelector(btnEdit,editors)}catch(e){debugger}}else if(this.editSelector){utils.destroyWidget(this.editSelector);this.editSelector=null}},onOpen:function(){var activeItem=this.getCurrentSelection()||this.delegate.getActiveItem();var struct={menu:this.menu,item:activeItem,openWithMenuItem:null};try{this.updateOpenItem()}catch(e){debugger}if(activeItem&&activeItem.params&&activeItem.item);},createMenuItem:function(name,clickCB,iconClass,operation,
menu){var thiz=this;var _title=this.translate(name);var item=new dijit.MenuItem({label:_title,onClick:clickCB,iconClass:iconClass||null,operation:operation});var _menu=menu||this.menu;_menu.addChild(item);if(this.addJQueryClasses)domClass.add(item.domNode,"ui-menu-item");domClass.remove(item.iconNode,"dijitReset");domClass.add(item.iconNode,"actionToolbarButtonElusive");this.buttons.push(item);return item},onClose:function(node){for(var i=0;i<this.pluginItems.length;i++){this.menu.removeChild(this.pluginItems[i]);
utils.destroyWidget(this.pluginItems[i])}this.pluginItems=[]},createMenu:function(node){var thiz=this;this.menu=new dijit.Menu({targetNodeIds:[node.id],onClose:function(){thiz.onClose()}});var allowedActions=this.config.ALLOWED_ACTIONS||{"0":false,1:true,2:true,3:true,4:true,5:true,6:true,7:true,8:true,9:true,10:true,11:true,12:true};var opsInt=types.OPERATION_INT;if(allowedActions[opsInt.OPEN]){this.menueItemOpen=this.createMenuItem("open",lang.hitch(thiz,"onOpenItem")," el-icon-return-key",types.OPERATION.EDIT);
this.menueItemOpenAlt=this.createMenuItem("open_alternate",lang.hitch(thiz,"onOpenItemAlt"),"el-icon-share-alt",null)}this.menu.addChild(new MenuSeparator);if(allowedActions[opsInt.DELETE])this.menueItemDelete=this.createMenuItem("remove",lang.hitch(thiz,"onDelete"),"el-icon-remove-circle",types.OPERATION.DELETE);if(allowedActions[opsInt.RENAME])this.menueItemRename=this.createMenuItem("rename",lang.hitch(thiz,"onRename"),"el-icon-edit",types.OPERATION.RENAME);if(allowedActions[opsInt.COMPRESS])this.menueItemCompress=
this.createMenuItem("compress",lang.hitch(thiz,"onCompress"),"el-icon-briefcase",types.OPERATION.COMPRESS);this.menu.addChild(new MenuSeparator);if(allowedActions[opsInt.COPY_PASTE]){this.menueItemCopy=this.createMenuItem("copy",lang.hitch(thiz,"onCopy"),"fa-copy",types.OPERATION.COPY);this.menueItemPaste=this.createMenuItem("paste",lang.hitch(thiz,"onPaste"),"fa-paste",types.OPERATION.PASTE);this.menueItemCut=this.createMenuItem("cut",lang.hitch(thiz,"onCut"),"fa-cut",null)}this.menu.addChild(new MenuSeparator);
if(allowedActions[opsInt.INFO])this.menueItemProperties=this.createMenuItem("info",lang.hitch(thiz,"onOpenProperties"),"el-icon-info-sign",types.OPERATION.INFO);this.menu.bindDomNode(node.domNode);dojo.connect(this.menu,"_openMyself",this,function(e){try{thiz.onOpen(e);if(thiz.addJQueryClasses&&thiz.menu.domNode&&thiz.menu.domNode.parentNode){var _p=thiz.menu.domNode.parentNode;domClass.add(_p,"ui-menu ui-widget ui-widget-content ui-corner-all")}}catch(e){}})},initWithNode:function(node){this.pluginItems=
[];this.buttons=[];this._setupTranslations();this.createMenu(node)},startup:function(){this.inherited(arguments)}})})},"dojox/mobile/_css3":function(){define("dojox/mobile/_css3",["dojo/_base/window","dojo/_base/array","dojo/has"],function(win,arr,has){var cnames=[],hnames=[];var style=win.doc.createElement("div").style;var prefixes=["webkit"];has.add("css3-animations",function(global,document,element){var style=element.style;return style["animation"]!==undefined&&style["transition"]!==undefined||
arr.some(prefixes,function(p){return style[p+"Animation"]!==undefined&&style[p+"Transition"]!==undefined})});has.add("t17164",function(global,document,element){return element.style["transition"]!==undefined&&!("TransitionEvent"in window)});var css3={name:function(p,hyphen){var n=(hyphen?hnames:cnames)[p];if(!n){if(/End|Start/.test(p)){var idx=p.length-(p.match(/End/)?3:5);var s=p.substr(0,idx);var pp=this.name(s);if(pp==s)n=p.toLowerCase();else n=pp+p.substr(idx)}else if(p=="keyframes"){var pk=this.name("animation",
hyphen);if(pk=="animation")n=p;else if(hyphen)n=pk.replace(/animation/,"keyframes");else n=pk.replace(/Animation/,"Keyframes")}else{var cn=hyphen?p.replace(/-(.)/g,function(match,p1){return p1.toUpperCase()}):p;if(style[cn]!==undefined&&!has("t17164"))n=p;else{cn=cn.charAt(0).toUpperCase()+cn.slice(1);arr.some(prefixes,function(prefix){if(style[prefix+cn]!==undefined)if(hyphen)n="-"+prefix+"-"+p;else n=prefix+cn})}}if(!n)n=p;(hyphen?hnames:cnames)[p]=n}return n},add:function(styles,css3Styles){for(var p in css3Styles)if(css3Styles.hasOwnProperty(p))styles[css3.name(p)]=
css3Styles[p];return styles}};return css3})},"dgrid/Selection":function(){define(["dojo/_base/kernel","dojo/_base/declare","dojo/_base/Deferred","dojo/on","dojo/has","dojo/aspect","./List","dojo/has!touch?./util/touch","put-selector/put","dojo/query","dojo/_base/sniff"],function(kernel,declare,Deferred,on,has,aspect,List,touchUtil,put){has.add("dom-comparedocumentposition",function(global,doc,element){return!!element.compareDocumentPosition});has.add("pointer",function(global,doc,element){return"onpointerdown"in
element?"pointer":"onmspointerdown"in element?"MSPointer":false});has.add("css-user-select",function(global,doc,element){var style=element.style,prefixes=["Khtml","O","ms","Moz","Webkit"],i=prefixes.length,name="userSelect";do if(typeof style[name]!=="undefined")return name;while(i--&&(name=prefixes[i]+"UserSelect"));return false});has.add("dom-selectstart",typeof document.onselectstart!=="undefined");var ctrlEquiv=has("mac")?"metaKey":"ctrlKey",hasUserSelect=has("css-user-select"),hasPointer=has("pointer"),
hasMSPointer=hasPointer&&hasPointer.slice(0,2)==="MS",downType=hasPointer?hasPointer+(hasMSPointer?"Down":"down"):"mousedown",upType=hasPointer?hasPointer+(hasMSPointer?"Up":"up"):"mouseup";function makeUnselectable(node,unselectable){var value=node.unselectable=unselectable?"on":"",elements=node.getElementsByTagName("*"),i=elements.length;while(--i){if(elements[i].tagName==="INPUT"||elements[i].tagName==="TEXTAREA")continue;elements[i].unselectable=value}}function setSelectable(grid,selectable){var node=
grid.bodyNode,value=selectable?"text":has("ff")<21?"-moz-none":"none";if(hasUserSelect)node.style[hasUserSelect]=value;else if(has("dom-selectstart"))if(!selectable&&!grid._selectstartHandle)grid._selectstartHandle=on(node,"selectstart",function(evt){var tag=evt.target&&evt.target.tagName;if(tag!=="INPUT"&&tag!=="TEXTAREA")evt.preventDefault()});else{if(selectable&&grid._selectstartHandle){grid._selectstartHandle.remove();delete grid._selectstartHandle}}else{makeUnselectable(node,!selectable);if(!selectable&&
!grid._unselectableHandle)grid._unselectableHandle=aspect.after(grid,"renderRow",function(row){makeUnselectable(row,true);return row});else if(selectable&&grid._unselectableHandle){grid._unselectableHandle.remove();delete grid._unselectableHandle}}}return declare(null,{selectionDelegate:".dgrid-row",selectionEvents:downType+","+upType+",dgrid-cellfocusin",selectionTouchEvents:has("touch")?touchUtil.tap:null,deselectOnRefresh:true,allowSelectAll:false,selection:{},selectionMode:"extended",allowTextSelection:undefined,
_selectionTargetType:"rows",create:function(){this.selection={};return this.inherited(arguments)},postCreate:function(){this.inherited(arguments);this._initSelectionEvents();var selectionMode=this.selectionMode;this.selectionMode="";this._setSelectionMode(selectionMode)},destroy:function(){this.inherited(arguments);if(this._selectstartHandle)this._selectstartHandle.remove();if(this._unselectableHandle)this._unselectableHandle.remove();if(this._removeDeselectSignals)this._removeDeselectSignals()},
_setSelectionMode:function(mode){if(mode==this.selectionMode)return;this.clearSelection();this.selectionMode=mode;this._selectionHandlerName="_"+mode+"SelectionHandler";this._setAllowTextSelection(this.allowTextSelection)},setSelectionMode:function(mode){kernel.deprecated("setSelectionMode(...)",'use set("selectionMode", ...) instead',"dgrid 0.4");this.set("selectionMode",mode)},_setAllowTextSelection:function(allow){if(typeof allow!=="undefined")setSelectable(this,allow);else setSelectable(this,
this.selectionMode==="none");this.allowTextSelection=allow},_handleSelect:function(event,target){if(!this[this._selectionHandlerName]||!this.allowSelect(this.row(target))||event.type==="dgrid-cellfocusin"&&event.parentType==="mousedown"||event.type===upType&&target!=this._waitForMouseUp)return;this._waitForMouseUp=null;this._selectionTriggerEvent=event;if(!event.keyCode||!event.ctrlKey||event.keyCode==32)if(!event.shiftKey&&event.type===downType&&this.isSelected(target))this._waitForMouseUp=target;
else this[this._selectionHandlerName](event,target);this._selectionTriggerEvent=null},_singleSelectionHandler:function(event,target){var ctrlKey=event.keyCode?event.ctrlKey:event[ctrlEquiv];if(this._lastSelected===target)this.select(target,null,!ctrlKey||!this.isSelected(target));else{this.clearSelection();this.select(target);this._lastSelected=target}},_multipleSelectionHandler:function(event,target){var lastRow=this._lastSelected,ctrlKey=event.keyCode?event.ctrlKey:event[ctrlEquiv],value;if(!event.shiftKey){value=
ctrlKey?null:true;lastRow=null}this.select(target,lastRow,value);if(!lastRow)this._lastSelected=target},_extendedSelectionHandler:function(event,target){if(event.button===2?!this.isSelected(target):!(event.keyCode?event.ctrlKey:event[ctrlEquiv]))this.clearSelection(null,true);this._multipleSelectionHandler(event,target)},_toggleSelectionHandler:function(event,target){this.select(target,null,null)},_initSelectionEvents:function(){var grid=this,contentNode=this.contentNode,selector=this.selectionDelegate;
this._selectionEventQueues={deselect:[],select:[]};if(has("touch")&&!has("pointer")&&this.selectionTouchEvents){on(contentNode,touchUtil.selector(selector,this.selectionTouchEvents),function(evt){grid._handleSelect(evt,this);grid._ignoreMouseSelect=this});on(contentNode,on.selector(selector,this.selectionEvents),function(event){if(grid._ignoreMouseSelect!==this)grid._handleSelect(event,this);else if(event.type===upType)grid._ignoreMouseSelect=null})}else on(contentNode,on.selector(selector,this.selectionEvents),
function(event){grid._handleSelect(event,this)});if(this.addKeyHandler)this.addKeyHandler(32,function(event){grid._handleSelect(event,event.target)});if(this.allowSelectAll)this.on("keydown",function(event){if(event[ctrlEquiv]&&event.keyCode==65&&!/\bdgrid-input\b/.test(event.target.className)){event.preventDefault();grid[grid.allSelected?"clearSelection":"selectAll"]()}});if(this._setStore)aspect.after(this,"_setStore",function(){grid._updateDeselectionAspect()});this._updateDeselectionAspect()},
_updateDeselectionAspect:function(){var self=this,store=this.store,beforeSignal,afterSignal;function ifSelected(object,idToUpdate,methodName){var id=idToUpdate||object&&object[self.idProperty||"id"];if(id!=null){var row=self.row(id),selection=row&&self.selection[row.id];if(selection)self[methodName](row,null,selection)}}if(this._removeDeselectSignals)this._removeDeselectSignals();if(store&&store.notify){beforeSignal=aspect.before(store,"notify",function(object,idToUpdate){if(!object)ifSelected(object,
idToUpdate,"deselect")});afterSignal=aspect.after(store,"notify",function(object,idToUpdate){ifSelected(object,idToUpdate,"select")},true);this._removeDeselectSignals=function(){beforeSignal.remove();afterSignal.remove()}}else{beforeSignal=aspect.before(this,"removeRow",function(rowElement,justCleanup){var row;if(!justCleanup){row=this.row(rowElement);if(row&&row.id in this.selection)this.deselect(row)}});this._removeDeselectSignals=function(){beforeSignal.remove()}}},allowSelect:function(row){return true},
_fireSelectionEvent:function(type){var queue=this._selectionEventQueues[type],triggerEvent=this._selectionTriggerEvent,eventObject;eventObject={bubbles:true,grid:this};if(triggerEvent)eventObject.parentType=triggerEvent.type;eventObject[this._selectionTargetType]=queue;on.emit(this.contentNode,"dgrid-"+type,eventObject);this._selectionEventQueues[type]=[]},_fireSelectionEvents:function(){var queues=this._selectionEventQueues,type;for(type in queues)if(queues[type].length)this._fireSelectionEvent(type)},
_select:function(row,toRow,value){var selection,previousValue,element,toElement,direction;if(typeof value==="undefined")value=true;if(!row.element)row=this.row(row);if(value===false||this.allowSelect(row)){selection=this.selection;previousValue=!!selection[row.id];if(value===null)value=!previousValue;element=row.element;if(!value&&!this.allSelected)delete this.selection[row.id];else selection[row.id]=value;if(element)if(value)put(element,".dgrid-selected"+(this.addUiClasses?".ui-state-active":""));
else put(element,"!dgrid-selected!ui-state-active");if(value!==previousValue&&element)this._selectionEventQueues[(value?"":"de")+"select"].push(row);if(toRow){if(!toRow.element)toRow=this.row(toRow);if(!toRow){this._lastSelected=element;0&&console.warn("The selection range has been reset because the "+"beginning of the selection is no longer in the DOM. "+"If you are using OnDemandList, you may wish to increase "+"farOffRemoval to avoid this, but note that keeping more nodes "+"in the DOM may impact performance.");
return}toElement=toRow.element;if(toElement){direction=this._determineSelectionDirection(element,toElement);if(!direction){toElement=document.getElementById(toElement.id);direction=this._determineSelectionDirection(element,toElement)}while(row.element!=toElement&&(row=this[direction](row)))this._select(row,null,value)}}}},_determineSelectionDirection:has("dom-comparedocumentposition")?function(from,to){var result=to.compareDocumentPosition(from);if(result&1)return false;return result===2?"down":"up"}:
function(from,to){if(to.sourceIndex<1)return false;return to.sourceIndex>from.sourceIndex?"down":"up"},select:function(row,toRow,value){this._select(row,toRow,value);this._fireSelectionEvents()},deselect:function(row,toRow){this.select(row,toRow,false)},clearSelection:function(exceptId,dontResetLastSelected){this.allSelected=false;for(var id in this.selection)if(exceptId!==id)this._select(id,null,false);if(!dontResetLastSelected)this._lastSelected=null;this._fireSelectionEvents()},selectAll:function(){this.allSelected=
true;this.selection={};for(var i in this._rowIdToObject){var row=this.row(this._rowIdToObject[i]);this._select(row.id,null,true)}this._fireSelectionEvents()},isSelected:function(object){if(typeof object==="undefined"||object===null)return false;if(!object.element)object=this.row(object);return object.id in this.selection?!!this.selection[object.id]:this.allSelected&&(!object.data||this.allowSelect(object))},refresh:function(){if(this.deselectOnRefresh)this.clearSelection();this._lastSelected=null;
return this.inherited(arguments)},renderArray:function(){var grid=this,rows=this.inherited(arguments);Deferred.when(rows,function(rows){var selection=grid.selection,i,row,selected;for(i=0;i<rows.length;i++){row=grid.row(rows[i]);selected=row.id in selection?selection[row.id]:grid.allSelected;if(selected)grid._select(row,null,selected)}grid._fireSelectionEvents()});return rows}})})},"xide/manager/BeanManager":function(){define(["dojo/_base/declare","xide/utils","dojox/encoding/digests/MD5","dijit/registry"],
function(declare,utils,MD5,registry){return declare(null,{currentItem:null,beanNamespace:"beanNS",beanName:"beanName",getMetaValue:function(item,title){var meta=utils.toObject(item["user"]);if(meta)return utils.getCIInputValueByName(meta,title);return null},setCurrentItem:function(item){this.currentItem=item},getItem:function(){return this.currentItem},onItemSelected:function(evt){if(evt&&evt.item)this.currentItem=evt.item},onItemAdded:function(res){this.currentItem=null;this.reload()},onItemRemoved:function(res){this.currentItem=
null;this.reload()},reload:function(){},updateCI:function(ci,newValue,oldValue,storeRef){if(ci&&storeRef)this.updateItemMetaData(utils.toString(storeRef.scope),utils.toString(storeRef.path),"/inputs",{id:utils.toString(ci.id)},{value:newValue})},getViewTarget:function(){var mainView=this.ctx.getApplication().mainView;return mainView.getNewAlternateTarget()},getRightTopTarget:function(clear,open){var mainView=this.ctx.getApplication().mainView;return mainView.getRightTopTarget(clear,open)},getLayoutRightMain:function(clear,
open){var mainView=this.ctx.getApplication().mainView;return mainView.getLayoutRightMain(clear,open)},getRightBottomTarget:function(clear,open){var mainView=this.ctx.getApplication().mainView;return mainView.getRightBottomTarget(clear,open)},getViewId:function(item,suffix){return this.beanNamespace+MD5(utils.toString(item.scope)+utils.toString(item.path),1)+(suffix!=null?suffix:"")},getView:function(item,suffix){return registry.byId(this.getViewId(item,suffix))},getStore:function(){return this.store},
isValid:function(){return this.store!=null},initStore:function(data){this.store=new dojo.data.ItemFileWriteStore({data:data,labelAttribute:"name",hierarchical:false});this.onStoreReady();return this.store},onStoreReady:function(){},createGroup:function(scope,name,readyCB){return this.callMethodEx(null,"createGroup",[scope,name],readyCB,true)},removeGroup:function(scope,name,readyCB){return this.callMethodEx(null,"removeGroup",[scope,name],readyCB,true)},removeItem:function(scope,name,readyCB){return this.callMethodEx(null,
"removeItem",[scope,name],readyCB,true)},updateItemMetaData:function(scope,driverMetaPath,dataPath,query,value,readyCB,errorCB){return this.callMethodEx(null,"updateItemMetaData",[scope,driverMetaPath,dataPath,query,value],readyCB,false)}})})},"url:dijit/templates/Tooltip.html":'\x3cdiv class\x3d"dijitTooltip dijitTooltipLeft" id\x3d"dojoTooltip"\n\t\x3e\x3cdiv class\x3d"dijitTooltipContainer dijitTooltipContents" data-dojo-attach-point\x3d"containerNode" role\x3d\'alert\'\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d"dijitTooltipConnector" data-dojo-attach-point\x3d"connectorNode"\x3e\x3c/div\n\x3e\x3c/div\x3e\n',
"xide/manager/Context":function(){define(["dojo/_base/declare","dojo/_base/lang","dojo/_base/array","xide/manager/ContextBase","xide/manager/Application","xide/manager/SettingsManager","xfile/manager/PanelManager","xide/manager/ClipboardManager","xide/manager/PluginManager","xfile/manager/ScriptManager","xfile/manager/FileManager","xfile/manager/MountManager","xlog/manager/LogManager","xide/factory","xide/types","xide/utils","xide/mixins/EventedMixin","xide/mixins/ReloadMixin","xide/client/WebSocket",
"require"],function(declare,lang,array,ContextBase,Application,SettingsManager,PanelManager,ClipboardManager,PluginManager,ScriptManager,FileManager,MountManager,LogManager,factory,types,utils,EventedMixin,ReloadMixin,WebSocket,require){return declare("xide.manager.Context",[ContextBase,EventedMixin,ReloadMixin],{application:null,workflowManager:null,contentManager:null,templateManager:null,tooltipManager:null,dataSourceManager:null,scriptManager:null,fileManager:null,resourceManager:null,settingsManager:null,
notificationManager:null,panelManager:null,serviceObject:null,clipboardManager:null,pluginManager:null,logManager:null,config:null,managers:null,namespace:"xide.manager.",defaultNamespace:"xide.manager.",vfsMounts:null,xideServiceClient:null,widgetManager:null,onXIDEMessage:function(data){this.publish(data.event,data);if(data.event===types.EVENTS.ON_FILE_CHANGED){var path=utils.replaceAll("\\","/",data.data.path);0&&console.log("on file changed : "+path);if(path==null||path.indexOf==null){console.error("on file changed : have no path, aborting");
return}if(path.indexOf(".css")!=-1){var newEvt={path:path};this.onCSSChanged(newEvt)}var _start="client/lib/";if(path.indexOf("maqetta/app")!=-1)_start="maqetta/app/";if(path.indexOf(_start)!=-1){var libPath=path.substr(path.indexOf(_start)+_start.length,path.length);if(libPath.indexOf("xide")!=-1){path=libPath;0&&console.log("       # : "+path);var newEvt={mount:"xidejs",path:path};this.onDidChangeFileContent(newEvt)}if(libPath.indexOf("xblox/")!=-1){path=libPath;var newEvt={mount:"xblox",path:path};
this.onDidChangeFileContent(newEvt)}if(libPath.indexOf("xfile/")!=-1){path=libPath;var newEvt={mount:"xfile",path:path};this.onDidChangeFileContent(newEvt)}if(libPath.indexOf("xcf/")!=-1){path=libPath;var newEvt={mount:"cfjs",path:path};this.onDidChangeFileContent(newEvt)}if(libPath.indexOf("xcfux/")!=-1){path=libPath;var newEvt={mount:"xcfux",path:path};this.onDidChangeFileContent(newEvt)}if(libPath.indexOf("xwire/")!=-1){path=libPath;var newEvt={mount:"xwire",path:path};this.onDidChangeFileContent(newEvt)}if(libPath.indexOf("xlog/")!=
-1){path=libPath;var newEvt={mount:"xlog",path:path};this.onDidChangeFileContent(newEvt)}}_start="node_modules";if(path.indexOf(_start)!=-1){var libPath=path.substr(path.indexOf(_start)+_start.length,path.length);if(path.indexOf("xcfnode")!=-1){path=libPath;var newEvt={mount:"xcfnode",path:path.replace("/xcfnode","xcfnode")};this.onDidChangeFileContent(newEvt)}}}},onNodeServiceStoreReady:function(evt){if(this.xideServiceClient)this.xideServiceClient.destroy();this.xideServiceClient=null;var thiz=
this;var store=evt.store;this.deviceServerClient=factory.createClientWithStore(store,"XIDE Server",{delegate:{onServerResponse:function(e){thiz.onXIDEMessage(dojo.fromJson(e.data))}}})},mergeFunctions:function(target,source){for(var i in source){var o=source[i];if(lang.isFunction(source[i]))target[i]=source[i]}},onModuleReloaded:function(evt){this.inherited(arguments);var modulePath=evt.module;var newModule=evt.newModule;for(var i=0;i<this.managers.length;i++){var manager=this.managers[i];if(newModule.prototype&&
newModule.prototype.declaredClass&&newModule.prototype.declaredClass===manager.declaredClass){0&&console.log("   did merge new functions to "+manager.declaredClass);this.mergeFunctions(manager,newModule.prototype);if(manager.onReloaded)manager.onReloaded(newModule);break}}},_reloadModule:function(module,reload){require.undef(module);var thiz=this;if(reload)setTimeout(function(){require([module],function(moduleLoaded){0&&console.log("did - re-require module : "+module);moduleLoaded.modulePath=module;
thiz.publish(types.EVENTS.ON_MODULE_RELOADED,{module:module,newModule:moduleLoaded})})},500)},onCSSChanged:function(evt){if(evt["didProcess"])return;evt["didProcess"]=true;var path=evt.path;path=utils.replaceAll("//","/",path);path=path.replace("/PMaster/","");var reloadFn=window["xappOnStyleSheetChanged"];if(reloadFn)reloadFn(path);else;},onDidChangeFileContent:function(evt){if(evt["didProcess"])return;evt["didProcess"]=true;if(!this.vfsMounts)return;if(!evt.path)return;var path=evt.path;if(path.indexOf(".css")!=
-1){this.onCSSChanged(evt);return}if(path.indexOf("resources")!=-1||path.indexOf("meta")!=-1||path.indexOf(".js")==-1)return;var mount=evt.mount.replace("/","");var module=null;if(!this.vfsMounts[mount])return;module=""+evt.path;module=module.replace("./","");module=module.replace("/",".");module=module.replace(".js","");module=utils.replaceAll(".","/",module);var thiz=this;setTimeout(function(){thiz._reloadModule(module,true)},500);console.error("reload module : "+module)},getPluginManager:function(){return this.pluginManager},
getClipboardManager:function(){return this.clipboardManager},getService:function(){return this.serviceObject},getNotificationManager:function(){return this.notificationManager},getSettingsManager:function(){return this.settingsManager},getFileManager:function(){return this.fileManager},getResourceManager:function(){return this.resourceManager},getScriptManager:function(){return this.scriptManager},getDataSourceManager:function(){return this.dataSourceManager},getTooltipManager:function(){return this.tooltipManager},
getTemplateManager:function(){return this.templateManager},getMetaDataStore:function(){return this.getApplication().getMetaDataStore()},getStyleManager:function(){return this.styleManager},getDNDManager:function(){return this.dndManager},getSimulator:function(){return this.simulator},setSimulator:function(sim){this.simulator=sim},getWidgetCacheManager:function(){return this.widgetCacheManager},getWidgetManager:function(){return this.widgetManager},getContentManager:function(){return this.contentManager},
getLogManager:function(){return this.logManager},getStoreDelegate:function(){return this.storeDelegate},getWorkflowManager:function(){return this.workflowManager},getApplication:function(){return this.application},getSession:function(){return this.session},initManagers:function(){if(this.settingsManager)this.settingsManager.init();if(this.logManager)this.logManager.init();if(this.storeDelegate)this.storeDelegate.appService=this.settingsManager;if(this.scriptManager)this.scriptManager.init();if(this.settingsManager){this.settingsManager.serviceObject=
this.serviceObject;this.settingsManager.ctx=this;this.settingsManager.config=this.config;this.settingsManager.init()}if(this.storeDelegate)this.storeDelegate.serviceObject=this.serviceObject;if(this.clipboardManager)this.clipboardManager.init();if(typeof xappPluginResources!="undefined")this.pluginManager.loadPlugins(xappPluginResources)},constructManagers:function(){this.inherited(arguments);this.settingsManager=this.createManager("SettingsManager");this.scriptManager=this.createManager("ScriptManager");
this.pluginManager=this.createManager("PluginManager");this.logManager=this.createManager(LogManager)},constructor:function(config){this.config=config;if(navigator.appName=="Netscape")var language=navigator.language;else var language=navigator.browserLanguage;this.language="en";this.managers=[];this.subscribe(types.EVENTS.ON_CHANGED_CONTENT,this.onDidChangeFileContent);this.subscribe(types.EVENTS.ON_MODULE_RELOADED,this.onModuleReloaded);this.subscribe(types.EVENTS.ON_NODE_SERVICE_STORE_READY,this.onNodeServiceStoreReady);
this.initReload();this.vfsMounts={cfjs:{modulePath:"xcf"},xidejs:{modulePath:"xide"},xcfnode:{modulePath:"xcfnode"},xblox:{modulePath:"xblox"},xfile:{modulePath:"xfile"},xcfux:{modulePath:"xcfux"},xwire:{modulePath:"xwire"},xlog:{modulePath:"xlog"}}}})})},"dojo/_base/declare":function(){define(["./kernel","../has","./lang"],function(dojo,has,lang){var mix=lang.mixin,op=Object.prototype,opts=op.toString,xtor=new Function,counter=0,cname="constructor";function err(msg,cls){throw new Error("declare"+
(cls?" "+cls:"")+": "+msg);}function c3mro(bases,className){var result=[],roots=[{cls:0,refs:[]}],nameMap={},clsCount=1,l=bases.length,i=0,j,lin,base,top,proto,rec,name,refs;for(;i<l;++i){base=bases[i];if(!base)err("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?",className);else if(opts.call(base)!="[object Function]")err("mixin #"+i+" is not a callable constructor.",className);lin=base._meta?base._meta.bases:[base];top=0;for(j=lin.length-1;j>=0;--j){proto=lin[j].prototype;if(!proto.hasOwnProperty("declaredClass"))proto.declaredClass=
"uniqName_"+counter++;name=proto.declaredClass;if(!nameMap.hasOwnProperty(name)){nameMap[name]={count:0,refs:[],cls:lin[j]};++clsCount}rec=nameMap[name];if(top&&top!==rec){rec.refs.push(top);++top.count}top=rec}++top.count;roots[0].refs.push(top)}while(roots.length){top=roots.pop();result.push(top.cls);--clsCount;while(refs=top.refs,refs.length==1){top=refs[0];if(!top||--top.count){top=0;break}result.push(top.cls);--clsCount}if(top)for(i=0,l=refs.length;i<l;++i){top=refs[i];if(!--top.count)roots.push(top)}}if(clsCount)err("can't build consistent linearization",
className);base=bases[0];result[0]=base?base._meta&&base===result[result.length-base._meta.bases.length]?base._meta.bases.length:1:0;return result}function inherited(args,a,f){var name,chains,bases,caller,meta,base,proto,opf,pos,cache=this._inherited=this._inherited||{};if(typeof args=="string"){name=args;args=a;a=f}f=0;caller=args.callee;name=name||caller.nom;if(!name)err("can't deduce a name to call inherited()",this.declaredClass);meta=this.constructor._meta;bases=meta.bases;pos=cache.p;if(name!=
cname){if(cache.c!==caller){pos=0;base=bases[0];meta=base._meta;if(meta.hidden[name]!==caller){chains=meta.chains;if(chains&&typeof chains[name]=="string")err("calling chained method with inherited: "+name,this.declaredClass);do{meta=base._meta;proto=base.prototype;if(meta&&(proto[name]===caller&&proto.hasOwnProperty(name)||meta.hidden[name]===caller))break}while(base=bases[++pos]);pos=base?pos:-1}}base=bases[++pos];if(base){proto=base.prototype;if(base._meta&&proto.hasOwnProperty(name))f=proto[name];
else{opf=op[name];do{proto=base.prototype;f=proto[name];if(f&&(base._meta?proto.hasOwnProperty(name):f!==opf))break}while(base=bases[++pos])}}f=base&&f||op[name]}else{if(cache.c!==caller){pos=0;meta=bases[0]._meta;if(meta&&meta.ctor!==caller){chains=meta.chains;if(!chains||chains.constructor!=="manual")err("calling chained constructor with inherited",this.declaredClass);while(base=bases[++pos]){meta=base._meta;if(meta&&meta.ctor===caller)break}pos=base?pos:-1}}while(base=bases[++pos]){meta=base._meta;
f=meta?meta.ctor:base;if(f)break}f=base&&f}cache.c=f;cache.p=pos;if(f)return a===true?f:f.apply(this,a||args)}function getInherited(name,args){if(typeof name=="string")return this.__inherited(name,args,true);return this.__inherited(name,true)}function inherited__debug(args,a1,a2){var f=this.getInherited(args,a1);if(f)return f.apply(this,a2||a1||args)}var inheritedImpl=dojo.config.isDebug?inherited__debug:inherited;function isInstanceOf(cls){var bases=this.constructor._meta.bases;for(var i=0,l=bases.length;i<
l;++i)if(bases[i]===cls)return true;return this instanceof cls}function mixOwn(target,source){for(var name in source)if(name!=cname&&source.hasOwnProperty(name))target[name]=source[name];if(has("bug-for-in-skips-shadowed"))for(var extraNames=lang._extraNames,i=extraNames.length;i;){name=extraNames[--i];if(name!=cname&&source.hasOwnProperty(name))target[name]=source[name]}}function safeMixin(target,source){var name,t;for(name in source){t=source[name];if((t!==op[name]||!(name in op))&&name!=cname){if(opts.call(t)==
"[object Function]")t.nom=name;target[name]=t}}if(has("bug-for-in-skips-shadowed"))for(var extraNames=lang._extraNames,i=extraNames.length;i;){name=extraNames[--i];t=source[name];if((t!==op[name]||!(name in op))&&name!=cname){if(opts.call(t)=="[object Function]")t.nom=name;target[name]=t}}return target}function extend(source){declare.safeMixin(this.prototype,source);return this}function createSubclass(mixins,props){return declare([this].concat(mixins),props||{})}function chainedConstructor(bases,
ctorSpecial){return function(){var a=arguments,args=a,a0=a[0],f,i,m,l=bases.length,preArgs;if(!(this instanceof a.callee))return applyNew(a);if(ctorSpecial&&(a0&&a0.preamble||this.preamble)){preArgs=new Array(bases.length);preArgs[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f)a=f.apply(this,a)||a}f=bases[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f)a=f.apply(this,a)||a;if(++i==l)break;preArgs[i]=a}}for(i=l-1;i>=0;--i){f=bases[i];m=f._meta;f=m?m.ctor:f;if(f)f.apply(this,preArgs?
preArgs[i]:a)}f=this.postscript;if(f)f.apply(this,args)}}function singleConstructor(ctor,ctorSpecial){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee))return applyNew(a);if(ctorSpecial){if(a0){f=a0.preamble;if(f)t=f.apply(this,t)||t}f=this.preamble;if(f)f.apply(this,t)}if(ctor)ctor.apply(this,a);f=this.postscript;if(f)f.apply(this,a)}}function simpleConstructor(bases){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee))return applyNew(a);for(;f=bases[i];++i){m=
f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break}}f=this.postscript;if(f)f.apply(this,a)}}function chain(name,bases,reversed){return function(){var b,m,f,i=0,step=1;if(reversed){i=bases.length-1;step=-1}for(;b=bases[i];i+=step){m=b._meta;f=(m?m.hidden:b.prototype)[name];if(f)f.apply(this,arguments)}}}function forceNew(ctor){xtor.prototype=ctor.prototype;var t=new xtor;xtor.prototype=null;return t}function applyNew(args){var ctor=args.callee,t=forceNew(ctor);ctor.apply(t,args);return t}function declare(className,
superclass,props){if(typeof className!="string"){props=superclass;superclass=className;className=""}props=props||{};var proto,i,t,ctor,name,bases,chains,mixins=1,parents=superclass;if(opts.call(superclass)=="[object Array]"){bases=c3mro(superclass,className);t=bases[0];mixins=bases.length-t;superclass=bases[mixins]}else{bases=[0];if(superclass)if(opts.call(superclass)=="[object Function]"){t=superclass._meta;bases=bases.concat(t?t.bases:superclass)}else err("base class is not a callable constructor.",
className);else if(superclass!==null)err("unknown base class. Did you use dojo.require to pull it in?",className)}if(superclass)for(i=mixins-1;;--i){proto=forceNew(superclass);if(!i)break;t=bases[i];(t._meta?mixOwn:mix)(proto,t.prototype);ctor=new Function;ctor.superclass=superclass;ctor.prototype=proto;superclass=proto.constructor=ctor}else proto={};declare.safeMixin(proto,props);t=props.constructor;if(t!==op.constructor){t.nom=cname;proto.constructor=t}for(i=mixins-1;i;--i){t=bases[i]._meta;if(t&&
t.chains)chains=mix(chains||{},t.chains)}if(proto["-chains-"])chains=mix(chains||{},proto["-chains-"]);t=!chains||!chains.hasOwnProperty(cname);bases[0]=ctor=chains&&chains.constructor==="manual"?simpleConstructor(bases):bases.length==1?singleConstructor(props.constructor,t):chainedConstructor(bases,t);ctor._meta={bases:bases,hidden:props,chains:chains,parents:parents,ctor:props.constructor};ctor.superclass=superclass&&superclass.prototype;ctor.extend=extend;ctor.createSubclass=createSubclass;ctor.prototype=
proto;proto.constructor=ctor;proto.getInherited=getInherited;proto.isInstanceOf=isInstanceOf;proto.inherited=inheritedImpl;proto.__inherited=inherited;if(className){proto.declaredClass=className;lang.setObject(className,ctor)}if(chains)for(name in chains)if(proto[name]&&typeof chains[name]=="string"&&name!=cname){t=proto[name]=chain(name,bases,chains[name]==="after");t.nom=name}return ctor}dojo.safeMixin=declare.safeMixin=safeMixin;dojo.declare=declare;return declare})},"url:dijit/templates/TooltipDialog.html":'\x3cdiv role\x3d"alertdialog" tabIndex\x3d"-1"\x3e\n\t\x3cdiv class\x3d"dijitTooltipContainer" role\x3d"presentation"\x3e\n\t\t\x3cdiv class\x3d"dijitTooltipContents dijitTooltipFocusNode" data-dojo-attach-point\x3d"containerNode"\x3e\x3c/div\x3e\n\t\x3c/div\x3e\n\t\x3cdiv class\x3d"dijitTooltipConnector" role\x3d"presentation" data-dojo-attach-point\x3d"connectorNode"\x3e\x3c/div\x3e\n\x3c/div\x3e\n',
"dijit/tree/ForestStoreModel":function(){define("dijit/tree/ForestStoreModel",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","./TreeStoreModel"],function(array,declare,kernel,lang,TreeStoreModel){return declare("dijit.tree.ForestStoreModel",TreeStoreModel,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(params){this.root={store:this,root:true,id:params.rootId,label:params.rootLabel,children:params.rootChildren}},mayHaveChildren:function(item){return item===
this.root||this.inherited(arguments)},getChildren:function(parentItem,callback,onError){if(parentItem===this.root)if(this.root.children)callback(this.root.children);else this.store.fetch({query:this.query,onComplete:lang.hitch(this,function(items){this.root.children=items;callback(items)}),onError:onError});else this.inherited(arguments)},isItem:function(something){return something===this.root?true:this.inherited(arguments)},fetchItemByIdentity:function(keywordArgs){if(keywordArgs.identity==this.root.id){var scope=
keywordArgs.scope||kernel.global;if(keywordArgs.onItem)keywordArgs.onItem.call(scope,this.root)}else this.inherited(arguments)},getIdentity:function(item){return item===this.root?this.root.id:this.inherited(arguments)},getLabel:function(item){return item===this.root?this.root.label:this.inherited(arguments)},newItem:function(args,parent,insertIndex){if(parent===this.root){this.onNewRootItem(args);return this.store.newItem(args)}else return this.inherited(arguments)},onNewRootItem:function(){},pasteItem:function(childItem,
oldParentItem,newParentItem,bCopy,insertIndex){if(oldParentItem===this.root)if(!bCopy)this.onLeaveRoot(childItem);this.inherited(arguments,[childItem,oldParentItem===this.root?null:oldParentItem,newParentItem===this.root?null:newParentItem,bCopy,insertIndex]);if(newParentItem===this.root)this.onAddToRoot(childItem)},onAddToRoot:function(item){0&&console.log(this,": item ",item," added to root")},onLeaveRoot:function(item){0&&console.log(this,": item ",item," removed from root")},_requeryTop:function(){var oldChildren=
this.root.children||[];this.store.fetch({query:this.query,onComplete:lang.hitch(this,function(newChildren){this.root.children=newChildren;if(oldChildren.length!=newChildren.length||array.some(oldChildren,function(item,idx){return newChildren[idx]!=item}))this.onChildrenChange(this.root,newChildren)})})},onNewItem:function(item,parentInfo){this._requeryTop();this.inherited(arguments)},onDeleteItem:function(item){if(array.indexOf(this.root.children,item)!=-1)this._requeryTop();this.inherited(arguments)},
onSetItem:function(item,attribute,oldValue,newValue){this._requeryTop();this.inherited(arguments)}})})},"xide/views/GridKeyboardHandler":function(){define(["dojo/_base/declare","dojo/keys","dojo/has"],function(declare,keys,has){return declare("xide.views.GridKeyboardHandler",null,{ctlrKeyDown:false,onKeyUp:function(evt){switch(evt.keyCode){case keys.META:case keys.SHIFT:case keys.ALT:case keys.CTRL:this.ctlrKeyDown=false;break}},onKey:function(evt){var thiz=this;if(evt.type&&evt.type=="keyup")return this.onKeyUp(evt);
var vKey=86,cKey=67,cutKey=88;if(evt.keyCode==keys.ENTER)if(this.ctlrKeyDown){if(this.openItemAlternate){evt.preventDefault();this.openItemAlternate(null)}}else{if(evt.target.className.indexOf("dijitInputInner")==-1&&this.onEnter){this.onEnter(evt);evt.preventDefault()}}else switch(evt.keyCode){case keys.META:case keys.ALT:case keys.SHIFT:case keys.CTRL:this.ctlrKeyDown=true;setTimeout(function(){thiz.ctlrKeyDown=false},2E3);break;case keys.SPACE:if(this.onPreview){evt.preventDefault();this.onPreview()}break;
case keys.RIGHT_ARROW:if(evt.originalTarget&&evt.originalTarget.className.indexOf("InputInner")!=-1)return;if(this.onRight){evt.preventDefault();this.onRight(evt)}break;case keys.LEFT_ARROW:if(evt.originalTarget&&evt.originalTarget.className.indexOf("InputInner")!=-1)return;if(this.onLeft){evt.preventDefault();this.onLeft(evt)}break;case keys.F1:if(this.openSourceMenu){evt.preventDefault();this.openSourceMenu()}break;case keys.F2:if(this.onRename){evt.preventDefault();this.onRename()}break;case keys.TAB:if(this.onTab){this.onTab(evt);
evt.preventDefault()}break;case keys.BACKSPACE:var doBack=true;if(has("chrome")&&this.ctlrKeyDown==false)doBack=false;if(doBack)if(this.onBack){evt.preventDefault();this.onBack()}break;case keys.DELETE:if(this.deleteItem){evt.preventDefault();this.deleteItem()}break;case cKey:if(this.ctlrKeyDown&&this.onClipBoardCopy){evt.preventDefault();this.onClipBoardCopy()}break;case vKey:if(this.ctlrKeyDown&&this.onClipBoardPaste){evt.preventDefault();this.onClipBoardPaste()}break;case cutKey:if(this.ctlrKeyDown&&
this.onClipBoardCut){evt.preventDefault();this.onClipBoardCut()}break}}})})},"dojo/dom-attr":function(){define(["exports","./sniff","./_base/lang","./dom","./dom-style","./dom-prop"],function(exports,has,lang,dom,style,prop){var forcePropNames={innerHTML:1,textContent:1,className:1,htmlFor:has("ie"),value:1},attrNames={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"};function _hasAttr(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified}
exports.has=function hasAttr(node,name){var lc=name.toLowerCase();return forcePropNames[prop.names[lc]||name]||_hasAttr(dom.byId(node),attrNames[lc]||name)};exports.get=function getAttr(node,name){node=dom.byId(node);var lc=name.toLowerCase(),propName=prop.names[lc]||name,forceProp=forcePropNames[propName],value=node[propName];if(forceProp&&typeof value!="undefined")return value;if(propName=="textContent")return prop.get(node,propName);if(propName!="href"&&(typeof value=="boolean"||lang.isFunction(value)))return value;
var attrName=attrNames[lc]||name;return _hasAttr(node,attrName)?node.getAttribute(attrName):null};exports.set=function setAttr(node,name,value){node=dom.byId(node);if(arguments.length==2){for(var x in name)exports.set(node,x,name[x]);return node}var lc=name.toLowerCase(),propName=prop.names[lc]||name,forceProp=forcePropNames[propName];if(propName=="style"&&typeof value!="string"){style.set(node,value);return node}if(forceProp||typeof value=="boolean"||lang.isFunction(value))return prop.set(node,name,
value);node.setAttribute(attrNames[lc]||name,value);return node};exports.remove=function removeAttr(node,name){dom.byId(node).removeAttribute(attrNames[name.toLowerCase()]||name)};exports.getNodeProp=function getNodeProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),propName=prop.names[lc]||name;if(propName in node&&propName!="href")return node[propName];var attrName=attrNames[lc]||name;return _hasAttr(node,attrName)?node.getAttribute(attrName):null}})},"xfile/widgets/Toaster":function(){define("xfile/widgets/Toaster",
["dojo/_base/declare","dojo/_base/lang","dojo/_base/connect","dojo/_base/fx","dojo/dom-style","dojo/dom-class","dojo/dom-geometry","dijit/registry","dijit/_WidgetBase","dijit/_TemplatedMixin","dijit/BackgroundIframe","dojo/fx","dojo/has","dojo/_base/window","dojo/window","xfile/widgets/UploadItem"],function(declare,lang,connect,baseFx,domStyle,domClass,domGeometry,registry,WidgetBase,Templated,BackgroundIframe,coreFx,has,baseWindow,window,UploadItem){lang.getObject("dojox.widget",true);var capitalize=
function(w){return w.substring(0,1).toUpperCase()+w.substring(1)};return declare("xfile.widgets.Toaster",[WidgetBase,Templated],{templateString:'\x3cdiv class\x3d"dijitToasterClip" dojoAttachPoint\x3d"clipNode"\x3e\x3cdiv class\x3d"dijitToasterContainer" dojoAttachPoint\x3d"containerNode" dojoAttachEvent\x3d"onclick:onSelect"\x3e\x3cdiv class\x3d"dijitToasterContent" dojoAttachPoint\x3d"contentNode"\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',messageTopic:"",messageTypes:{MESSAGE:"message",WARNING:"warning",
ERROR:"error",FATAL:"fatal",UPLOAD_BEGIN:"uploadBegin"},defaultType:"message",positionDirection:"br-up",positionDirectionTypes:["br-up","br-left","bl-up","bl-right","tr-down","tr-left","tl-down","tl-right"],duration:2E3,slideDuration:500,separator:"\x3chr/\x3e",postCreate:function(){this.inherited(arguments);this.hide();baseWindow.body().appendChild(this.domNode);if(this.messageTopic)connect.subscribe(this.messageTopic,this,"_handleMessage")},_createProgressItem:function(item){var uploadItem=new UploadItem({item:item,
name:item.name},dojo.doc.createElement("div"));this.contentNode.appendChild(uploadItem.domNode);uploadItem.startup();return uploadItem},updateSize:function(){},getItemsHeight:function(){if(!this.items)this.items=[];var h=0;for(var i=0;i<this.items.length;i++)h+=this.items[i].lastH;return h},items:null,_handleMessage:function(message){if(message.type=="uploadBegin"){if(!this.items)this.items=[];this.setContent("Uploading "+message.message.item.name,"message",0);var item=this._createProgressItem(message.message.item);
this.items.push(item);var itemSize=domGeometry.getMarginBox(item.domNode);var nodeSize=domGeometry.getMarginBox(this.containerNode);var domSize=domGeometry.getMarginBox(this.domNode);item.lastH=itemSize.h+10;nodeSize.h+=itemSize.h;domSize.t-=itemSize.h;domSize.t-=10;var style=this.clipNode.style;domStyle.set(this.containerNode,{height:nodeSize.h+"px"});domStyle.set(this.domNode,{height:nodeSize.h+"px",top:domSize.t+"px"});this._placeClip()}else if(lang.isString(message))this.setContent(message);else this.setContent(message.message,
message.type,message.duration)},setContent:function(message,messageType,duration){duration=duration||this.duration;if(this.slideAnim){if(this.slideAnim.status()!="playing")this.slideAnim.stop();if(this.slideAnim.status()=="playing"||this.fadeAnim&&this.fadeAnim.status()=="playing"){setTimeout(lang.hitch(this,function(){this.setContent(message,messageType,duration)}),50);return}}for(var type in this.messageTypes)domClass.remove(this.containerNode,"dijitToaster"+capitalize(this.messageTypes[type]));
domStyle.set(this.containerNode,"opacity",1);this._setContent(message);domClass.add(this.containerNode,"dijitToaster"+capitalize(messageType||this.defaultType));domClass.add(this.containerNode,"ui-corner-all");domClass.remove(this.containerNode,"ui-state-highlight");domClass.remove(this.containerNode,"ui-state-error");if(messageType=="message")domClass.add(this.containerNode,"ui-state-highlight");if(messageType=="error")domClass.add(this.containerNode,"ui-state-error");this.show();var nodeSize=domGeometry.getMarginBox(this.containerNode);
this._cancelHideTimer();if(this.isVisible){this._placeClip();if(!this._stickyMessage)this._setHideTimer(duration)}else{var style=this.containerNode.style;var pd=this.positionDirection;if(pd.indexOf("-up")>=0){style.left=0+"px";style.top=nodeSize.h+10+"px"}else if(pd.indexOf("-left")>=0){style.left=nodeSize.w+10+"px";style.top=0+"px"}else if(pd.indexOf("-right")>=0){style.left=0-nodeSize.w-10+"px";style.top=0+"px"}else if(pd.indexOf("-down")>=0){style.left=0+"px";style.top=0-nodeSize.h-10+"px"}else throw new Error(this.id+
".positionDirection is invalid: "+pd);this.slideAnim=coreFx.slideTo({node:this.containerNode,top:0,left:0,duration:this.slideDuration});this.connect(this.slideAnim,"onEnd",function(nodes,anim){this.fadeAnim=baseFx.fadeOut({node:this.containerNode,duration:1E3});this.connect(this.fadeAnim,"onEnd",function(evt){this.isVisible=false;this.hide()});this._setHideTimer(duration);this.connect(this,"onSelect",function(evt){this._cancelHideTimer();this._stickyMessage=false;this.fadeAnim.play()});this.isVisible=
true});this.slideAnim.play()}},_setContent:function(message){if(lang.isFunction(message)){message(this);return}if(message&&this.isVisible)message=this.contentNode.innerHTML+this.separator+message;this.contentNode.innerHTML=message},_cancelHideTimer:function(){if(this._hideTimer){clearTimeout(this._hideTimer);this._hideTimer=null}},_setHideTimer:function(duration){this._cancelHideTimer();if(duration>0){this._cancelHideTimer();this._hideTimer=setTimeout(lang.hitch(this,function(evt){if(this.bgIframe&&
this.bgIframe.iframe)this.bgIframe.iframe.style.display="none";this._hideTimer=null;this._stickyMessage=false;this.fadeAnim.play()}),duration)}else this._stickyMessage=true},_placeClip:function(){var view=window.getBox();var nodeSize=domGeometry.getMarginBox(this.containerNode);var style=this.clipNode.style;style.height=nodeSize.h+"px";style.width=nodeSize.w+"px";var pd=this.positionDirection;if(pd.match(/^t/))style.top=view.t+"px";else if(pd.match(/^b/))style.top=view.h-nodeSize.h-2+view.t+"px";
if(pd.match(/^[tb]r-/))style.left=view.w-nodeSize.w-1-view.l+"px";else if(pd.match(/^[tb]l-/))style.left=0+"px";else if(pd.match(/^[tb]c-/))style.left=Math.round((view.w-nodeSize.w-1-view.l)/2)+"px";style.clip="rect(0px, "+nodeSize.w+"px, "+nodeSize.h+"px, 0px)";if(has("ie")){if(!this.bgIframe){this.clipNode.id=registry.getUniqueId("dojox_widget_Toaster_clipNode");this.bgIframe=new BackgroundIframe(this.clipNode)}var iframe=this.bgIframe.iframe;if(iframe)iframe.style.display="block"}},onSelect:function(e){},
show:function(){domStyle.set(this.domNode,"display","block");this._placeClip();if(!this._scrollConnected)this._scrollConnected=connect.connect(window,"onscroll",this,this._placeClip)},hide:function(){domStyle.set(this.domNode,"display","none");if(this._scrollConnected){connect.disconnect(this._scrollConnected);this._scrollConnected=false}domStyle.set(this.containerNode,"opacity",1)}})})},"xide/layout/BorderContainer":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on",
"dojo/_base/lang","dijit/layout/BorderContainer","dojo/dom-class","xide/views/ToggleSplitter","dojo/dom-geometry","dojo/dom-style"],function(array,declare,html,on,lang,BorderContainer,domClass,ToggleSplitter,domGeometry,domStyle){return dojo.declare("xide.layout.BorderContainer",[BorderContainer],{splitter:false,cssClass:"borderContainer",persist:false,_splitterClass:"xide.views.ToggleSplitter",cookieName:null,postMixInProperties:function(){this.inherited(arguments)},buildRendering:function(){this.inherited(arguments);
domClass.add(this.domNode,this.cssClass)},onChangeToggleSplitterState:function(splitter,state){if(!this.persistent)return;var splitterData=[];if(this.layoutLeft&&this.layoutLeft._splitterWidget)splitterData.push({region:"left",state:this.layoutLeft._splitterWidget.state});if(this.layoutRight&&this.layoutRight._splitterWidget)splitterData.push({region:"right",state:this.layoutRight._splitterWidget.state});if(this.layoutBottom&&this.layoutBottom._splitterWidget)splitterData.push({region:"bottom",state:this.layoutBottom._splitterWidget.state});
this.ctx.getSettingsManager().write(null,".",null,{id:"splitter",data:JSON.stringify(splitterData),name:"Splitter States"},true,null)},setupToggleSplitterListeners:function(){if(this.layoutLeft&&this.layoutLeft._splitterWidget)this.layoutLeft._splitterWidget.delegate=this;if(this.layoutRight&&this.layoutRight._splitterWidget)this.layoutRight._splitterWidget.delegate=this;if(this.layoutBottom&&this.layoutBottom._splitterWidget)this.layoutBottom._splitterWidget.delegate=this}})})},"cbtree/model/TreeStoreModel":function(){define("cbtree/model/TreeStoreModel",
["dojo/_base/declare","dojo/_base/lang","dojo/when","./_base/CheckedStoreModel"],function(declare,lang,when,CheckedStoreModel){var TreeStoreModel=declare([CheckedStoreModel],{getChildren:function(parent,onComplete,onError){this._getChildren(parent,function(parent,id){return this.store.getChildren(parent,this.options)},onComplete,onError)},toString:function(){return"[object TreeStoreModel]"}});return TreeStoreModel})},"dojox/data/ServiceStore":function(){define("dojox/data/ServiceStore",["dojo/_base/declare",
"dojo/_base/lang","dojo/_base/array"],function(declare,lang,array){return declare("dojox.data.ServiceStore",lang.getObject("dojox.data.ClientFilter",0)||null,{service:null,constructor:function(options){this.byId=this.fetchItemByIdentity;this._index={};if(options)lang.mixin(this,options);this.idAttribute=options&&options.idAttribute||this.schema&&this.schema._idAttr},schema:null,idAttribute:"id",labelAttribute:"label",syncMode:false,estimateCountFactor:1,getSchema:function(){return this.schema},loadLazyValues:true,
getValue:function(item,property,defaultValue){var value=item[property];return value||(property in item?value:item._loadObject?(dojox.rpc._sync=true)&&arguments.callee.call(this,dojox.data.ServiceStore.prototype.loadItem({item:item})||{},property,defaultValue):defaultValue)},getValues:function(item,property){var val=this.getValue(item,property);return val instanceof Array?val:val===undefined?[]:[val]},getAttributes:function(item){var res=[];for(var i in item)if(item.hasOwnProperty(i)&&!(i.charAt(0)==
"_"&&i.charAt(1)=="_"))res.push(i);return res},hasAttribute:function(item,attribute){return attribute in item},containsValue:function(item,attribute,value){return array.indexOf(this.getValues(item,attribute),value)>-1},isItem:function(item){return typeof item=="object"&&item&&!(item instanceof Date)},isItemLoaded:function(item){return item&&!item._loadObject},loadItem:function(args){var item;if(args.item._loadObject)args.item._loadObject(function(result){item=result;delete item._loadObject;var func=
result instanceof Error?args.onError:args.onItem;if(func)func.call(args.scope,result)});else if(args.onItem)args.onItem.call(args.scope,args.item);return item},_currentId:0,_processResults:function(results,deferred){if(results&&typeof results=="object"){var id=results.__id;if(!id){if(this.idAttribute)id=results[this.idAttribute];else id=this._currentId++;if(id!==undefined){var existingObj=this._index[id];if(existingObj){for(var j in existingObj)delete existingObj[j];results=lang.mixin(existingObj,
results)}results.__id=id;this._index[id]=results}}for(var i in results)results[i]=this._processResults(results[i],deferred).items;var count=results.length}return{totalCount:deferred.request.count==count?(deferred.request.start||0)+count*this.estimateCountFactor:count,items:results}},close:function(request){return request&&request.abort&&request.abort()},fetch:function(args){args=args||{};if("syncMode"in args?args.syncMode:this.syncMode)dojox.rpc._sync=true;var self=this;var scope=args.scope||self;
var defResult=this.cachingFetch?this.cachingFetch(args):this._doQuery(args);defResult.request=args;defResult.addCallback(function(results){if(args.clientFetch)results=self.clientSideFetch({query:args.clientFetch,sort:args.sort,start:args.start,count:args.count},results);var resultSet=self._processResults(results,defResult);results=args.results=resultSet.items;if(args.onBegin)args.onBegin.call(scope,resultSet.totalCount,args);if(args.onItem)for(var i=0;i<results.length;i++)args.onItem.call(scope,results[i],
args);if(args.onComplete)args.onComplete.call(scope,args.onItem?null:results,args);return results});defResult.addErrback(args.onError&&function(err){return args.onError.call(scope,err,args)});args.abort=function(){defResult.cancel()};args.store=this;return args},_doQuery:function(args){var query=typeof args.queryStr=="string"?args.queryStr:args.query;return this.service(query)},getFeatures:function(){return{"dojo.data.api.Read":true,"dojo.data.api.Identity":true,"dojo.data.api.Schema":this.schema}},
getLabel:function(item){return this.getValue(item,this.labelAttribute)},getLabelAttributes:function(item){return[this.labelAttribute]},getIdentity:function(item){return item.__id},getIdentityAttributes:function(item){return[this.idAttribute]},fetchItemByIdentity:function(args){var item=this._index[(args._prefix||"")+args.identity];if(item)if(item._loadObject){args.item=item;return this.loadItem(args)}else{if(args.onItem)args.onItem.call(args.scope,item)}else return this.fetch({query:args.identity,
onComplete:args.onItem,onError:args.onError,scope:args.scope}).results;return item}})})},"dcl/dcl":function(){(function(factory){if(typeof define!="undefined")define("dcl/dcl",["./mini"],factory);else if(typeof module!="undefined")module.exports=factory(require("./mini"));else dcl=factory(dcl)})(function(dcl){function nop(){}var Advice=dcl(dcl.Super,{constructor:function(){this.b=this.f.before;this.a=this.f.after;this.f=this.f.around}});function advise(f){return dcl._mk(f,Advice)}function makeAOPStub(b,
a,f){var sb=b||nop,sa=a||nop,sf=f||nop,x=function(){var r;sb.apply(this,arguments);try{r=sf.apply(this,arguments)}catch(e){r=e}sa.call(this,arguments,r);if(r instanceof Error)throw r;return r};x.advices={b:b,a:a,f:f};return x}function chain(id){return function(ctor,name){var m=ctor._m,c;if(m){c=+m.w[name]||0;if(c&&c!=id)dcl._e("set chaining",name,ctor,id,c);m.w[name]=id}}}dcl.mix(dcl,{Advice:Advice,advise:advise,before:function(f){return dcl.advise({before:f})},after:function(f){return dcl.advise({after:f})},
around:dcl.superCall,chainBefore:chain(1),chainAfter:chain(2),isInstanceOf:function(o,ctor){if(o instanceof ctor)return true;var t=o.constructor._m,i;if(t)for(t=t.b,i=t.length-1;i>=0;--i)if(t[i]===ctor)return true;return false},_sb:function(id,bases,name,chains){var f=chains[name]=dcl._ec(bases,name,"f"),b=dcl._ec(bases,name,"b").reverse(),a=dcl._ec(bases,name,"a");f=id?dcl._st(f,id==1?function(f){return dcl._sc(f.reverse())}:dcl._sc,name):dcl._ss(f,name);return!b.length&&!a.length?f||function(){}:
makeAOPStub(dcl._sc(b),dcl._sc(a),f)}});return dcl})},"xide/views/CodeMirrorEditor":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/_base/connect","dojo/dom-construct","dojo/on","dojo/_base/lang","dojo/dom-geometry","xide/utils","xide/layout/ContentPane","xapp/factory/Events","xfile/types","dijit/focus"],function(array,declare,html,connect,domConstruct,on,lang,domGeometry,utils,ContentPane,eventFactory,types,focus){return dojo.declare("xide.views.CodeMirrorEditor",
[ContentPane],{wFloatingPane:null,closeable:true,moduleView:null,didStartup:false,editorRoot:null,aceEditor:null,editorControlsRoot:null,btnSave:null,title:null,dataItem:null,value:null,titleWidget:null,ctrlDown:false,hasSaveButton:true,attachACEditor:true,root:null,toolbar:null,pane:null,content:null,editorFrame:null,rootPrefix:"",templateString:"\x3cdiv\x3e\x3cdiv class\x3d'aceCSSEditor' data-dojo-type\x3d'dijit.layout.ContentPane' title\x3d'${!title}' closable\x3d'true' data-dojo-attach-point\x3d'pane' style\x3d'padding:5px'\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'editorControlsRoot'\x3e"+"\x3c/div\x3e"+"\x3cbr/\x3e"+"\x3cdiv data-dojo-attach-point\x3d'editorRoot' style\x3d'height:inherit;width: 100%'\x3e\x3c/div\x3e"+"\x3c/div\x3e\x3c/div\x3e",getPermaLink:function(){if(this.params&&this.params.filePath)return encodeURIComponent(this.params.filePath)},onShow:function(focus){this.inherited(arguments);try{if(this.codeMirror&&this.content)this.codeMirror.refresh()}catch(e){debugger}},focus:function(){this.inherited(arguments);
var thiz=this;if(this.parentContainer&&this.parentContainer.selectChild)this.parentContainer.selectChild(this);this.domNode.tabindex=1;this.containerNode.tabindex=1;setTimeout(function(){thiz.domNode.focus();thiz.containerNode.focus()},0);var cm=thiz.codeMirror;setTimeout(function(){if(cm&&cm.display&&cm.display.input&&cm.display.input.focus){cm.display.input.tabindex=1;cm.display.input.focus()}},500)},createEditorControls:function(){this.toolbar=new xide.widgets.EditorToolbar({style:"padding:0 !important;"},
dojo.doc.createElement("div"));this.toolbar["delegate"]=this;this.containerNode.appendChild(this.toolbar.domNode);this.toolbar.startup()},onFullscreen:function(ref){this.codeMirror.setOption("fullScreen",!this.codeMirror.getOption("fullScreen"))},getContent:function(){return this.codeMirror.getValue()},onSave:function(ref){var thiz=this;try{var value=this.codeMirror.getValue();if(value){var _cb=function(content){var struct={path:thiz.filePath};eventFactory.createEvent(types.EVENTS.ON_FILE_CONTENT_CHANGED,
struct,thiz)};this.delegate.setFileContent(this.filePath,value,_cb)}}catch(e){console.error("error saving")}},setContent:function(content){this.content=content;this.codeMirror.setValue(content);this.codeMirror.refresh()},loadContent:function(filePath){var thiz=this;var _cb=function(content){if(content==null)return;var cm=thiz.codeMirror;this.content=content;thiz.codeMirror.setValue(content);var root=thiz.parentContainer;if(root){root.resize();thiz.codeMirror.refresh()}setTimeout(function(){if(cm&&
cm.display&&cm.display.input&&cm.display.input.focus)cm.display.input.focus()},500)};this.delegate.getFileContent(filePath,_cb);var root=this.parentContainer;if(root){root.resize();this.codeMirror.refresh()}},setDefaults:function(){return{stylesheet:["/lib/codemirror.css"],path:""+this.rootPrefix+"/lib/external/codemirror-3.20/",autofocus:true,parserfile:[],basefiles:["addon/mode/loadmode.js"],iframeClass:null,passDelay:200,passTime:50,lineNumberDelay:200,lineNumberTime:50,continuousScanning:false,
saveFunction:null,mode:"javascript",onLoad:function(){debugger},onChange:null,undoDepth:50,undoDelay:800,disableSpellcheck:true,textWrapping:true,readOnly:false,width:"",height:"400px",minHeight:100,autoMatchParens:false,parserConfig:null,tabMode:"indent",enterMode:"indent",electricChars:true,reindentOnLoad:false,activeTokens:null,onCursorActivity:null,lineNumbers:false,firstLineNumber:1,onLineNumberClick:null,indentUnit:2,domain:null,noScriptCaching:false}},frameHTML:function(options){if(typeof options.parserfile==
"string")options.parserfile=[options.parserfile];if(typeof options.basefiles=="string")options.basefiles=[options.basefiles];if(typeof options.stylesheet=="string")options.stylesheet=[options.stylesheet];var base="components/com_xas/client/lib/external/codemirror-3.20/";var html=['\x3c!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"\x3e\x3chtml\x3e\x3chead\x3e'];html.push('\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3dEmulateIE7"/\x3e');
var prefix=this.rootPrefix+"/lib/external/codemirror-3.20/";var queryStr=options.noScriptCaching?"?nocache\x3d"+(new Date).getTime().toString(16):"";array.forEach(options.stylesheet,function(file){html.push('\x3clink rel\x3d"stylesheet" type\x3d"text/css" href\x3d"'+prefix+file+queryStr+'"/\x3e')});array.forEach(options.basefiles.concat(options.parserfile),function(file){if(!/^https?:/.test(file))file=options.path+file;html.push('\x3cscript type\x3d"text/javascript" src\x3d"'+file+queryStr+'"\x3e\x3c'+
"/script\x3e")});var scriptTag='\x3cscript type\x3d"text/javascript"\x3e'+"var dst \x3d document.getElementById('editbox');"+"var cm \x3d new CodeMirror(null,document.options);"+'cm.setOption("mode", "javascript");'+"debugger;"+"\x3c/script\x3e";html.push(scriptTag);html.push('\x3c/head\x3e\x3cbody style\x3d"border-width: 0;" id\x3d"editbox" class\x3d"editbox" spellcheck\x3d"'+(options.disableSpellcheck?"false":"true")+'"\x3e'+scriptTag+"\x3c/body\x3e\x3c/html\x3e");return html.join("")},initCodeMirror2:function(fsMode,
fileName){var thiz=this;this.editorFrame=domConstruct.create("iframe",{src:"javascript:;"},dojo.doc.createElement("div"));this.options=this.setDefaults();var options=this.options;var frame=this.editorFrame;frame.frameBorder=0;frame.style.border="0";frame.style.width="100%";frame.style.height="100%";frame.style.display="block";var div=this.wrapping=domConstruct.create("div");div.style.position="relative";div.className="CodeMirror-wrapping";div.style.width=options.width;div.style.height=options.height==
"dynamic"?options.minHeight+"px":options.height;var teHack=this.textareaHack=domConstruct.create("textarea");div.appendChild(teHack);teHack.style.position="absolute";teHack.style.left="-10000px";teHack.style.width="10px";teHack.tabIndex=1E5;this.containerNode.appendChild(div);div.appendChild(frame);this.options.textWrapping=this.textWrapping;this.options.lineNumbers=this.lineNumbers;this.win=frame.contentWindow;this.win.document.open();this.win.document.write("asdfasdfasdf asdfsdf");this.win.document.close();
return;var ext=utils.getFileExtension(fileName);if(ext==="html")ext="htmlmixed";if(ext==="js")ext="javascript";if(ext==="json")ext="javascript";if(ext==="sh")ext="shell";if(ext==="cp")ext="xml";if(ext==="less")ext="less";this.codeMirror.setOption("mode",ext);CodeMirror.autoLoadMode(this.codeMirror,ext);this.loadContent(fileName)},initCodeMirror:function(fsMode,fileName){var thiz=this;this.codeMirror=new CodeMirror(this.containerNode,{lineNumbers:true,matchBrackets:true,stylesheet:[],path:"",iframeClass:"iframeclass",
passDelay:200,passTime:50,lineNumberDelay:200,lineNumberTime:50,continuousScanning:false,saveFunction:null,onLoad:null,onChange:null,undoDepth:50,undoDelay:800,disableSpellcheck:true,textWrapping:true,width:"",height:"300px",minHeight:100,autoMatchParens:false,parserConfig:null,tabMode:"indent",enterMode:"indent",electricChars:true,reindentOnLoad:false,activeTokens:null,onCursorActivity:null,firstLineNumber:1,onLineNumberClick:null,domain:null,noScriptCaching:true,mode:"application/x-httpd-php",indentUnit:4,
readOnly:false,foldGutter:true,gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],extraKeys:{"F11":function(cm){cm.setOption("fullScreen",!thiz.codeMirror.getOption("fullScreen"))},"Esc":function(cm){if(thiz.codeMirror.getOption("fullScreen"))thiz.codeMirror.setOption("fullScreen",false)}}});var ext=utils.getFileExtension(fileName);if(ext==="html")ext="htmlmixed";if(ext==="js")ext="javascript";if(ext==="json")ext="javascript";if(ext==="sh")ext="shell";if(ext==="cp")ext="xml";if(ext==="less")ext=
"less";this.codeMirror.setOption("mode",ext);CodeMirror.autoLoadMode(this.codeMirror,ext);this.loadContent(fileName)},onOpen:function(fileName){CodeMirror.modeURL=this.root+"/mode/%N/%N.js";var path="plugins/editor.codemirror/CodeMirror/";var extension=utils.getFileExtension(fileName);var parserFile;var styleSheet;var parserConfig={};switch(extension){case "js":case "json":parserFile=["tokenizejavascript.js","parsejavascript.js"];styleSheet=path+"css/jscolors.css";if(extension=="json")parserConfig.json=
true;break;case "xml":parserFile="parsexml.js";styleSheet=path+"css/xmlcolors.css";break;case "css":parserFile="parsecss.js";styleSheet=path+"css/csscolors.css";break;case "html":parserFile=["parsexml.js","parsecss.js","tokenizejavascript.js","parsejavascript.js","parsehtmlmixed.js"];styleSheet=[path+"css/xmlcolors.css",path+"css/jscolors.css",path+"css/csscolors.css"];break;case "sparql":parserFile="parsesparql.js";styleSheet=path+"css/sparqlcolors.css";break;case "php":case "phtml":parserFile=["parsexml.js",
"parsecss.js","tokenizejavascript.js","parsejavascript.js","../contrib/php/js/tokenizephp.js","../contrib/php/js/parsephp.js","../contrib/php/js/parsephphtmlmixed.js"];styleSheet=[path+"css/xmlcolors.css",path+"css/jscolors.css",path+"css/csscolors.css",path+"/contrib/php/css/phpcolors.css"];break;case "py":parserFile="../contrib/python/js/parsepython.js";styleSheet=path+"contrib/python/css/pythoncolors.css";ResourcesManager.prototype.loadCSSResource("plugins/editor.codemirror/css/linenumbers-py.css");
break;case "lua":parserFile="../contrib/lua/js/parselua.js";styleSheet=path+"contrib/python/css/luacolors.css";break;case "c#":parserFile=["../contrib/csharp/js/tokenizecsharp.js","../contrib/csharp/js/parsecsharp.js"];styleSheet=path+"contrib/csharp/css/csharpcolors.css";break;case "java":case "jsp":parserFile=["../contrib/java/js/tokenizejava.js","../contrib/java/js/parsejava.js"];styleSheet=path+"contrib/java/css/javacolors.css";break;case "sql":parserFile="../contrib/sql/js/parsesql.js";styleSheet=
path+"contrib/sql/css/sqlcolors.css";break;case "xquery":parserFile=["../contrib/xquery/js/tokenizexquery.js","../contrib/xquery/js/parsexquery.js"];styleSheet=path+"contrib/xquery/css/xquerycolors.css";break;default:parserFile="parsedummy.js";styleSheet=path+"../css/dummycolors.css";break}this.options={path:path+"js/",parserfile:parserFile,stylesheet:styleSheet,parserConfig:parserConfig}},onHide:function(){},onClose2:function(){utils.destroyWidget(this.codeMirror);this.inherited(arguments);utils.destroyWidget(this.id);
var parent=dijit.byId("topTabs");parent.removeChild(this)},destroy:function(){},dataRecievedJSON:function(result){this.content=result.description;this.title=result.title;this.titleWidget.value=this.title;this.attachCKEditor()},saveContentCB:function(thiz,res){console.error("content saved")},saveContent:function(){var value=this.aceEditor.get("value");sctx.getStyleManager().updateSheet(sctx.getSession().getUUID(),sctx.getSession().getAppId(),utils.toString(this.dataItem.path),value);sctx.getWorkflowManager().onCSSEditorChange(this.dataItem,
value)},startup:function(){if(this.didStartup)return;this.set("closable",true);this.inherited(arguments);this.didStartup=true;var thiz=this;this.createEditorControls();this.onOpen(this.filePath);thiz.initCodeMirror(false,thiz.filePath);connect.connect(this.containerNode,"onclick",function(evt){thiz.focus()});connect.connect(this.domNode,"onkeyup",function(evt){if(evt.keyCode==17)thiz.ctrlDown=false});connect.connect(this.domNode,"onkeydown",function(evt){if(evt.keyCode==17)thiz.ctrlDown=true;if(thiz.ctrlDown&&
evt.keyCode==83){evt.preventDefault();thiz.onSave()}})}})})},"dojox/fx":function(){define("dojox/fx",["./fx/_base"],function(DojoxFx){return DojoxFx})},"dojox/grid/_Builder":function(){define("dojox/grid/_Builder",["../main","dojo/_base/array","dojo/_base/lang","dojo/_base/window","dojo/_base/event","dojo/_base/sniff","dojo/_base/connect","dojo/dnd/Moveable","dojox/html/metrics","./util","dojo/_base/html","dojo/dom-geometry"],function(dojox,array,lang,win,event,has,connect,Moveable,metrics,util,html,
domGeometry){var dg=dojox.grid;var getTdIndex=function(td){return td.cellIndex>=0?td.cellIndex:array.indexOf(td.parentNode.cells,td)};var getTrIndex=function(tr){return tr.rowIndex>=0?tr.rowIndex:array.indexOf(tr.parentNode.childNodes,tr)};var getTr=function(rowOwner,index){return rowOwner&&((rowOwner.rows||0)[index]||rowOwner.childNodes[index])};var findTable=function(node){for(var n=node;n&&n.tagName!="TABLE";n=n.parentNode);return n};var ascendDom=function(inNode,inWhile){for(var n=inNode;n&&inWhile(n);n=
n.parentNode);return n};var makeNotTagName=function(inTagName){var name=inTagName.toUpperCase();return function(node){return node.tagName!=name}};var rowIndexTag=util.rowIndexTag;var gridViewTag=util.gridViewTag;var _Builder=dg._Builder=lang.extend(function(view){if(view){this.view=view;this.grid=view.grid}},{view:null,_table:'\x3ctable class\x3d"dojoxGridRowTable" border\x3d"0" cellspacing\x3d"0" cellpadding\x3d"0" role\x3d"presentation"',getTableArray:function(){var html=[this._table];if(this.view.viewWidth)html.push([' style\x3d"width:',
this.view.viewWidth,';"'].join(""));html.push("\x3e");return html},generateCellMarkup:function(inCell,inMoreStyles,inMoreClasses,isHeader){var result=[],html;if(isHeader){var sortInfo=inCell.index!=inCell.grid.getSortIndex()?"":inCell.grid.sortInfo>0?'aria-sort\x3d"ascending"':'aria-sort\x3d"descending"';if(!inCell.id)inCell.id=this.grid.id+"Hdr"+inCell.index;html=['\x3cth tabIndex\x3d"-1" aria-readonly\x3d"true" role\x3d"columnheader"',sortInfo,' id\x3d"',inCell.id,'"']}else{var editInfo=this.grid.editable&&
!inCell.editable?'aria-readonly\x3d"true"':"";html=['\x3ctd tabIndex\x3d"-1" role\x3d"gridcell"',editInfo]}if(inCell.colSpan)html.push(' colspan\x3d"',inCell.colSpan,'"');if(inCell.rowSpan)html.push(' rowspan\x3d"',inCell.rowSpan,'"');html.push(' class\x3d"dojoxGridCell ');if(inCell.classes)html.push(inCell.classes," ");if(inMoreClasses)html.push(inMoreClasses," ");result.push(html.join(""));result.push("");html=['" idx\x3d"',inCell.index,'" style\x3d"'];if(inMoreStyles&&inMoreStyles[inMoreStyles.length-
1]!=";")inMoreStyles+=";";html.push(inCell.styles,inMoreStyles||"",inCell.hidden?"display:none;":"");if(inCell.unitWidth)html.push("width:",inCell.unitWidth,";");result.push(html.join(""));result.push("");html=['"'];if(inCell.attrs)html.push(" ",inCell.attrs);html.push("\x3e");result.push(html.join(""));result.push("");result.push(isHeader?"\x3c/th\x3e":"\x3c/td\x3e");return result},isCellNode:function(inNode){return Boolean(inNode&&inNode!=win.doc&&html.attr(inNode,"idx"))},getCellNodeIndex:function(inCellNode){return inCellNode?
Number(html.attr(inCellNode,"idx")):-1},getCellNode:function(inRowNode,inCellIndex){for(var i=0,row;(row=getTr(inRowNode.firstChild,i))&&row.cells;i++)for(var j=0,cell;cell=row.cells[j];j++)if(this.getCellNodeIndex(cell)==inCellIndex)return cell;return null},findCellTarget:function(inSourceNode,inTopNode){var n=inSourceNode;while(n&&(!this.isCellNode(n)||n.offsetParent&&gridViewTag in n.offsetParent.parentNode&&n.offsetParent.parentNode[gridViewTag]!=this.view.id)&&n!=inTopNode)n=n.parentNode;return n!=
inTopNode?n:null},baseDecorateEvent:function(e){e.dispatch="do"+e.type;e.grid=this.grid;e.sourceView=this.view;e.cellNode=this.findCellTarget(e.target,e.rowNode);e.cellIndex=this.getCellNodeIndex(e.cellNode);e.cell=e.cellIndex>=0?this.grid.getCell(e.cellIndex):null},findTarget:function(inSource,inTag){var n=inSource;while(n&&n!=this.domNode&&(!(inTag in n)||gridViewTag in n&&n[gridViewTag]!=this.view.id))n=n.parentNode;return n!=this.domNode?n:null},findRowTarget:function(inSource){return this.findTarget(inSource,
rowIndexTag)},isIntraNodeEvent:function(e){try{return e.cellNode&&e.relatedTarget&&html.isDescendant(e.relatedTarget,e.cellNode)}catch(x){return false}},isIntraRowEvent:function(e){try{var row=e.relatedTarget&&this.findRowTarget(e.relatedTarget);return!row&&e.rowIndex==-1||row&&e.rowIndex==row.gridRowIndex}catch(x){return false}},dispatchEvent:function(e){if(e.dispatch in this)return this[e.dispatch](e);return false},domouseover:function(e){if(e.cellNode&&e.cellNode!=this.lastOverCellNode){this.lastOverCellNode=
e.cellNode;this.grid.onMouseOver(e)}this.grid.onMouseOverRow(e)},domouseout:function(e){if(e.cellNode&&e.cellNode==this.lastOverCellNode&&!this.isIntraNodeEvent(e,this.lastOverCellNode)){this.lastOverCellNode=null;this.grid.onMouseOut(e);if(!this.isIntraRowEvent(e))this.grid.onMouseOutRow(e)}},domousedown:function(e){if(e.cellNode)this.grid.onMouseDown(e);this.grid.onMouseDownRow(e)},_getTextDirStyle:function(textDir,inCell,inRowIndex){return""}});var _ContentBuilder=dg._ContentBuilder=lang.extend(function(view){_Builder.call(this,
view)},_Builder.prototype,{update:function(){this.prepareHtml()},prepareHtml:function(){var defaultGet=this.grid.get,cells=this.view.structure.cells;for(var j=0,row;row=cells[j];j++)for(var i=0,cell;cell=row[i];i++){cell.get=cell.get||cell.value==undefined&&defaultGet;cell.markup=this.generateCellMarkup(cell,cell.cellStyles,cell.cellClasses,false);if(!this.grid.editable&&cell.editable)this.grid.editable=true}},generateHtml:function(inDataIndex,inRowIndex){var html=this.getTableArray(),v=this.view,
dir,cells=v.structure.cells,item=this.grid.getItem(inRowIndex);util.fire(this.view,"onBeforeRow",[inRowIndex,cells]);for(var j=0,row;row=cells[j];j++){if(row.hidden||row.header)continue;html.push(!row.invisible?"\x3ctr\x3e":'\x3ctr class\x3d"dojoxGridInvisible"\x3e');for(var i=0,cell,m,cc,cs;cell=row[i];i++){m=cell.markup;cc=cell.customClasses=[];cs=cell.customStyles=[];m[5]=cell.format(inRowIndex,item);m[1]=cc.join(" ");m[3]=cs.join(";");dir=cell.textDir||this.grid.textDir;if(dir)m[3]+=this._getTextDirStyle(dir,
cell,inRowIndex);html.push.apply(html,m)}html.push("\x3c/tr\x3e")}html.push("\x3c/table\x3e");return html.join("")},decorateEvent:function(e){e.rowNode=this.findRowTarget(e.target);if(!e.rowNode)return false;e.rowIndex=e.rowNode[rowIndexTag];this.baseDecorateEvent(e);e.cell=this.grid.getCell(e.cellIndex);return true}});var _HeaderBuilder=dg._HeaderBuilder=lang.extend(function(view){this.moveable=null;_Builder.call(this,view)},_Builder.prototype,{_skipBogusClicks:false,overResizeWidth:4,minColWidth:1,
update:function(){if(this.tableMap)this.tableMap.mapRows(this.view.structure.cells);else this.tableMap=new dg._TableMap(this.view.structure.cells)},generateHtml:function(inGetValue,inValue){var dir,html=this.getTableArray(),cells=this.view.structure.cells;util.fire(this.view,"onBeforeRow",[-1,cells]);for(var j=0,row;row=cells[j];j++){if(row.hidden)continue;html.push(!row.invisible?"\x3ctr\x3e":'\x3ctr class\x3d"dojoxGridInvisible"\x3e');for(var i=0,cell,markup;cell=row[i];i++){cell.customClasses=
[];cell.customStyles=[];if(this.view.simpleStructure){if(cell.draggable)if(cell.headerClasses){if(cell.headerClasses.indexOf("dojoDndItem")==-1)cell.headerClasses+=" dojoDndItem"}else cell.headerClasses="dojoDndItem";if(cell.attrs){if(cell.attrs.indexOf("dndType\x3d'gridColumn_")==-1)cell.attrs+=" dndType\x3d'gridColumn_"+this.grid.id+"'"}else cell.attrs="dndType\x3d'gridColumn_"+this.grid.id+"'"}markup=this.generateCellMarkup(cell,cell.headerStyles,cell.headerClasses,true);markup[5]=inValue!=undefined?
inValue:inGetValue(cell);markup[3]=cell.customStyles.join(";");dir=cell.textDir||this.grid.textDir;if(dir)markup[3]+=this._getTextDirStyle(dir,cell,inValue);markup[1]=cell.customClasses.join(" ");html.push(markup.join(""))}html.push("\x3c/tr\x3e")}html.push("\x3c/table\x3e");return html.join("")},getCellX:function(e){var n,x,pos;n=ascendDom(e.target,makeNotTagName("th"));if(n){pos=domGeometry.position(n);x=e.clientX-pos.x}else x=e.layerX;return x},decorateEvent:function(e){this.baseDecorateEvent(e);
e.rowIndex=-1;e.cellX=this.getCellX(e);return true},prepareResize:function(e,mod){do{var i=e.cellIndex;e.cellNode=i?e.cellNode.parentNode.cells[i+mod]:null;e.cellIndex=e.cellNode?this.getCellNodeIndex(e.cellNode):-1}while(e.cellNode&&e.cellNode.style.display=="none");return Boolean(e.cellNode)},canResize:function(e){if(!e.cellNode||e.cellNode.colSpan>1)return false;var cell=this.grid.getCell(e.cellIndex);return!cell.noresize&&cell.canResize()},overLeftResizeArea:function(e){if(html.hasClass(win.body(),
"dojoDndMove"))return false;if(has("ie")){var tN=e.target;if(html.hasClass(tN,"dojoxGridArrowButtonNode")||html.hasClass(tN,"dojoxGridArrowButtonChar")||html.hasClass(tN,"dojoxGridColCaption"))return false}if(this.grid.isLeftToRight())return e.cellIndex>0&&e.cellX>0&&e.cellX<this.overResizeWidth&&this.prepareResize(e,-1);var t=e.cellNode&&e.cellX>0&&e.cellX<this.overResizeWidth;return t},overRightResizeArea:function(e){if(html.hasClass(win.body(),"dojoDndMove"))return false;if(has("ie")){var tN=e.target;
if(html.hasClass(tN,"dojoxGridArrowButtonNode")||html.hasClass(tN,"dojoxGridArrowButtonChar")||html.hasClass(tN,"dojoxGridColCaption"))return false}if(this.grid.isLeftToRight())return e.cellNode&&e.cellX>=e.cellNode.offsetWidth-this.overResizeWidth;return e.cellIndex>0&&e.cellX>=e.cellNode.offsetWidth-this.overResizeWidth&&this.prepareResize(e,-1)},domousemove:function(e){if(!this.moveable){var c=this.overRightResizeArea(e)?"dojoxGridColResize":this.overLeftResizeArea(e)?"dojoxGridColResize":"";if(c&&
!this.canResize(e))c="dojoxGridColNoResize";html.toggleClass(e.sourceView.headerNode,"dojoxGridColNoResize",c=="dojoxGridColNoResize");html.toggleClass(e.sourceView.headerNode,"dojoxGridColResize",c=="dojoxGridColResize");if(c)event.stop(e)}},domousedown:function(e){if(!this.moveable)if((this.overRightResizeArea(e)||this.overLeftResizeArea(e))&&this.canResize(e))this.beginColumnResize(e);else{this.grid.onMouseDown(e);this.grid.onMouseOverRow(e)}},doclick:function(e){if(this._skipBogusClicks){event.stop(e);
return true}return false},colResizeSetup:function(e,isMouse){var headContentBox=html.contentBox(e.sourceView.headerNode);if(isMouse){this.lineDiv=document.createElement("div");var vw=html.position(e.sourceView.headerNode,true);var bodyContentBox=html.contentBox(e.sourceView.domNode);var l=e.pageX;if(!this.grid.isLeftToRight()&&has("ie")<8)l-=metrics.getScrollbar().w;html.style(this.lineDiv,{top:vw.y+"px",left:l+"px",height:bodyContentBox.h+headContentBox.h+"px"});html.addClass(this.lineDiv,"dojoxGridResizeColLine");
this.lineDiv._origLeft=l;win.body().appendChild(this.lineDiv)}var spanners=[],nodes=this.tableMap.findOverlappingNodes(e.cellNode);for(var i=0,cell;cell=nodes[i];i++)spanners.push({node:cell,index:this.getCellNodeIndex(cell),width:cell.offsetWidth});var view=e.sourceView;var adj=this.grid.isLeftToRight()?1:-1;var views=e.grid.views.views;var followers=[];for(var j=view.idx+adj,cView;cView=views[j];j=j+adj)followers.push({node:cView.headerNode,left:window.parseInt(cView.headerNode.style.left)});var table=
view.headerContentNode.firstChild;var drag={scrollLeft:e.sourceView.headerNode.scrollLeft,view:view,node:e.cellNode,index:e.cellIndex,w:html.contentBox(e.cellNode).w,vw:headContentBox.w,table:table,tw:html.contentBox(table).w,spanners:spanners,followers:followers};return drag},beginColumnResize:function(e){this.moverDiv=document.createElement("div");html.style(this.moverDiv,{position:"absolute",left:0});win.body().appendChild(this.moverDiv);html.addClass(this.grid.domNode,"dojoxGridColumnResizing");
var m=this.moveable=new Moveable(this.moverDiv);var drag=this.colResizeSetup(e,true);m.onMove=lang.hitch(this,"doResizeColumn",drag);connect.connect(m,"onMoveStop",lang.hitch(this,function(){this.endResizeColumn(drag);if(drag.node.releaseCapture)drag.node.releaseCapture();this.moveable.destroy();delete this.moveable;this.moveable=null;html.removeClass(this.grid.domNode,"dojoxGridColumnResizing")}));if(e.cellNode.setCapture)e.cellNode.setCapture();m.onMouseDown(e)},doResizeColumn:function(inDrag,mover,
leftTop){var changeX=leftTop.l;var data={deltaX:changeX,w:inDrag.w+(this.grid.isLeftToRight()?changeX:-changeX),vw:inDrag.vw+changeX,tw:inDrag.tw+changeX};this.dragRecord={inDrag:inDrag,mover:mover,leftTop:leftTop};if(data.w>=this.minColWidth)if(!mover)this.doResizeNow(inDrag,data);else html.style(this.lineDiv,"left",this.lineDiv._origLeft+data.deltaX+"px")},endResizeColumn:function(inDrag){if(this.dragRecord){var leftTop=this.dragRecord.leftTop;var changeX=this.grid.isLeftToRight()?leftTop.l:-leftTop.l;
changeX+=Math.max(inDrag.w+changeX,this.minColWidth)-(inDrag.w+changeX);if(has("webkit")&&inDrag.spanners.length)changeX+=html._getPadBorderExtents(inDrag.spanners[0].node).w;var data={deltaX:changeX,w:inDrag.w+changeX,vw:inDrag.vw+changeX,tw:inDrag.tw+changeX};this.doResizeNow(inDrag,data);delete this.dragRecord}html.destroy(this.lineDiv);html.destroy(this.moverDiv);html.destroy(this.moverDiv);delete this.moverDiv;this._skipBogusClicks=true;inDrag.view.update();this._skipBogusClicks=false;this.grid.onResizeColumn(inDrag.index)},
doResizeNow:function(inDrag,data){inDrag.view.convertColPctToFixed();if(inDrag.view.flexCells&&!inDrag.view.testFlexCells()){var t=findTable(inDrag.node);if(t)t.style.width=""}var i,s,sw,f,fl;for(i=0;s=inDrag.spanners[i];i++){sw=s.width+data.deltaX;if(sw>0){s.node.style.width=sw+"px";inDrag.view.setColWidth(s.index,sw)}}if(this.grid.isLeftToRight()||!has("ie"))for(i=0;f=inDrag.followers[i];i++){fl=f.left+data.deltaX;f.node.style.left=fl+"px"}inDrag.node.style.width=data.w+"px";inDrag.view.setColWidth(inDrag.index,
data.w);inDrag.view.headerNode.style.width=data.vw+"px";inDrag.view.setColumnsWidth(data.tw);if(!this.grid.isLeftToRight())inDrag.view.headerNode.scrollLeft=inDrag.scrollLeft+data.deltaX}});dg._TableMap=lang.extend(function(rows){this.mapRows(rows)},{map:null,mapRows:function(inRows){var rowCount=inRows.length;if(!rowCount)return;this.map=[];var row;for(var k=0;row=inRows[k];k++)this.map[k]=[];for(var j=0;row=inRows[j];j++)for(var i=0,x=0,cell,colSpan,rowSpan;cell=row[i];i++){while(this.map[j][x])x++;
this.map[j][x]={c:i,r:j};rowSpan=cell.rowSpan||1;colSpan=cell.colSpan||1;for(var y=0;y<rowSpan;y++)for(var s=0;s<colSpan;s++)this.map[j+y][x+s]=this.map[j][x];x+=colSpan}},dumpMap:function(){for(var j=0,row,h="";row=this.map[j];j++,h="")for(var i=0,cell;cell=row[i];i++)h+=cell.r+","+cell.c+"   "},getMapCoords:function(inRow,inCol){for(var j=0,row;row=this.map[j];j++)for(var i=0,cell;cell=row[i];i++)if(cell.c==inCol&&cell.r==inRow)return{j:j,i:i};return{j:-1,i:-1}},getNode:function(inTable,inRow,inCol){var row=
inTable&&inTable.rows[inRow];return row&&row.cells[inCol]},_findOverlappingNodes:function(inTable,inRow,inCol){var nodes=[];var m=this.getMapCoords(inRow,inCol);for(var j=0,row;row=this.map[j];j++){if(j==m.j)continue;var rw=row[m.i];var n=rw?this.getNode(inTable,rw.r,rw.c):null;if(n)nodes.push(n)}return nodes},findOverlappingNodes:function(inNode){return this._findOverlappingNodes(findTable(inNode),getTrIndex(inNode.parentNode),getTdIndex(inNode))}});return{_Builder:_Builder,_HeaderBuilder:_HeaderBuilder,
_ContentBuilder:_ContentBuilder}})},"xfile/manager/Context":function(){define("xfile/manager/Context",["dojo/_base/declare","xide/manager/Context","./PanelManager","./ClipboardManager","./PluginManager","./Application","./NotificationManager","./FileManager","./MountManager","xide/manager/SettingsManager","xfile/views/ActionDialog","xfile/factory","xide/types","dojox/encoding/digests/MD5","dojo/json","xide/widgets/TemplatedWidgetBase","xide/views/ActionDialog","xide/views/CIActionDialog"],function(declare,
Context,PanelManager,ClipboardManager,PluginManager,Application,NotificationManager,FileManager,MountManager,SettingsManager,ActionDialog,factory,types,MD5,json,TemplatedWidgetBase,XActionDialog,CIActionDialog){return declare("xfile.manager.Context",[Context],{fileManager:null,scriptManager:null,panelManager:null,clipboardManager:null,pluginManager:null,mountManager:null,stores:null,getStore:function(mount,options){if(!this.stores)this.stores={};options=options||{fields:types.FIELDS.SHOW_ISDIR|types.FIELDS.SHOW_OWNER|
types.FIELDS.SHOW_SIZE|types.FIELDS.SHOW_MIME|types.FIELDS.SHOW_PERMISSIONS|types.FIELDS.SHOW_TIME};var optionsStr=MD5(JSON.stringify(options),1);var storeKey=mount+"_"+optionsStr;if(!this.stores[storeKey]){this.stores[storeKey]=factory.createStore(types.config.FILES_STORE_URL,mount,false,options,types.config);this.stores[storeKey].query({path:"."},{})}if(window["xappFileTrail"])window["xappFileTrail"].store=this.stores[storeKey];return this.stores[storeKey]},getPanelManager:function(){return this.panelManager},
getMountManager:function(){return this.mountManager},openUrl:function(url,container,config){config=config||this.config;return this.getPanelManager().openUrl(url,container,config)},initManagers:function(){this.inherited(arguments);if(this.workflowManager)this.workflowManager.init();if(this.notificationManager)this.notificationManager.init();if(this.fileManager)this.fileManager.init();if(this.mountManager)this.mountManager.init();if(this.panelManager)this.panelManager.init();try{if(this.settingsManager)this.settingsManager.init()}catch(e){console.error("failed")}this.panelManager.init()},
initWithConfig:function(config){if(config&&config.mixins)this.doMixins(config.mixins)},prepare:function(){if(this.config)this.initWithConfig(this.config)},patchManager:function(){},constructManagers:function(){ActionDialog.prototype.ctx=this;TemplatedWidgetBase.prototype.ctx=this;XActionDialog.prototype.ctx=this;CIActionDialog.prototype.ctx=this;this.inherited(arguments);this.panelManager=this.createManager(PanelManager,null);this.application=this.createManager(Application);this.notificationManager=
this.createManager(NotificationManager);this.fileManager=this.createManager(FileManager);this.mountManager=this.createManager(MountManager);this.settingsManager=this.createManager(SettingsManager);this.clipboardManager=this.createManager(ClipboardManager)}})})},"xapp/factory/Events":function(){define("xapp/factory/Events",["xapp/types","xapp/factory","dojo/_base/connect","dojo/on","dojo/_base/lang"],function(types,factory,connect,on,lang){factory.createEvent=function(eventKey,content,caller){connect.publish(eventKey,
{caller:caller,content:content,viewController:null,listRenderer:null,module:null,flags:-1})};factory.subscribe=function(eventKey,cb,owner){if(owner!=null)return dojo.subscribe(eventKey,lang.hitch(owner,cb));else return connect.subscribe(eventKey,cb)};return factory})},"dojo/hccss":function(){define(["require","./_base/config","./dom-class","./dom-style","./has","./domReady","./_base/window"],function(require,config,domClass,domStyle,has,domReady,win){has.add("highcontrast",function(){var div=win.doc.createElement("div");
div.style.cssText="border: 1px solid; border-color:red green; position: absolute; height: 5px; top: -999px;"+'background-image: url("'+(config.blankGif||require.toUrl("./resources/blank.gif"))+'");';win.body().appendChild(div);var cs=domStyle.getComputedStyle(div),bkImg=cs.backgroundImage,hc=cs.borderTopColor==cs.borderRightColor||bkImg&&(bkImg=="none"||bkImg=="url(invalid-url:)");if(has("ie")<=8)div.outerHTML="";else win.body().removeChild(div);return hc});domReady(function(){if(has("highcontrast"))domClass.add(win.body(),
"dj_a11y")});return has})},"dojox/grid/cells":function(){define("dojox/grid/cells",["../main","./cells/_base"],function(dojox){return dojox.grid.cells})},"xide/widgets/_PermaMixin":function(){define(["dojo/_base/declare"],function(declare){return declare("xide.widgets._PermaMixin",null,{getPermaLink:function(){return null},initWithPermaLink:function(link){}})})},"xide/widgets/RichTextWidget":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/_base/lang","dojo/on","xide/widgets/WidgetBase",
"xide/views/TextEditor","xide/views/_EditorBase","dojo/keys","xide/utils","xide/types","xide/factory"],function(array,declare,html,lang,on,WidgetBase,TextEditor,_EditorBase,keys,utils,types,factory){return declare("xide.widgets.RichTextWidget",[WidgetBase],{didLoad:false,minHeight:"300px",editorHeight:"470px",jsonEditorHeight:"270px",aceEditorHeight:"200px",aceEditorOptions:null,aceEditor:null,aceNode:null,templateString:"\x3cdiv class\x3d'jsonEditorWidgetContainer' style\x3d'width: 100%;height:300px'\x3e"+
"\x3cdiv valign\x3d'middle' class\x3d'aceEditorWidget' data-dojo-attach-point\x3d'aceNode' style\x3d'height:100%;padding: 0px;'\x3e\x3c/div\x3e"+"\x3c/div\x3e",editor:null,getValue:function(){if(this.aceEditor)return this.aceEditor.get("value");return this.inherited(arguments)},resize:function(){this.inherited(arguments);if(this.aceEditor)this.aceEditor.resize()},ctlrKeyDown:false,onKeyUp:function(evt){switch(evt.keyCode){case keys.ALT:case keys.CTRL:this.ctlrKeyDown=false;break}},onKey:function(evt){switch(evt.keyCode){case keys.META:case keys.ALT:case keys.SHIFT:case keys.CTRL:this.ctlrKeyDown=
true;setTimeout(function(){thiz.ctlrKeyDown=false},2E3);break}var thiz=this;if(evt.type&&evt.type=="keyup")return this.onKeyUp(evt);var charOrCode=evt.charCode||evt.keyCode;if(this.ctlrKeyDown&&charOrCode===83){evt.preventDefault();if(this.delegate&&this.delegate.onSave)this.delegate.onSave(this.userData,this.getValue())}},setupEventHandlers:function(){var thiz=this;on(this.aceNode,"keydown",function(event){thiz.onKey(event)})},setValue:function(value){this.userData=utils.setCIValueByField(this.userData,
"value",value)},_onACEUpdate:function(){var _newValue=this.getValue();this.setValue(_newValue);this.changed=true;if(this.userData)this.userData.changed=true},_createACEEditor:function(parentNode){var _options={region:"center",value:this.getValue(),style:"margin: 0; padding: 0; position:relative;overflow: auto;height:inherit;width:inherit;",mode:"text",readOnly:false,tabSize:2,softTabs:false,wordWrap:false,showPrintMargin:false,highlightActiveLine:false,fontSize:"13px",showGutter:false,className:"editor-ace ace_editor ace-codebox-dark ace_dark"};
if(_options.value==-1)_options.value="";var editorPane=new TextEditor(_options,dojo.doc.createElement("div"));this.aceNode.appendChild(editorPane.domNode);editorPane.startup();this.aceEditor=editorPane;this.aceEditor.setOptions();var editor=this.aceEditor.getEditor();var thiz=this;editor.on("change",function(){thiz._onACEUpdate()});editor.on("blur",function(){thiz.setActive(false)});editor.on("focus",function(){thiz.setActive(true)})},startup:function(){this.inherited(arguments);try{if(!this.aceEditor)this._createACEEditor(this.aceNode)}catch(e){console.error("constructing json editor widget failed : "+
e.message)}this.setupEventHandlers()}})})},"dijit/_KeyNavContainer":function(){define("dijit/_KeyNavContainer",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/_base/kernel","dojo/keys","dojo/_base/lang","./registry","./_Container","./_FocusMixin","./_KeyNavMixin"],function(array,declare,domAttr,kernel,keys,lang,registry,_Container,_FocusMixin,_KeyNavMixin){return declare("dijit._KeyNavContainer",[_FocusMixin,_KeyNavMixin,_Container],{connectKeyNavHandlers:function(prevKeyCodes,nextKeyCodes){var keyCodes=
this._keyNavCodes={};var prev=lang.hitch(this,"focusPrev");var next=lang.hitch(this,"focusNext");array.forEach(prevKeyCodes,function(code){keyCodes[code]=prev});array.forEach(nextKeyCodes,function(code){keyCodes[code]=next});keyCodes[keys.HOME]=lang.hitch(this,"focusFirstChild");keyCodes[keys.END]=lang.hitch(this,"focusLastChild")},startupKeyNavChildren:function(){kernel.deprecated("startupKeyNavChildren() call no longer needed","","2.0")},startup:function(){this.inherited(arguments);array.forEach(this.getChildren(),
lang.hitch(this,"_startupChild"))},addChild:function(widget,insertIndex){this.inherited(arguments);this._startupChild(widget)},_startupChild:function(widget){widget.set("tabIndex","-1")},_getFirst:function(){var children=this.getChildren();return children.length?children[0]:null},_getLast:function(){var children=this.getChildren();return children.length?children[children.length-1]:null},focusNext:function(){this.focusChild(this._getNextFocusableChild(this.focusedChild,1))},focusPrev:function(){this.focusChild(this._getNextFocusableChild(this.focusedChild,
-1),true)},childSelector:function(node){var node=registry.byNode(node);return node&&node.getParent()==this}})})},"dojo/request/watch":function(){define(["./util","../errors/RequestTimeoutError","../errors/CancelError","../_base/array","../_base/window","../has!host-browser?dom-addeventlistener?:../on:"],function(util,RequestTimeoutError,CancelError,array,win,on){var _inFlightIntvl=null,_inFlight=[];function watchInFlight(){var now=+new Date;for(var i=0,dfd;i<_inFlight.length&&(dfd=_inFlight[i]);i++){var response=
dfd.response,options=response.options;if(dfd.isCanceled&&dfd.isCanceled()||dfd.isValid&&!dfd.isValid(response)){_inFlight.splice(i--,1);watch._onAction&&watch._onAction()}else if(dfd.isReady&&dfd.isReady(response)){_inFlight.splice(i--,1);dfd.handleResponse(response);watch._onAction&&watch._onAction()}else if(dfd.startTime)if(dfd.startTime+(options.timeout||0)<now){_inFlight.splice(i--,1);dfd.cancel(new RequestTimeoutError("Timeout exceeded",response));watch._onAction&&watch._onAction()}}watch._onInFlight&&
watch._onInFlight(dfd);if(!_inFlight.length){clearInterval(_inFlightIntvl);_inFlightIntvl=null}}function watch(dfd){if(dfd.response.options.timeout)dfd.startTime=+new Date;if(dfd.isFulfilled())return;_inFlight.push(dfd);if(!_inFlightIntvl)_inFlightIntvl=setInterval(watchInFlight,50);if(dfd.response.options.sync)watchInFlight()}watch.cancelAll=function cancelAll(){try{array.forEach(_inFlight,function(dfd){try{dfd.cancel(new CancelError("All requests canceled."))}catch(e){}})}catch(e){}};if(win&&on&&
win.doc.attachEvent)on(win.global,"unload",function(){watch.cancelAll()});return watch})},"xapp/types/Types":function(){define("xapp/types/Types",["xapp/types"],function(types){types.CACHE_PRIORITY={SYSTEM:100,CONTENT:10};types.CustomTypePropertyKey={CTPK_METHOD:"method",CTPK_NAME:"name",CTPK_ONPOSTSCRIPT:"onPostScript",CTPK_ONPRESCRIPT:"onPreScript",CTPK_PARENT:"parent",CTPK_PARENTDATASOURCETYPE:"parentDataSourceType",CTPK_QUERIES:"queries",CTPK_SCHEMAS:"schemas",CTPK_SERVICECLASS:"serviceClass",
CTPK_SYSTEM:"system",CTPK_TREEFACTORYCLASS:"treeFactoryClass",CTPK_URLSCHEMA:"urlSchema",CTPK_USERDATA:"userData",CTPK_ADAPTERCLASS:"adapterClass",CTPK_CLIENTDRIVERCLASS:"clientDriverClass",CTPK_ENABLED:"enabled",CTPK_FOLDER:"folder",CTPK_HIDDEN:"hidden",CTPK_DEFAULT_GROUP_ID:"defaultGroupId",CTPK_DEFAULT_GROUP_SELECT_STATEMENT:"groupSelectStatement",CTPK_DEFAULT_ORDER_SELECT_STATEMENT:"orderSelectStatement",CTPK_DEFAULT_LIMIT_SELECT_STATEMENT:"limitSelectStatement",CTPK_IS_DETAIL:"isDetail",CTPK_RELATIONS:"relations",
CTPK_FRIENDLY_NAME:"friendlyName",CTPK_ICON:"icon",CTPK_ID:"id"};types.FolderKey={XDOCROOT:"XDOC",XLIB:"XLIB",XUSER:"XUSER",XAPP:"XAPP",CXAPP:"CXAPP"};types.PlatformGroup={PC:"PC",TABLET:"TABLET",ANDROID:"ANDROID",IPHONE:"IPHONE",IPHONE4:"IPHONE4",IPHONE_NATIVE:"IPHONE_NATIVE",IPAD:"IPAD",IPAD_NATIVE:"IPAD_NATIVE",WEBOS:"WEBOS",MOBILE_WEB_APP:"MOBILE_WEB_APP",MOBILE_WEB_APP_TABLET:"MOBILE_WEB_APP_TABLET",HYBRID_IOS:"HYBRID_IOS",HYBRID_ANDROID:"HYBRID_ANDROID",ALL:"ALL"};types.DataRenderFlags={Title:1,
Text:2,TextWithPicture:3,ExtraText:4,CategoryTitle:5,CategoryLink:6,Gallery:8,Video:9,Phone:11,PostCode:12,City:13,WebLink:14,Rating:15,MapLocation:16};types.contenSourceFlags={OrderByCMS:17,OrderByAlpha:18,OrderByDate:19,OrderByAuthor:20,OrderByRandom:21,OrderByDateDesc:7,OrderByAlphaDesc:10};types.sourceType={Unknown:0,JoomlaSection:1,JoomlaCategory:2,JoomlaArticle:3,JEventsCategory:4,JEventsCalendarWeek:5,JEventsCalendarToday:6,JEventsLocationCategory:7,MosetTreeCategory:8,MosetTreeItem:9,MosetTreeItemList:10,
JoomlaBannerCategory:11,JoomlaBannerItem:12,FPSSCatgory:13,JEventsItem:14,ExternalLink:15,BlueFrameForm:16,BreezingForm:17,RSS:18,WordpressCategory:19,WordpressPage:20,WordpressPost:21,WordpressTag:22,WordpressUser:23,GoogleYoutubeChannel:24,GoogleYoutubeItem:25,GooglePicassaAlbum:26,GooglePicassaItem:27,GoogleCalendar:28,GoogleCalendarItem:29,DataSourceItem:30,StaticWebContent:31,StaticWebContentCategory:32,StaticWebContentTag:33,JoomlaArticleList:34,JEventsLocationItem:35,JEventsLocationItemList:36,
VMartCategory:37,VMartFeatured:38,VMartLatest:39,VMartProductList:40,VMartProductItem:41,RSS_ITEM:42,PICTURE:43,GALLERY:44,PHONE:45,MAP:46,VIDEO:47,FILE:48,TEXT:49,DATA:50,MOPUB:51,RADIO:52,DISQUS:53,TWITTER_SERVICE:54,StaticWebContentVenue:55,StaticWebContentVenueCategory:56,StaticWebContentEvent:57,GoogleDocumentFolder:58,GoogleDocumentItem:59,Custom:60,SourceTypeEnd:200};types.UrlType={JARTICLE:1,JLOCATION:2,JRESOURCE:3,EVENTS:4,LOCATION_CATEGORY:5,EVENT_DETAIL:6,EXTERNAL:7,LANG_DIALOG:8,SEARCH_DIALOG:9,
ARTICLE_SECTION:10,ARTICLE_CATEGORY:11,MOSET_CATEGORY:12,RSS:13,RSS_ITEM:14,WORDPRESS_CATEGORY:15,WORDPRESS_POST:16,WORDPRESS_PAGE:17,PICASSA_ALBUM:18,PICASSA_ITEM:19,STATIC_CONTENT:20,STATIC_CONTENT_CATEGORY:21,PICTURE_GALLERY:22,PICTURE_VIEW:23,JUNKNOWN:24};types.RenderField={TITLE:1,TITLE_RIGHT:2,ICON:3,STATUS_ICON_LEFT:4,STATUS_ICON_RIGHT:5,SMALL_TEXT_LEFT:6,SMALL_TEXT_RIGHT:7,LONG_TEXT:8,FOOTER_LEFT_TEXT:9,FOOTER_RIGHT_TEXT:10,CAPTION:11,CUSTOM_FIELDS:12};types.RenderFields={TITLE:1,TITLE_RIGHT:2,
ICON:3,STATUS_ICON_START:4,STATUS_ICON0:5,STATUS_ICON1:6,SMALL_TEXT_START:7,SMALL_TEXT_ONE:8,SMALL_TEXT_TWO:9,SMALL_TEXT_THREE:10,SMALL_TEXT_MAX:11,LONG_TEXT:12,FOOTER_LEFT_TEXT:13,FOOTER_RIGHT_TEXT:14,CAPTION:15};types.ApplicationMetaDataKeys={CM_PROMO_PIC_URL_0:"CM_PROMO_PIC_URL_0",CM_PROMO_PIC_URL_1:"CM_PROMO_PIC_URL_1",CM_MOBILE_APP_URL_0:"CM_MOBILE_APP_URL_0",CM_MOBILE_APP_URL_1:"CM_MOBILE_APP_URL_1",CM_APP_SCHEMA_PREFIX:"CM_APP_SCHEMA_SUFFIX",CM_APP_SCHEMA_SUFFIX:"CM_APP_SCHEMA_SUFFIX",CM_APP_TITLE:"CM_APP_TITLE",
CM_APP_DESCRIPTION:"CM_APP_DESCRIPTION",CM_APP_ICON_0:"CM_APP_ICON_0",CM_APP_ICON_SET:"CM_APP_ICON_SET",APP_FLAGS:"APP_FLAGS",APPLE_ICON_0:"APPLE_ICON_0",APPLE_ICON_1:"APPLE_ICON_1",APPLE_ICON_2:"APPLE_ICON_2",APPLE_ICON_3:"APPLE_ICON_3",APPLE_IPAD_ICON_0:"APPLE_IPAD_ICON_0",APPLE_IPAD_ICON_1:"APPLE_IPAD_ICON_1",APPLE_IPAD_ICON_2:"APPLE_IPAD_ICON_2",APPLE_IPAD_ICON_3:"APPLE_IPAD_ICON_3",APPLE_LAUNCH_0:"APPLE_LAUNCH_0",APPLE_LAUNCH_1:"APPLE_LAUNCH_1",APPLE_LAUNCH_2:"APPLE_LAUNCH_2",APPLE_LAUNCH_3:"APPLE_LAUNCH_3",
APPLE_LAUNCH_4:"APPLE_LAUNCH_4",APPLE_IPAD_LAUNCH_0:"APPLE_IPAD_LAUNCH_0",APPLE_IPAD_LAUNCH_1:"APPLE_IPAD_LAUNCH_1",APPLE_IPAD_LAUNCH_2:"APPLE_IPAD_LAUNCH_2",APPLE_IPAD_LAUNCH_3:"APPLE_IPAD_LAUNCH_3",TABLET_LAUNCH_1:"TABLET_LAUNCH_1",TABLET_LAUNCH_2:"TABLET_LAUNCH_2",TABLET_BACKGROUND_1:"TABLET_BACKGROUND_1",TABLET_BACKGROUND_2:"TABLET_BACKGROUND_2",ANDROID_ICON_0:"ANDROID_ICON_0",ANDROID_ICON_1:"ANDROID_ICON_1",ANDROID_ICON_2:"ANDROID_ICON_2",ANDROID_ICON_3:"ANDROID_ICON_3",APPLE_BUNDLE_ID:"APPLE_BUNDLE_ID",
ANDROID_PACKAGE:"ANDROID_PACKAGE",FB_SHARE_APP_ID:"FB_SHARE_APP_ID",FB_SHARE_APP_SECRET:"FB_SHARE_APP_SECRET",GOOGLE_TRACKER_ID:"GOOGLE_TRACKER_ID",FB_IOS_BUNDLE_ID:"FB_IOS_BUNDLE_ID",TWITTER_CONSUMER_KEY:"TWITTER_CONSUMER_KEY",TWITTER_CONSUMER_SECRET:"TWITTER_CONSUMER_SECRET",TWITTER_CONSUMER_CALL_BACK_URL:"TWITTER_CONSUMER_CALL_BACK_URL",BITLY_LOGIN:"BITLY_LOGIN",BITLY_KEY:"BITLY_KEY",FS_KEY:"FS_KEY",FS_RURL:"FS_RURL"};types.CIOverrideRefGroup={PLATFORM:"Platform"};types.StyleNames={ListItems:"ListItems",
CustomFields:"CustomFields",Content:"Content"};types.LayoutNames={ListItems:"LayoutListItems",CustomFields:"LayoutCustomFields",Content:"LayoutContent"};types.CIName={Logo:"Logo",Title:"Title",Icon:"Icon",Layout:"Layout",ContentSource:"Content Source",BannerSource:"BannerSource",BannerSource2:"BannerSource2",Background:"BACKGROUND"};types.CIOverrideFlags={None:0,HideInThisElement:1,HideInAllFollowElements:2,ShowInThisElement:3,ShowInAllFollowElements:4,Unknown:5};types.EModuleStatus={EMS_OK:0,EMS_EMPTY:1,
EMS_INIT:2,EMS_INVALID:3};types.EModulePosition={EMP_TOP:0,EMP_MAIN:1,EMP_BOTTOM:2};types.EModuleType={EMT_NAVIGATION:0,EMT_LOGO:1,EMT_MAIN:2,EMT_BANNER:3};types.EVIEW={HEADING:1,STARTUP:2,SHARE:3,BACK:4,SECTIONS:5};types.ECIFieldType={ChainType:"chainType",DataRef:"dataRef",Value:"value",Title:"title"};types.ECIType={BOOL:0,BOX:1,COLOUR:2,ENUMERATION:3,FILE:4,FLAGS:5,FLOAT:6,INTEGER:7,MATRIX:8,OBJECT:9,REFERENCE:10,QUATERNION:11,RECTANGLE:12,STRING:13,UNKNOWN:-1,VECTOR:14,VECTOR2D:15,VECTOR4D:16,
ICON:17,IMAGE:18,BANNER:19,LOGO:20,STRUCTURE:21,BANNER2:22,ICON_SET:23,END:24};types.BannerSourceType={Unknown:0,JoomlaSection:1,JoomlaCategory:2,FPSSCategory:3,JoomlaBannerCategory:4};types.RenderWidgets={PanelViewSimpleWidgetType:"dojox.mobile.View",PanelViewWidgetType:"dojox.mobile.ScrollableView",PanelFlatListWidgetType:"dojox.mobile.RoundRectList",PanelMultiListWidgetType:"dojox.mobile.EdgeToEdgeList"};types.EPanelType={UNKNOWN:-1,NAV:0,MAIN:1,INFO:2,FULL:3,CUSTOM_0:4,CUSTOM_1:5,CUSTOM_2:6,CUSTOM_3:7,
END:8};types.DataSourceType={JoomlaSQL:"JoomlaMySQL",JoomlaXML:"JoomlaXML",WordpresssXML:"WordpressXML",WordpresssMySQL:"WordpressMySQL",XAppConnect:"XAppConnect"};types.ECMTypes={Layout:0,ContentSource:1,BannerSource:2};types.ELayout={Icons:0,BottomTabs:1,TopTabs:2,List:3,AdobeEdge:4,HTML:5};types.TransportType={REST:0,REST_PROXY:1,JSONP:2,OFFLINE:3};types.SortField={TITLE:"title",TIME_MODIFIED:"modified",TIME_CREATED:"created",DISTANCE:"distance",VIEWS:"views",PRICE:"rawPrice"};types.EventKey={ORIENTATION_CHANGE:"onOrientationChanged",
SEARCH_OPEN:"onSearchOpened",SEARCH_CLOSED:"onSearchClosed",ON_DID_RENDER_LIST:"onDidRenderList",ON_DID_RENDER_CONTENT:"onDidRenderContent",ON_DID_RENDER_DATA:"onDidRenderData",ON_FORM_READY:"onFormReady",ON_ITEM_CLICK:"onItemClick"};types.ECMContentSourceType=types.sourceType;return types})},"xfile/views/FileSelectDialog":function(){define("xfile/views/FileSelectDialog",["dojo/_base/declare","dojo/_base/lang","xfile/views/FilePanel","./ActionDialog","xfile/factory"],function(declare,lang,FilePanel,
ActionDialog,factory){return declare("xfile.views.FileSelectDialog",[ActionDialog],{filePanel:null,filePanelOptions:null,openItem:function(){},_createFilePanel:function(title,url){var _defaultOptions={title:title||url||"./",url:url,closable:false,config:this.config||this.owner.config,className:"xfileContainerEmbedded filePanel",ctx:this.ctx,parentContainer:null,delegate:this,allowFiles:true,cookiePrefix:"middle",lazy:false,store:this.store||this.owner.store};if(this.filePanelOptions)lang.mixin(_defaultOptions,
this.filePanelOptions);this.filePanel=new FilePanel(_defaultOptions,dojo.doc.createElement("div"));this.containerNode.appendChild(this.filePanel.domNode);this.filePanel.startup()},initWithWithDestination:function(){this._createFilePanel(this.dst?this.dst.name:"",this.dst?this.dst.path:"");this.addActionButtons();this.fixHeight();this.resize()}})})},"dojox/mobile/Pane":function(){define("dojox/mobile/Pane",["dojo/_base/array","dojo/_base/declare","dijit/_Contained","dijit/_WidgetBase"],function(array,
declare,Contained,WidgetBase){return declare("dojox.mobile.Pane",[WidgetBase,Contained],{baseClass:"mblPane",buildRendering:function(){this.inherited(arguments);if(!this.containerNode)this.containerNode=this.domNode},resize:function(){array.forEach(this.getChildren(),function(child){if(child.resize)child.resize()})}})})},"dijit/form/ComboButton":function(){require({cache:{"url:dijit/form/templates/ComboButton.html":'\x3ctable class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tcellspacing\x3d\'0\' cellpadding\x3d\'0\' role\x3d"presentation"\n\t\x3e\x3ctbody role\x3d"presentation"\x3e\x3ctr role\x3d"presentation"\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitStretch dijitButtonNode" data-dojo-attach-point\x3d"buttonNode" data-dojo-attach-event\x3d"ondijitclick:__onClick,onkeydown:_onButtonKeyDown"\n\t\t\x3e\x3cdiv id\x3d"${id}_button" class\x3d"dijitReset dijitButtonContents"\n\t\t\tdata-dojo-attach-point\x3d"titleNode"\n\t\t\trole\x3d"button" aria-labelledby\x3d"${id}_label"\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitInline dijitIcon" data-dojo-attach-point\x3d"iconNode" role\x3d"presentation"\x3e\x3c/div\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitInline dijitButtonText" id\x3d"${id}_label" data-dojo-attach-point\x3d"containerNode" role\x3d"presentation"\x3e\x3c/div\n\t\t\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd id\x3d"${id}_arrow" class\x3d\'dijitReset dijitRight dijitButtonNode dijitArrowButton\'\n\t\t\tdata-dojo-attach-point\x3d"_popupStateNode,focusNode,_buttonNode"\n\t\t\tdata-dojo-attach-event\x3d"onkeydown:_onArrowKeyDown"\n\t\t\ttitle\x3d"${optionsTitle}"\n\t\t\trole\x3d"button" aria-haspopup\x3d"true"\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitArrowButtonInner" role\x3d"presentation"\x3e\x3c/div\n\t\t\t\x3e\x3cdiv class\x3d"dijitReset dijitArrowButtonChar" role\x3d"presentation"\x3e\x26#9660;\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd style\x3d"display:none !important;"\n\t\t\t\x3e\x3cinput ${!nameAttrSetting} type\x3d"${type}" value\x3d"${value}" data-dojo-attach-point\x3d"valueNode" role\x3d"presentation"\n\t\t\t\tdata-dojo-attach-event\x3d"onclick:_onClick"\n\t\t/\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/tbody\n\x3e\x3c/table\x3e\n'}});
define("dijit/form/ComboButton",["dojo/_base/declare","dojo/keys","../focus","./DropDownButton","dojo/text!./templates/ComboButton.html"],function(declare,keys,focus,DropDownButton,template){return declare("dijit.form.ComboButton",DropDownButton,{templateString:template,_setIdAttr:"",_setTabIndexAttr:["focusNode","titleNode"],_setTitleAttr:"titleNode",optionsTitle:"",baseClass:"dijitComboButton",cssStateNodes:{"buttonNode":"dijitButtonNode","titleNode":"dijitButtonContents","_popupStateNode":"dijitDownArrowButton"},
_focusedNode:null,_onButtonKeyDown:function(evt){if(evt.keyCode==keys[this.isLeftToRight()?"RIGHT_ARROW":"LEFT_ARROW"]){focus.focus(this._popupStateNode);evt.stopPropagation();evt.preventDefault()}},_onArrowKeyDown:function(evt){if(evt.keyCode==keys[this.isLeftToRight()?"LEFT_ARROW":"RIGHT_ARROW"]){focus.focus(this.titleNode);evt.stopPropagation();evt.preventDefault()}},focus:function(position){if(!this.disabled)focus.focus(position=="start"?this.titleNode:this._popupStateNode)}})})},"dojox/grid/cells/_base":function(){define("dojox/grid/cells/_base",
["dojo/_base/kernel","dojo/_base/declare","dojo/_base/lang","dojo/_base/event","dojo/_base/connect","dojo/_base/array","dojo/_base/sniff","dojo/dom","dojo/dom-attr","dojo/dom-construct","dijit/_Widget","../util"],function(dojo,declare,lang,event,connect,array,has,dom,domAttr,domConstruct,_Widget,util){var _DeferredTextWidget=declare("dojox.grid._DeferredTextWidget",_Widget,{deferred:null,_destroyOnRemove:true,postCreate:function(){if(this.deferred)this.deferred.addBoth(lang.hitch(this,function(text){if(this.domNode)this.domNode.innerHTML=
text}))}});var focusSelectNode=function(inNode){try{util.fire(inNode,"focus");util.fire(inNode,"select")}catch(e){}};var whenIdle=function(){setTimeout(lang.hitch.apply(dojo,arguments),0)};var BaseCell=declare("dojox.grid.cells._Base",null,{styles:"",classes:"",editable:false,alwaysEditing:false,formatter:null,defaultValue:"...",value:null,hidden:false,noresize:false,draggable:true,_valueProp:"value",_formatPending:false,constructor:function(inProps){this._props=inProps||{};lang.mixin(this,inProps);
if(this.draggable===undefined)this.draggable=true},_defaultFormat:function(inValue,callArgs){var s=this.grid.formatterScope||this;var f=this.formatter;if(f&&s&&typeof f=="string")f=this.formatter=s[f];var v=inValue!=this.defaultValue&&f?f.apply(s,callArgs):inValue;if(typeof v=="undefined")return this.defaultValue;if(v&&v.addBoth)v=new _DeferredTextWidget({deferred:v},domConstruct.create("span",{innerHTML:this.defaultValue}));if(v&&v.declaredClass&&v.startup)return"\x3cdiv class\x3d'dojoxGridStubNode' linkWidget\x3d'"+
v.id+"' cellIdx\x3d'"+this.index+"'\x3e"+this.defaultValue+"\x3c/div\x3e";return v},format:function(inRowIndex,inItem){var f,i=this.grid.edit.info,d=this.get?this.get(inRowIndex,inItem):this.value||this.defaultValue;d=d&&d.replace&&this.grid.escapeHTMLInData?d.replace(/&/g,"\x26amp;").replace(/</g,"\x26lt;"):d;if(this.editable&&(this.alwaysEditing||i.rowIndex==inRowIndex&&i.cell==this))return this.formatEditing(i.value?i.value:d,inRowIndex);else return this._defaultFormat(d,[d,inRowIndex,this])},
formatEditing:function(inDatum,inRowIndex){},getNode:function(inRowIndex){return this.view.getCellNode(inRowIndex,this.index)},getHeaderNode:function(){return this.view.getHeaderCellNode(this.index)},getEditNode:function(inRowIndex){return(this.getNode(inRowIndex)||0).firstChild||0},canResize:function(){var uw=this.unitWidth;return uw&&uw!=="auto"},isFlex:function(){var uw=this.unitWidth;return uw&&lang.isString(uw)&&(uw=="auto"||uw.slice(-1)=="%")},applyEdit:function(inValue,inRowIndex){if(this.getNode(inRowIndex))this.grid.edit.applyCellEdit(inValue,
this,inRowIndex)},cancelEdit:function(inRowIndex){this.grid.doCancelEdit(inRowIndex)},_onEditBlur:function(inRowIndex){if(this.grid.edit.isEditCell(inRowIndex,this.index))this.grid.edit.apply()},registerOnBlur:function(inNode,inRowIndex){if(this.commitOnBlur)connect.connect(inNode,"onblur",function(e){setTimeout(lang.hitch(this,"_onEditBlur",inRowIndex),250)})},needFormatNode:function(inDatum,inRowIndex){this._formatPending=true;whenIdle(this,"_formatNode",inDatum,inRowIndex)},cancelFormatNode:function(){this._formatPending=
false},_formatNode:function(inDatum,inRowIndex){if(this._formatPending){this._formatPending=false;if(!has("ie"))dom.setSelectable(this.grid.domNode,true);this.formatNode(this.getEditNode(inRowIndex),inDatum,inRowIndex)}},formatNode:function(inNode,inDatum,inRowIndex){if(has("ie"))whenIdle(this,"focus",inRowIndex,inNode);else this.focus(inRowIndex,inNode)},dispatchEvent:function(m,e){if(m in this)return this[m](e)},getValue:function(inRowIndex){return this.getEditNode(inRowIndex)[this._valueProp]},
setValue:function(inRowIndex,inValue){var n=this.getEditNode(inRowIndex);if(n)n[this._valueProp]=inValue},focus:function(inRowIndex,inNode){focusSelectNode(inNode||this.getEditNode(inRowIndex))},save:function(inRowIndex){this.value=this.value||this.getValue(inRowIndex)},restore:function(inRowIndex){this.setValue(inRowIndex,this.value)},_finish:function(inRowIndex){dom.setSelectable(this.grid.domNode,false);this.cancelFormatNode()},apply:function(inRowIndex){this.applyEdit(this.getValue(inRowIndex),
inRowIndex);this._finish(inRowIndex)},cancel:function(inRowIndex){this.cancelEdit(inRowIndex);this._finish(inRowIndex)}});BaseCell.markupFactory=function(node,cellDef){var formatter=lang.trim(domAttr.get(node,"formatter")||"");if(formatter)cellDef.formatter=lang.getObject(formatter)||formatter;var get=lang.trim(domAttr.get(node,"get")||"");if(get)cellDef.get=lang.getObject(get);var getBoolAttr=function(attr,cell,cellAttr){var value=lang.trim(domAttr.get(node,attr)||"");if(value)cell[cellAttr||attr]=
!(value.toLowerCase()=="false")};getBoolAttr("sortDesc",cellDef);getBoolAttr("editable",cellDef);getBoolAttr("alwaysEditing",cellDef);getBoolAttr("noresize",cellDef);getBoolAttr("draggable",cellDef);var value=lang.trim(domAttr.get(node,"loadingText")||domAttr.get(node,"defaultValue")||"");if(value)cellDef.defaultValue=value;var getStrAttr=function(attr,cell,cellAttr){var value=lang.trim(domAttr.get(node,attr)||"")||undefined;if(value)cell[cellAttr||attr]=value};getStrAttr("styles",cellDef);getStrAttr("headerStyles",
cellDef);getStrAttr("cellStyles",cellDef);getStrAttr("classes",cellDef);getStrAttr("headerClasses",cellDef);getStrAttr("cellClasses",cellDef)};var Cell=BaseCell.Cell=declare("dojox.grid.cells.Cell",BaseCell,{constructor:function(){this.keyFilter=this.keyFilter},keyFilter:null,formatEditing:function(inDatum,inRowIndex){this.needFormatNode(inDatum,inRowIndex);return'\x3cinput class\x3d"dojoxGridInput" type\x3d"text" value\x3d"'+inDatum+'"\x3e'},formatNode:function(inNode,inDatum,inRowIndex){this.inherited(arguments);
this.registerOnBlur(inNode,inRowIndex)},doKey:function(e){if(this.keyFilter){var key=String.fromCharCode(e.charCode);if(key.search(this.keyFilter)==-1)event.stop(e)}},_finish:function(inRowIndex){this.inherited(arguments);var n=this.getEditNode(inRowIndex);try{util.fire(n,"blur")}catch(e){}}});Cell.markupFactory=function(node,cellDef){BaseCell.markupFactory(node,cellDef);var keyFilter=lang.trim(domAttr.get(node,"keyFilter")||"");if(keyFilter)cellDef.keyFilter=new RegExp(keyFilter)};var RowIndex=BaseCell.RowIndex=
declare("dojox.grid.cells.RowIndex",Cell,{name:"Row",postscript:function(){this.editable=false},get:function(inRowIndex){return inRowIndex+1}});RowIndex.markupFactory=function(node,cellDef){Cell.markupFactory(node,cellDef)};var Select=BaseCell.Select=declare("dojox.grid.cells.Select",Cell,{options:null,values:null,returnIndex:-1,constructor:function(inCell){this.values=this.values||this.options},formatEditing:function(inDatum,inRowIndex){this.needFormatNode(inDatum,inRowIndex);var h=['\x3cselect class\x3d"dojoxGridSelect"\x3e'];
for(var i=0,o,v;(o=this.options[i])!==undefined&&(v=this.values[i])!==undefined;i++){v=v.replace?v.replace(/&/g,"\x26amp;").replace(/</g,"\x26lt;"):v;o=o.replace?o.replace(/&/g,"\x26amp;").replace(/</g,"\x26lt;"):o;h.push("\x3coption",inDatum==v?" selected":"",' value\x3d"'+v+'"',"\x3e",o,"\x3c/option\x3e")}h.push("\x3c/select\x3e");return h.join("")},_defaultFormat:function(inValue,callArgs){var v=this.inherited(arguments);if(!this.formatter&&this.values&&this.options){var i=array.indexOf(this.values,
v);if(i>=0)v=this.options[i]}return v},getValue:function(inRowIndex){var n=this.getEditNode(inRowIndex);if(n){var i=n.selectedIndex,o=n.options[i];return this.returnIndex>-1?i:o.value||o.innerHTML}}});Select.markupFactory=function(node,cell){Cell.markupFactory(node,cell);var options=lang.trim(domAttr.get(node,"options")||"");if(options){var o=options.split(",");if(o[0]!=options)cell.options=o}var values=lang.trim(domAttr.get(node,"values")||"");if(values){var v=values.split(",");if(v[0]!=values)cell.values=
v}};var AlwaysEdit=BaseCell.AlwaysEdit=declare("dojox.grid.cells.AlwaysEdit",Cell,{alwaysEditing:true,_formatNode:function(inDatum,inRowIndex){this.formatNode(this.getEditNode(inRowIndex),inDatum,inRowIndex)},applyStaticValue:function(inRowIndex){var e=this.grid.edit;e.applyCellEdit(this.getValue(inRowIndex),this,inRowIndex);e.start(this,inRowIndex,true)}});AlwaysEdit.markupFactory=function(node,cell){Cell.markupFactory(node,cell)};var Bool=BaseCell.Bool=declare("dojox.grid.cells.Bool",AlwaysEdit,
{_valueProp:"checked",formatEditing:function(inDatum,inRowIndex){return'\x3cinput class\x3d"dojoxGridInput" type\x3d"checkbox"'+(inDatum?' checked\x3d"checked"':"")+' style\x3d"width: auto" /\x3e'},doclick:function(e){if(e.target.tagName=="INPUT")this.applyStaticValue(e.rowIndex)}});Bool.markupFactory=function(node,cell){AlwaysEdit.markupFactory(node,cell)};return BaseCell})},"xfile/widgets/LayoutSelector":function(){define("xfile/widgets/LayoutSelector",["dojo/_base/declare","dojo/_base/html","dojo/dom-class",
"dojo/on","xide/widgets/TemplatedWidgetBase","xide/types"],function(declare,html,domClass,on,TemplatedWidgetBase,types){return dojo.declare("xfile.widgets.LayoutSelector",[TemplatedWidgetBase],{wButton:null,wThumb:null,wList:null,wTree:null,currentModeClass:"fileLayoutTreeIcon",layout:null,config:null,addJQueryClasses:true,templateString:"\x3cdiv\x3e\x3cdiv class\x3d'fileLayoutSelector' data-dojo-type\x3d'dijit.form.DropDownButton' data-dojo-props\x3d\"iconClass:'el-icon-th-list'\" data-dojo-attach-point\x3d'wButton'\x3e"+
"\x3cspan\x3e\x3c/span\x3e"+"\x3cdiv data-dojo-attach-point\x3d'menu' data-dojo-type\x3d'dijit.Menu' style\x3d'display: none;'\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.MenuItem' data-dojo-props\x3d\"iconClass:'el-icon-th-large'\" data-dojo-attach-point\x3d'wThumb'\x3eThumbs\x3c/div\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.MenuItem' data-dojo-props\x3d\"iconClass:'el-icon-lines'\" data-dojo-attach-point\x3d'wList'\x3eList\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",open:function(){this.wButton.domNode.focus();
this.wButton.openDropDown();var thiz=this;setTimeout(function(){thiz.wTree.focus()},0)},postMixInProperties:function(){this.inherited(arguments)},onModeChanged:function(mode,updateDelegate){var nextMode="";switch(mode){case types.FILE_PANEL_LAYOUT.TREE:nextMode="el-icon-delicious";break;case types.FILE_PANEL_LAYOUT.THUMB:nextMode="el-icon-th-large";break;case types.FILE_PANEL_LAYOUT.LIST:nextMode="el-icon-lines";break}this.wButton.set("iconClass",""+nextMode);if(updateDelegate===true)this.delegate.onLayoutModeChanged(mode);
this.currentModeClass=nextMode},createMenuItem:function(iconClass,label,mode){var item=new dijit.MenuItem({iconClass:iconClass,label:label,mode:mode});this.menu.addChild(item);var thiz=this;item.domNode.onclick=function(){thiz.onModeChanged(mode,true)};this.fixButton(item);return item},fixButton:function(button){if(button&&button.iconNode){domClass.remove(button.iconNode,"dijitReset");domClass.add(button.iconNode,"actionToolbarButtonElusive")}},startup:function(){this.inherited(arguments);if(this.layout!=
null)this.onModeChanged(this.layout,false);var thiz=this;dojo.connect(this.wThumb,"onClick",function(item){thiz.onModeChanged(types.FILE_PANEL_LAYOUT.THUMB)});this.wThumb.containerNode.onclick=function(){thiz.onModeChanged(types.FILE_PANEL_LAYOUT.THUMB,true)};this.wList.containerNode.onclick=function(){thiz.onModeChanged(types.FILE_PANEL_LAYOUT.LIST,true)};var hasTree=true;if(hasTree)this.wTree=this.createMenuItem("el-icon-delicious","Tree",types.FILE_PANEL_LAYOUT.TREE);dojo.connect(this.wList,"onClick",
function(item){thiz.onModeChanged(types.FILE_PANEL_LAYOUT.LIST,true)});if(this.addJQueryClasses){domClass.add(this.menu.containerNode,"ui-menu ui-widget ui-widget-content ui-corner-all");if(this.wThumb)domClass.add(this.wThumb.domNode,"ui-menu-item");if(this.wList)domClass.add(this.wList.domNode,"ui-menu-item")}this.fixButton(this.wButton);this.fixButton(this.wList);this.fixButton(this.wThumb)}})})},"xide/manager/ResourceManager":function(){define(["dojo/_base/declare","xide/manager/ServerActionBase"],
function(declare,ServerActionBase){return declare("xide.manager.ResourceManager",[ServerActionBase],{serviceClass:"XApp_Resource_Service",pathToResourceUrl:function(path){var hash={};hash[sctx.getSession().getAppId()]="%XAPP%";var res=xapp.utils.pathToResourceUrl(path,hash);if(res)return res.replace(/^\/|\/$/g,"");return null},updateResource:function(platform,path,resOld,resNew,readyCB){var thiz=this;var defered=this.serviceObject.updateResource(sctx.getSession().getUUID(),sctx.getSession().getAppId(),
platform||"",path||"",JSON.stringify(resOld),JSON.stringify(resNew));var cb=function(res){if(readyCB)readyCB(res)};defered.addCallback(cb)},removeResourceByPath:function(platform,path,resource,readyCB){var thiz=this;var defered=this.serviceObject.removeResource(sctx.getSession().getUUID(),sctx.getSession().getAppId(),platform||"",path||"",JSON.stringify(resource));var cb=function(res){if(readyCB)readyCB(res)};defered.addCallback(cb)},addResourceByPath:function(platform,path,resource,readyCB){var thiz=
this;var defered=this.serviceObject.addResource(sctx.getSession().getUUID(),sctx.getSession().getAppId(),platform||"",path||"",JSON.stringify(resource));var cb=function(res){if(readyCB)readyCB(res)};defered.addCallback(cb)},getResourceByPath:function(platform,path,readyCB){var thiz=this;var defered=this.serviceObject.getResource(sctx.getSession().getUUID(),sctx.getSession().getAppId(),platform||"",path||"");var cb=function(res){if(readyCB)readyCB(res)};defered.addCallback(cb)},getResourceTree:function(platform,
appName,readyCB){var thiz=this;var defered=this.serviceObject.getResourceTree(sctx.getSession().getUUID(),sctx.getSession().getAppId(),platform||"",appName||"");var cb=function(res){if(readyCB)readyCB(res)};defered.addCallback(cb)}})})},"xide/layout/TabContainer":function(){define(["dojo/_base/declare","dojo/_base/array","dojo/topic","dojo/dom-construct","xide/utils","dijit/layout/TabContainer","xide/factory","xide/types","dojox/layout/GridContainer","./ContentPane","dojo/dnd/Source","dojo/dnd/Target",
"dojo/dom-class","xide/layout/LayoutContainer","dojo/dom-geometry"],function(declare,array,topic,domConstruct,utils,TabContainer,factory,types,GridContainer,ContentPane,Source,Target,domClass,LayoutContainer,domGeometry){return declare("xide.layout.TabContainer",[TabContainer,LayoutContainer],{allowSplit:true,didSplit:false,selectedChildWidget:null,dndType:"TabContainer",splitColumns:2,gridContainer:null,activeTabContainer:null,destroyOnEmpty:true,otherTabContainer:null,sizeTarget:null,isSplitted:function(){return this.gridContainer!=
null},isEmpty:function(){return this.getChildren().length==0},_restoreSingle:function(){var fullContainer=this.isEmpty()===true?this.otherTabContainer:this;if(!fullContainer)return;var tmpPos=dojo.doc.createElement("div");dojo.place(fullContainer.domNode,tmpPos);utils.destroyWidget(this.gridContainer.containerNode);this.otherTabContainer=null;fullContainer.otherTabContainer=null;fullContainer.gridContainer=null;fullContainer.addSplitMenu();this.parentContainer.containerNode.appendChild(fullContainer.domNode);
var thiz=this;setTimeout(function(){factory.publish(types.EVENTS.RESIZE,{},this);fullContainer.selectedChildWidget.onResize();fullContainer.resize()},800);fullContainer.resize();utils.destroyWidget(this)},_checkEmpty:function(){var child=this.getChildren();if(child.length===0&&this.destroyOnEmpty)this._restoreSingle()},removeChild:function(page,checkEmpty){this.inherited(arguments);if(checkEmpty!==false)this._checkEmpty()},_createGridContainer:function(){var gc=new GridContainer({acceptTypes:[],hasResizableColumns:true,
nbZones:2,style:{height:"100%"},splitter:true});this.gridContainer=gc;return gc},updateSize:function(tabContainer,target){var children=tabContainer.getChildren();for(var i=0;i<children.length;i++){var pane=children[i];this.resizeToNode(this.sizeTarget,pane)}},resizeToNode:function(parent,what,offset){if(parent&&what&&what.containerNode){var size=domGeometry.getMarginBox(parent);var dstHeight=size.h;if(offset!=null)dstHeight-=offset;else dstHeight-=100;what.containerNode.style.height=dstHeight+"px"}},
resizeToNodeEx:function(parent,what,offset){if(parent&&what){var size=domGeometry.getMarginBox(parent);var dstHeight=size.h;if(offset!=null)dstHeight-=offset;else dstHeight-=100;what.style.height=dstHeight+"px"}},onResize:function(){return;if(!this.sizeTarget||!this.gridContainer)return;if(this.gridContainer.paneLeft)this.resizeToNode(this.gridContainer.paneLeft,this.sizeTarget);if(!this.isEmpty())this.updateSize(this,this.sizeTarget);if(this.gridContainer.paneRight)this.resizeToNode(this.gridContainer.paneRight,
this.sizeTarget);if(this.otherTabContainer)this.updateSize(this.otherTabContainer,this.sizeTarget)},splitVertical:function(w){try{var tmpPos=dojo.doc.createElement("div");dojo.place(this.domNode,tmpPos);var gridContainer=this._createGridContainer();utils.addChild(this.parentContainer,gridContainer);var paneLeft=new ContentPane({cssClass:"gridZoneWrapper"});var paneRight=new ContentPane({cssClass:"gridZoneWrapper"});gridContainer.addChild(paneLeft,0);gridContainer.addChild(paneRight,1);gridContainer.paneLeft=
paneLeft;gridContainer.paneRight=paneRight;paneLeft.containerNode.appendChild(this.domNode);gridContainer.disableDnd()}catch(e){debugger}factory.publish(types.EVENTS.RESIZE,{},this);var thiz=this;this.removeSplitMenu();var newTabContainer=new xide.layout.TabContainer({delegate:thiz.delegate,tabStrip:true,tabPosition:"top",splitter:true,region:"center",style:"width:inherit;height:inherit;",parentContainer:thiz.parentContainer,allowSplit:true,selfAccept:true,gridContainer:gridContainer,otherTabContainer:thiz},
dojo.doc.createElement("div"));thiz.otherTabContainer=newTabContainer;factory.publish(types.EVENTS.RESIZE,{},this);thiz.selectedChildWidget.onResize();var ori=thiz.selectedChildWidget;thiz.removeChild(thiz.selectedChildWidget,false);paneRight.containerNode.appendChild(newTabContainer.domNode);newTabContainer.startup();newTabContainer.addChild(ori);newTabContainer.selectedChildWidget=ori;thiz.makeDNDTarget(newTabContainer);thiz.makeDNDTarget(thiz);domClass.add(newTabContainer.domNode,"dojoDndItem");
domClass.add(thiz.domNode,"dojoDndItem");this.publish(types.EVENTS.RESIZE,{});this.onContainerSplitted(this,newTabContainer)},makeDNDTarget:function(tabContainer){var thiz=this;var dndTarget=dojo.dnd.Source(tabContainer.domNode,{className:"container",copyOnly:false,selfAccept:false,allowNested:false,occupied:false,sourceContainer:tabContainer,checkAcceptance:function(sources,nodes){return true},onDropExternal:function(source,nodes,copy){thiz.onDrop(source.sourceContainer,this.sourceContainer);return}})},
patchTabButton:function(child){var _id=this.id+"_tablist_"+child.id;var btn=dijit.registry.byId(_id);if(btn){btn.targetContainer=child;var dndTarget=Source(btn.domNode,{className:"container",copyOnly:false,selfAccept:false,allowNested:true,occupied:false,sourceContainer:this,checkAcceptance:function(sources,nodes){return true}})}},removeSplitMenu:function(){var menu=dijit.registry.byId(this.id+"_tablist_Menu");if(menu)if(menu["splitVerticalMenuItem"]){menu.removeChild(menu["splitVerticalMenuItem"]);
menu["splitVerticalMenuItem"]=null}},addSplitMenu:function(child){var menu=dijit.registry.byId(this.id+"_tablist_Menu");if(menu){var thiz=this;if(!menu["splitVerticalMenuItem"]){menu["splitVerticalMenuItem"]=new dijit.MenuItem({label:"Split Vertical",onClick:function(evt){thiz.splitVertical(dijit.registry.byNode(this.getParent().currentTarget))}});menu.addChild(menu["splitVerticalMenuItem"])}}},addChild:function(child,index,select){child.parentContainer=this;this.inherited(arguments);if(this.delegate&&
this.delegate.onChildAdded)this.delegate.onChildAdded(this,child);if(select===true){this.selectChild(child);this.onShowChild(child)}if(this.allowSplit){if(this.otherTabContainer==null)this.addSplitMenu();this.patchTabButton(child)}factory.publish(types.EVENTS.RESIZE,{},this)},onDrop:function(sourceTabContainer,dstTabContainer){var child=sourceTabContainer.selectedChildWidget;if(!child)return;try{sourceTabContainer.removeChild(child)}catch(e){console.error("error with removing child")}dstTabContainer.addChild(child);
dstTabContainer.selectChild(child);factory.publish(types.EVENTS.RESIZE,{},this)},startup:function(){this.inherited(arguments);var thiz=this;if(this.allowSplit){var dst=dojo.byId(this.id+"_tablist");if(dst)var dndTarget=dojo.dnd.Source(dst,{className:"container",copyOnly:false,selfAccept:false,allowNested:false,occupied:false,sourceContainer:this,checkAcceptance:function(sources,nodes){return true},onDropExternal:function(source,nodes,copy){thiz.onDrop(source.sourceContainer,this.sourceContainer);
return}})}domClass.add(this.containerNode,"ui-widget-content");dojo.connect(this,"removeChild",this,function(view){factory.publish(types.EVENTS.ON_VIEW_REMOVED,{container:this,view:view,owner:this.delegate})});dojo.connect(this.containerNode,"onclick",this,function(view){this.activeTabContainer=this});dojo.connect(this,"addChild",this,function(view){factory.publish(types.EVENTS.ON_VIEW_ADDED,{container:this,view:view,owner:this.delegate})});dojo.connect(null,dojo.global.onorientationchange!==undefined?
"onorientationchange":"onresize",this,function(){if(thiz.gridContainer)thiz.gridContainer.resize()});factory.subscribe(types.EVENTS.RESIZE,this.onResize,this)}})})},"xfile/widgets/Image":function(){define("xfile/widgets/Image",["dojo/_base/declare","dojo/dom-construct","xide/widgets/TemplatedWidgetBase","xapp/widgets/_CSSMixin","xapp/utils","xapp/factory","xide/types","dojo/dom-class"],function(declare,domConstruct,TemplatedWidgetBase,CSSMixin,utils,factory,types,LightboxDialog,domClass){return declare("xfile.widgets.Image",
[TemplatedWidgetBase,CSSMixin],{baseClass:"mediaImage",backgroundClass:"imageBackground",tag:"div",src:null,imageNode:null,layoutContainer:null,hasLightBox:true,lightbox:null,lightboxNano:true,templateString:"\x3cdiv\x3e\x3c/div\x3e",_openLightBox:function(href){var thiz=this;if(!this.lightboxNano){if(!this.lightbox){this.lightbox=new LightboxDialog({style:"margin-top:0px !important;",modal:true,_allowPassthru:true});this.lightbox.startup();this.lightbox.connect("onclick",function(){try{thiz.lightbox.hide()}catch(e){}})}this.lightbox.show({leaveTitle:true,
href:href,title:""});setTimeout(function(){thiz.lightbox.resize()},1500)}else;},_onImageLoaded:function(img,src){this.publish(types.EVENTS.IMAGE_LOADED,null,this)},_onImageError:function(img){if(img){utils.destroyWidget(img);this.publish(types.EVENTS.IMAGE_ERROR,null,this)}},buildRendering:function(){this.inherited(arguments);this.domNode=domConstruct.create(this.tag,{className:this.backgroundClass})},startup:function(){var thiz=this;if(!this.imageNode){this.imageNode=domConstruct.create("img",{className:this.baseClass+
"",src:this.src},this.domNode);this.imageNode["onload"]=function(){thiz._onImageLoaded(thiz.imageNode,thiz.src)};this.imageNode["onerror"]=function(){thiz._onImageError(thiz.imageNode)}}}})})},"put-selector/put":function(){(function(define){var forDocument,fragmentFasterHeuristic=/[-+,> ]/;define("put-selector/put",[],forDocument=function(doc,newFragmentFasterHeuristic){fragmentFasterHeuristic=newFragmentFasterHeuristic||fragmentFasterHeuristic;var selectorParse=/(?:\s*([-+ ,<>]))?\s*(\.|!\.?|#)?([-\w%$|]+)?(?:\[([^\]=]+)=?['"]?([^\]'"]*)['"]?\])?/g,
undefined,namespaceIndex,namespaces=false,doc=doc||document,ieCreateElement=typeof doc.createElement=="object";function insertTextNode(element,text){element.appendChild(doc.createTextNode(text))}function put(topReferenceElement){var fragment,lastSelectorArg,nextSibling,referenceElement,current,args=arguments,returnValue=args[0];function insertLastElement(){if(current&&referenceElement&&current!=referenceElement)(referenceElement==topReferenceElement&&(fragment||(fragment=fragmentFasterHeuristic.test(argument)&&
doc.createDocumentFragment()))?fragment:referenceElement).insertBefore(current,nextSibling||null)}for(var i=0;i<args.length;i++){var argument=args[i];if(typeof argument=="object"){lastSelectorArg=false;if(argument instanceof Array){current=doc.createDocumentFragment();for(var key=0;key<argument.length;key++)current.appendChild(put(argument[key]));argument=current}if(argument.nodeType){current=argument;insertLastElement();referenceElement=argument;nextSibling=0}else for(var key in argument)current[key]=
argument[key]}else if(lastSelectorArg){lastSelectorArg=false;insertTextNode(current,argument)}else{if(i<1)topReferenceElement=null;lastSelectorArg=true;if(argument==null){console.error("put argument error");return}var leftoverCharacters=argument.replace(selectorParse,function(t,combinator,prefix,value,attrName,attrValue){if(combinator){insertLastElement();if(combinator=="-"||combinator=="+"){referenceElement=(nextSibling=current||referenceElement).parentNode;current=null;if(combinator=="+")nextSibling=
nextSibling.nextSibling}else{if(combinator=="\x3c")referenceElement=current=(current||referenceElement).parentNode;else{if(combinator==",")referenceElement=topReferenceElement;else if(current)referenceElement=current;current=null}nextSibling=0}if(current)referenceElement=current}var tag=!prefix&&value;if(tag||!current&&(prefix||attrName))if(tag=="$")insertTextNode(referenceElement,args[++i]);else{tag=tag||put.defaultTag;var ieInputName=ieCreateElement&&args[i+1]&&args[i+1].name;if(ieInputName)tag=
"\x3c"+tag+' name\x3d"'+ieInputName+'"\x3e';current=namespaces&&~(namespaceIndex=tag.indexOf("|"))?doc.createElementNS(namespaces[tag.slice(0,namespaceIndex)],tag.slice(namespaceIndex+1)):doc.createElement(tag)}if(prefix){if(value=="$")value=args[++i];if(prefix=="#")current.id=value;else{var currentClassName=current.className;var removed=currentClassName&&(" "+currentClassName+" ").replace(" "+value+" "," ");if(prefix==".")current.className=currentClassName?(removed+value).substring(1):value;else if(argument==
"!"){var parentNode;if(ieCreateElement)put("div",current,"\x3c").innerHTML="";else if(parentNode=current.parentNode)parentNode.removeChild(current)}else{removed=removed.substring(1,removed.length-1);if(removed!=currentClassName)current.className=removed}}}if(attrName){if(attrValue=="$")attrValue=args[++i];if(attrName=="style")current.style.cssText=attrValue;else{var method=attrName.charAt(0)=="!"?(attrName=attrName.substring(1))&&"removeAttribute":"setAttribute";attrValue=attrValue===""?attrName:
attrValue;namespaces&&~(namespaceIndex=attrName.indexOf("|"))?current[method+"NS"](namespaces[attrName.slice(0,namespaceIndex)],attrName.slice(namespaceIndex+1),attrValue):current[method](attrName,attrValue)}}return""});if(leftoverCharacters)throw new SyntaxError("Unexpected char "+leftoverCharacters+" in "+argument);insertLastElement();referenceElement=returnValue=current||referenceElement}}if(topReferenceElement&&fragment)topReferenceElement.appendChild(fragment);return returnValue}put.addNamespace=
function(name,uri){if(doc.createElementNS)(namespaces||(namespaces={}))[name]=uri;else doc.namespaces.add(name,uri)};put.defaultTag="div";put.forDocument=forDocument;return put})})(function(id,deps,factory){factory=factory||deps;if(typeof define==="function")define([],function(){return factory()});else if(typeof window=="undefined")require("./node-html")(module,factory);else put=factory()})},"xfile/views/_KeyNavMixin":function(){define("xfile/views/_KeyNavMixin",["dojo/_base/array","dojo/_base/declare",
"dojo/dom-attr","dojo/keys","dojo/_base/lang","dojo/on","dijit/registry","dijit/_FocusMixin","xide/utils"],function(array,declare,domAttr,keys,lang,on,registry,_FocusMixin,utils){return declare("dijit._KeyNavMixin",_FocusMixin,{tabIndex:"0",childSelector:null,postCreate:function(){this.inherited(arguments);domAttr.set(this.domNode,"tabIndex",this.tabIndex);if(!this._keyNavCodes){var keyCodes=this._keyNavCodes={};keyCodes[keys.UP_ARROW]=lang.hitch(this,"_onUpArrow");keyCodes[keys.DOWN_ARROW]=lang.hitch(this,
"_onDownArrow")}var self=this,childSelector=typeof this.childSelector=="string"?this.childSelector:lang.hitch(this,"childSelector");this.own(on(this.domNode,"keypress",lang.hitch(this,"_onContainerKeypress")),on(this.domNode,"keydown",lang.hitch(this,"_onContainerKeydown")),on(this.domNode,"focus",lang.hitch(this,"_onContainerFocus")),on(this.containerNode,on.selector(childSelector,"focusin"),function(evt){}))},_onLeftArrow:function(){},_onRightArrow:function(){},_onUpArrow:function(){},_onDownArrow:function(){},
focus:function(){this.focusFirstChild()},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1)},_getLastFocusableChild:function(){return this._getNextFocusableChild(null,-1)},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild())},focusLastChild:function(){this.focusChild(this._getLastFocusableChild())},focusChild:function(widget,last){if(!widget)return;if(this.focusedChildNode&&widget!==this.focusedChildNode)this._onChildBlur(this.focusedChildNode);if(widget.set)widget.set("tabIndex",
this.tabIndex);else;if(widget.focus)widget.focus(last?"end":"start")},_onContainerFocus:function(evt){if(evt.target!==this.domNode||this.focusedChildNode)return;this.focus()},_onFocus:function(){domAttr.set(this.domNode,"tabIndex","-1");this.inherited(arguments)},_onBlur:function(evt){domAttr.set(this.domNode,"tabIndex",this.tabIndex);if(this.focusedChildNode&&this.focusedChildNode.set){this.focusedChildNode.set("tabIndex","-1");this.lastFocusedChild=this.focusedChildNode;this._set("focusedChild",
null)}this.inherited(arguments)},_onChildFocus:function(child){if(child&&child!=this.focusedChildNode){if(this.focusedChildNode&&!this.focusedChildNode._destroyed)this.focusedChildNode.set("tabIndex","-1");child.set("tabIndex",this.tabIndex);this.lastFocused=child;this._set("focusedChild",child)}},_searchString:"",multiCharSearchDuration:1E3,onKeyboardSearch:function(item,evt,searchString,numMatches){if(item)this.focusChild(item)},_keyboardSearchCompare:function(item,searchString){var element=item;
if(item&&!item.data){var row=this.grid.row(item);if(row)item["data"]=row.data}var text=item?item.data?item.data.name:"":"";var currentString=text.replace(/^\s+/,"").substr(0,searchString.length).toLowerCase();var res=!!searchString.length&&currentString==searchString?-1:0;return res},_onContainerKeydown:function(evt){var func=this._keyNavCodes[evt.keyCode];if(func){func(evt,this.focusedChild);evt.stopPropagation();evt.preventDefault();this._searchString=""}else if(evt.keyCode==keys.SPACE&&this._searchTimer&&
!(evt.ctrlKey||evt.altKey||evt.metaKey)){evt.stopImmediatePropagation();evt.preventDefault();on.emit(this.domNode,"keypress",{charCode:keys.SPACE,cancelable:true,bubbles:true})}},_onContainerKeypress:function(evt){if(this.editing)return;if(evt.charCode<32)return;if(evt.ctrlKey||evt.altKey)return;var matchedItem=null,searchString,numMatches=0,search=lang.hitch(this,function(){if(this._searchTimer)this._searchTimer.remove();this._searchString+=keyChar;var allSameLetter=/^(.)\1*$/.test(this._searchString);
var searchLen=allSameLetter?1:this._searchString.length;searchString=this._searchString.substr(0,searchLen);this._searchTimer=this.defer(function(){this._searchTimer=null;this._searchString=""},this.multiCharSearchDuration);var currentItem=this.focusedChildNode||this.focusedChild||null;if(searchLen==1||!currentItem){currentItem=this._getNextFocusableChild(currentItem,1);if(!currentItem)return}var stop=currentItem;var idx=0;do{var rc=this._keyboardSearchCompare(currentItem,searchString);if(!!rc&&numMatches++==
0)matchedItem=currentItem;if(rc==-1){numMatches=-1;break}currentItem=this._getNextFocusableChild(currentItem,1)}while(currentItem!=stop)}),keyChar=String.fromCharCode(evt.charCode).toLowerCase();evt.preventDefault();evt.stopPropagation();search();this.onKeyboardSearch(matchedItem,evt,searchString,numMatches)},_onChildBlur:function(){},_getNextFocusableChild:function(child,dir){var wrappedValue=child;do{if(!child){child=this[dir>0?"_getFirst":"_getLast"]();if(!child)break}else{if(child&&child.node){var innerNode=
utils.find(".dgrid-cell",child.node,true);if(innerNode)child=innerNode}child=this._getNext(child,dir)}if(child!=null&&child!=wrappedValue)return child}while(child!=wrappedValue);return null},_getFirst:function(){var innerNode=utils.find(".dgrid-row",this.grid.domNode,true);if(innerNode){var innerNode0=utils.find(".dgrid-cell",innerNode,true);if(innerNode0)return innerNode0}return innerNode},_getLast:function(){var innerNode=utils.find(".dgrid-row",this.grid.domNode,false);if(innerNode){var innerNode0=
utils.find(".dgrid-cell",innerNode,true);if(innerNode0)return innerNode0}return null;return null},_getPrev:function(child,dir){if(child){var w=this.grid.up(child,1,true);if(w){var data=null;if(w.data)data=w.data;if(w.element)w=w.element;var innerNode=utils.find(".dgrid-cell",w,true);if(innerNode){if(!innerNode.data)innerNode["data"]=data;return innerNode}return w}}return null},_getNext:function(child,dir){if(child){var w=this.grid.down(child,1,true);if(w){var data=null;if(w.data)data=w.data;if(w.element)w=
w.element;var innerNode=utils.find(".dgrid-cell",w,true);if(innerNode){if(!innerNode.data)innerNode["data"]=data;return innerNode}return w}}return null}})})},"cbtree/data/util/filter":function(){define("cbtree/data/util/filter",["dojo/_base/lang"],function(lang){var filter={};filter.patternToRegExp=function(pattern,ignoreCase){if(pattern.charAt(0)=="("&&pattern.charAt(pattern.length-1)==")")var rxp=pattern.substr(1,pattern.length-2);else{var rxp="^";var c=null;for(var i=0;i<pattern.length;i++){c=
pattern.charAt(i);switch(c){case "\\":rxp+=c;i++;rxp+=pattern.charAt(i);break;case "*":rxp+=".*";break;case "?":rxp+=".";break;case "$":case "^":case "/":case "+":case ".":case "|":case "(":case ")":case "{":case "}":case "[":case "]":rxp+="\\";default:rxp+=c}}rxp+="$"}if(ignoreCase)return new RegExp(rxp,"mi");else return new RegExp(rxp,"m")};return filter})},"dijit/layout/StackContainer":function(){define("dijit/layout/StackContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class",
"dojo/dom-construct","dojo/has","dojo/_base/lang","dojo/on","dojo/ready","dojo/topic","dojo/when","../registry","../_WidgetBase","./_LayoutWidget","dojo/i18n!../nls/common"],function(array,cookie,declare,domClass,domConstruct,has,lang,on,ready,topic,when,registry,_WidgetBase,_LayoutWidget){if(has("dijit-legacy-requires"))ready(0,function(){var requires=["dijit/layout/StackController"];require(requires)});var StackContainer=declare("dijit.layout.StackContainer",_LayoutWidget,{doLayout:true,persist:false,
baseClass:"dijitStackContainer",buildRendering:function(){this.inherited(arguments);domClass.add(this.domNode,"dijitLayoutContainer")},postCreate:function(){this.inherited(arguments);this.own(on(this.domNode,"keydown",lang.hitch(this,"_onKeyDown")))},startup:function(){if(this._started)return;var children=this.getChildren();array.forEach(children,this._setupChild,this);if(this.persist)this.selectedChildWidget=registry.byId(cookie(this.id+"_selectedChild"));else array.some(children,function(child){if(child.selected)this.selectedChildWidget=
child;return child.selected},this);var selected=this.selectedChildWidget;if(!selected&&children[0]){selected=this.selectedChildWidget=children[0];selected.selected=true}topic.publish(this.id+"-startup",{children:children,selected:selected,textDir:this.textDir});this.inherited(arguments)},resize:function(){if(!this._hasBeenShown){this._hasBeenShown=true;var selected=this.selectedChildWidget;if(selected)this._showChild(selected)}this.inherited(arguments)},_setupChild:function(child){var childNode=child.domNode,
wrapper=domConstruct.place("\x3cdiv role\x3d'tabpanel' class\x3d'"+this.baseClass+"ChildWrapper'\x3e",child.domNode,"replace"),label=child["aria-label"]||child.title||child.label;if(label)wrapper.setAttribute("aria-label",label);domConstruct.place(childNode,wrapper);child._wrapper=wrapper;this.inherited(arguments);domClass.replace(wrapper,"dijitHidden","dijitVisible");if(childNode.style.display=="none")childNode.style.display="block";child.domNode.title=""},addChild:function(child,insertIndex){this.inherited(arguments);
if(this._started){topic.publish(this.id+"-addChild",child,insertIndex);this.layout();if(!this.selectedChildWidget)this.selectChild(child)}},removeChild:function(page){var idx=array.indexOf(this.getChildren(),page);this.inherited(arguments);domConstruct.destroy(page._wrapper);delete page._wrapper;if(this._started)topic.publish(this.id+"-removeChild",page);if(this._descendantsBeingDestroyed)return;if(this.selectedChildWidget===page){this.selectedChildWidget=undefined;if(this._started){var children=
this.getChildren();if(children.length)this.selectChild(children[Math.max(idx-1,0)])}}if(this._started)this.layout()},selectChild:function(page,animate){var d;page=registry.byId(page);if(this.selectedChildWidget!=page){d=this._transition(page,this.selectedChildWidget,animate);this._set("selectedChildWidget",page);topic.publish(this.id+"-selectChild",page);if(this.persist)cookie(this.id+"_selectedChild",this.selectedChildWidget.id)}return when(d||true)},_transition:function(newWidget,oldWidget){if(oldWidget)this._hideChild(oldWidget);
var d=this._showChild(newWidget);if(newWidget.resize)if(this.doLayout)newWidget.resize(this._containerContentBox||this._contentBox);else newWidget.resize();return d},_adjacent:function(forward){var children=this.getChildren();var index=array.indexOf(children,this.selectedChildWidget);index+=forward?1:children.length-1;return children[index%children.length]},forward:function(){return this.selectChild(this._adjacent(true),true)},back:function(){return this.selectChild(this._adjacent(false),true)},_onKeyDown:function(e){topic.publish(this.id+
"-containerKeyDown",{e:e,page:this})},layout:function(){var child=this.selectedChildWidget;if(child&&child.resize)if(this.doLayout)child.resize(this._containerContentBox||this._contentBox);else child.resize()},_showChild:function(page){var children=this.getChildren();page.isFirstChild=page==children[0];page.isLastChild=page==children[children.length-1];page._set("selected",true);domClass.replace(page._wrapper,"dijitVisible","dijitHidden");return page._onShow&&page._onShow()||true},_hideChild:function(page){page._set("selected",
false);domClass.replace(page._wrapper,"dijitHidden","dijitVisible");page.onHide&&page.onHide()},closeChild:function(page){var remove=page.onClose&&page.onClose(this,page);if(remove){this.removeChild(page);page.destroyRecursive()}},destroyDescendants:function(preserveDom){this._descendantsBeingDestroyed=true;this.selectedChildWidget=undefined;array.forEach(this.getChildren(),function(child){if(!preserveDom)this.removeChild(child);child.destroyRecursive(preserveDom)},this);this._descendantsBeingDestroyed=
false}});StackContainer.ChildWidgetProperties={selected:false,disabled:false,closable:false,iconClass:"dijitNoIcon",showTitle:true};lang.extend(_WidgetBase,StackContainer.ChildWidgetProperties);return StackContainer})},"xide/views/_EditorBase":function(){define(["dojo/_base/declare","dojo/_base/lang","dojo/_base/connect"],function(declare,lang,connect){return declare("xide.views._EditorBase",null,{storeDelegate:null,content:null,item:null,ctrlDown:false,getEditor:function(){return this},focus:function(){this.getEditor().focus()},
getContent:function(onSuccess,onError){if(!this.storeDelegate){if(onError)onError("Editor::getContent : Have no store delegate!")}else this.storeDelegate.getContent(onSuccess)},saveContent:function(onSuccess,onError){var _value=this.getValue();if(!_value)0&&console.log("Editor::saveContent : Have nothing to save, editor seems empty");if(!this.storeDelegate){if(onError)onError("Editor::saveContent : Have no store delegate!")}else this.storeDelegate.saveContent(_value,onSuccess)},setupKeyboard:function(){var thiz=
this;connect.connect(this.containerNode,"onclick",function(evt){thiz.focus()});connect.connect(this.domNode,"onkeyup",function(evt){if(evt.keyCode==17)thiz.ctrlDown=false});connect.connect(this.domNode,"onkeydown",function(evt){if(evt.keyCode==17)thiz.ctrlDown=true;if(thiz.ctrlDown&&evt.keyCode==83){evt.preventDefault();thiz.saveContent()}})},startup:function(){this.inherited(arguments);this.setupKeyboard()}})})},"xfile/views/FilePropertyView":function(){define("xfile/views/FilePropertyView",["dojo/_base/array",
"dojo/_base/declare","dojo/_base/html","dojo/_base/connect","dojo/dom-construct","dojo/on","dojo/_base/lang","dojo/dom-geometry","dojo/dom-class","xide/widgets/TemplatedWidgetBase","xide/utils","xide/types","xide/factory","xfile/widgets/FileProperties"],function(array,declare,html,connect,domConstruct,on,lang,domGeometry,domClass,TemplatedWidgetBase,utils,types,factory,FileProperties){return dojo.declare("xfile.views.FilePropertyView",[TemplatedWidgetBase],{root:null,iconNode:null,theme:"/default/",
themeRoot:null,icon:null,fileProperties:null,propsNode:null,getThemePath:function(){return this.themeRoot+this.theme},templateString:"\x3cdiv\x3e\x3cdiv class\x3d'rootNode' data-dojo-attach-point\x3d'root'\x3e"+"\x3cdiv class\x3d'propertyHeader'\x3e\x3c/div\x3e"+"\x3cdiv class\x3d'iconNode' data-dojo-attach-point\x3d'iconNode'\x3e\x3c/div\x3e"+"\x3chr/\x3e"+"\x3cdiv class\x3d'propertyNode' data-dojo-attach-point\x3d'propsNode'\x3e\x3c/div\x3e"+"\x3chr/\x3e"+"\x3c/div\x3e",getImageUrl:function(item){if(this.delegate&&
this.delegate.getImageUrl)return this.delegate.getImageUrl(item);return null},renderIcon:function(icon){if(this.icon)utils.destroyWidget(this.icon);var allowCache=false;if(!allowCache)icon+="?time\x3d"+(new Date).getTime();var image=new xfile.widgets.Image({src:icon,backgroundClass:"filePropertyMimeIcon"},dojo.doc.createElement("div"));this.iconNode.appendChild(image.domNode);image.startup();this.icon=image},renderProps:function(item){if(this.fileProperties)utils.destroyWidget(this.fileProperties);
var props=new FileProperties({item:item},dojo.doc.createElement("div"));this.propsNode.appendChild(props.domNode);props.startup();this.fileProperties=props},initWithItem:function(obj){if(this.item==obj)return;this.item=obj;var icon=""+obj.icon;if(obj&&obj.directory!=null&&obj.directory===true)icon=this.getThemePath()+"/images/mimes/64/folder.png";else if(obj.directory==null){var imageClass="";if(utils.isImage(obj.path)){var url=this.getImageUrl(obj);if(url)icon=url;else utils.cleanUrl(this.webRoot+
"/"+obj.path)}else icon=this.getThemePath()+"/images/mimes/64/"+utils.getIcon(obj.path)}this.renderIcon(icon);try{this.renderProps(obj)}catch(e){console.error("error in file property view : "+e.message)}},onItemSelected:function(data){try{if(data&&data.item){var item=data.item;this.initWithItem(item)}}catch(e){}},startup:function(){if(this.didStartup)return;this.inherited(arguments);this.didStartup=true;var thiz=this;factory.subscribe(types.EVENTS.ITEM_SELECTED,function(data){thiz.onItemSelected(data)},
this)}})})},"dojo/_base/connect":function(){define(["./kernel","../on","../topic","../aspect","./event","../mouse","./sniff","./lang","../keys"],function(dojo,on,hub,aspect,eventModule,mouse,has,lang){has.add("events-keypress-typed",function(){var testKeyEvent={charCode:0};try{testKeyEvent=document.createEvent("KeyboardEvent");(testKeyEvent.initKeyboardEvent||testKeyEvent.initKeyEvent).call(testKeyEvent,"keypress",true,true,null,false,false,false,false,9,3)}catch(e){}return testKeyEvent.charCode==
0&&!has("opera")});function connect_(obj,event,context,method,dontFix){method=lang.hitch(context,method);if(!obj||!(obj.addEventListener||obj.attachEvent))return aspect.after(obj||dojo.global,event,method,true);if(typeof event=="string"&&event.substring(0,2)=="on")event=event.substring(2);if(!obj)obj=dojo.global;if(!dontFix)switch(event){case "keypress":event=keypress;break;case "mouseenter":event=mouse.enter;break;case "mouseleave":event=mouse.leave;break}return on(obj,event,method,dontFix)}var _punctMap=
{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39,229:113};var evtCopyKey=has("mac")?"metaKey":"ctrlKey";var _synthesizeEvent=function(evt,props){var faux=lang.mixin({},evt,props);setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault()};faux.stopPropagation=function(){evt.stopPropagation()};return faux};function setKeyChar(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode}var keypress;if(has("events-keypress-typed")){var _trySetKeyCode=
function(e,code){try{return e.keyCode=code}catch(e){return 0}};keypress=function(object,listener){var keydownSignal=on(object,"keydown",function(evt){var k=evt.keyCode;var unprintable=k!=13&&k!=32&&(k!=27||!has("ie"))&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222)&&k!=229;if(unprintable||evt.ctrlKey){var c=unprintable?0:k;if(evt.ctrlKey)if(k==3||k==13)return listener.call(evt.currentTarget,evt);else if(c>95&&c<106)c-=48;else if(!evt.shiftKey&&c>=65&&c<=90)c+=32;else c=_punctMap[c]||
c;var faux=_synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});listener.call(evt.currentTarget,faux);if(has("ie"))_trySetKeyCode(evt,faux.keyCode)}});var keypressSignal=on(object,"keypress",function(evt){var c=evt.charCode;c=c>=32?c:0;evt=_synthesizeEvent(evt,{charCode:c,faux:true});return listener.call(this,evt)});return{remove:function(){keydownSignal.remove();keypressSignal.remove()}}}}else if(has("opera"))keypress=function(object,listener){return on(object,"keypress",function(evt){var c=
evt.which;if(c==3)c=99;c=c<32&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90)c+=32;return listener.call(this,_synthesizeEvent(evt,{charCode:c}))})};else keypress=function(object,listener){return on(object,"keypress",function(evt){setKeyChar(evt);return listener.call(this,evt)})};var connect={_keypress:keypress,connect:function(obj,event,context,method,dontFix){var a=arguments,args=[],i=0;args.push(typeof a[0]=="string"?null:a[i++],a[i++]);var a1=a[i+1];args.push(typeof a1=="string"||
typeof a1=="function"?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++)args.push(a[i]);return connect_.apply(this,args)},disconnect:function(handle){if(handle)handle.remove()},subscribe:function(topic,context,method){return hub.subscribe(topic,lang.hitch(context,method))},publish:function(topic,args){return hub.publish.apply(hub,[topic].concat(args))},connectPublisher:function(topic,obj,event){var pf=function(){connect.publish(topic,arguments)};return event?connect.connect(obj,event,pf):connect.connect(obj,
pf)},isCopyKey:function(e){return e[evtCopyKey]}};connect.unsubscribe=connect.disconnect;1&&lang.mixin(dojo,connect);return connect})},"dojox/mobile/transition":function(){define("dojox/mobile/transition",["dojo/_base/Deferred","dojo/_base/config"],function(Deferred,config){if(config["mblCSS3Transition"]){var transitDeferred=new Deferred;require([config["mblCSS3Transition"]],function(transit){transitDeferred.resolve(transit)});return transitDeferred}return null})},"cbtree/extensions/TreeStyling":function(){define("cbtree/extensions/TreeStyling",
["module","dojo/_base/lang","dojo/aspect","dojo/dom-class","dojo/dom-prop","dojo/dom-style","dijit/Tree","../errors/createError!../errors/CBTErrors.json"],function(module,lang,aspect,domClass,domProp,domStyle,Tree,createError){var CBTError=createError(module.id);var C_WILDCARD="*";var _DSID="__DEFAULT";function isEmpty(o){for(var prop in o)if(o.hasOwnProperty(prop))return false;return true}function isObject(any){return any&&Object.prototype.toString.call(any)=="[object Object]"}Tree._TreeNode.extend({_applyClassAndStyle:function(item,
attribute){var currClass,newClass,newStyle,className,styleName,nodeName;className=attribute+"Class";styleName=attribute+"Style";nodeName=attribute+"Node";currClass=domProp.get(this[nodeName],"className");newClass=this.tree.get(className,this.item,this.isExpanded,this)||currClass;if(currClass!==newClass){domClass.replace(this[nodeName],newClass,currClass||"");this[className]=newClass}if(isEmpty(this[styleName]))newStyle=this.tree.get(styleName,this.item,this.isExpanded)||{};else newStyle=this[styleName];
domStyle.set(this[nodeName],newStyle);this[styleName]=newStyle},_set_icon_Attr:function(icon){if(icon.iconClass){this._set_iconClass_Attr(icon.iconClass);this.icon=icon}},_set_iconClass_Attr:function(cssClass){if(cssClass&&cssClass!==this.iconClass){domClass.replace(this.iconNode,cssClass,this.iconClass||"");this._applyClassAndStyle(this.item,"icon")}},_set_styling_Attr:function(newValue){this._updateItemClasses(this.item)},_setIconStyleAttr:function(style){this.iconStyle=style;this._applyClassAndStyle(this.item,
"icon")},_setLabelStyleAttr:function(style){this.labelStyle=style;this._applyClassAndStyle(this.item,"label")},_setRowStyleAttr:function(style){this.rowStyle=style;this._applyClassAndStyle(this.item,"row")}});Tree.extend({_hasStyling:true,_icon:null,_iconAttr:null,_itemStyleMap:{},_itemAttr:["icon","label","row"],_typeAttr:["Class","Style"],_dijitIconClasses:["dijitFolderOpened","dijitFolderClosed","dijitLeaf"],iconClass:"",_getBaseClass:function(nodeWidget){var classNames=nodeWidget?domProp.get(nodeWidget["iconNode"],
"className"):"";var classes,index,i;var baseClass="";classes=lang.trim(classNames).split(/\s+/);if(classes[0]){for(i=0;i<this._dijitIconClasses.length;i++){index=classes.indexOf(this._dijitIconClasses[i]);if(index!=-1)classes.splice(index,1)}baseClass=classes.toString()}return baseClass.replace(/,/g," ")},_getClassOrStyle:function(item,attr,type){var name=attr+type;if(this._itemAttr.indexOf(attr)!=-1&&this._typeAttr.indexOf(type)!=-1){var styling=this._getItemStyling(item);return styling[attr][attr+
type]}throw new CBTError("InvalidProperty","getClassOrStyle");},_getHasTreeSytlingAttr:function(){return this._hasStyling},_getItemStyling:function(item){if(!this._connected)this._connectModel();if(lang.isObject(item)){var identity=item?this.model.getIdentity(item):_DSID;var styling=this._itemStyleMap[identity];if(!styling){styling=this._getTreeStyling();if(this._icon)styling.icon=this._icon;this._itemStyleMap[identity]=styling}return styling}throw new CBTError("InvalidType","getItemStyling");},_getTreeStyling:function(){var treeStyle=
this._itemStyleMap[_DSID]||{};if(isEmpty(treeStyle)){this._itemAttr.forEach(function(attr){treeStyle[attr]=this._initStyleElement(attr)},this);treeStyle.defStyle=true}return lang.clone(treeStyle)},_initStyleElement:function(attr){var element={},type;this._typeAttr.forEach(function(type){element[attr+type]=null},this);return element},_setAllItems:function(args,onItem,onComplete,scope){var onItemArgs=args?args instanceof Array?args:this._object2Array(args):[];var identity;onItemArgs.unshift(null);for(identity in this._itemStyleMap){onItemArgs[0]=
this._itemStyleMap[identity];onItem.apply(scope||this,Array.prototype.slice.call(onItemArgs,0))}if(onComplete)onComplete.apply(scope||this,Array.prototype.slice.call(onItemArgs,1))},_setAttrClass:function(item,attr,cssClass,onComplete){if(typeof cssClass==="string"){if(this._itemAttr.indexOf(attr)!=-1){var classes=lang.trim(cssClass).split(/\s+/);if(classes[0])if(item){var styling=this._getItemStyling(item);styling[attr][attr+"Class"]=cssClass;styling[attr]["baseClass"]=classes[0];delete styling.defStyle;
if(onComplete)onComplete.call(this,item,attr,cssClass,classes[0]);return styling[attr]}else this._setAllItems([attr,cssClass,classes[0]],function(styling,attr,cssClass,baseClass){styling[attr][attr+"Class"]=cssClass;styling[attr]["baseClass"]=baseClass;delete styling.defStyle},onComplete,this);return null}throw new CBTError("InvalidProperty","setItemClass");}throw new CBTError("InavlidType","setItemClass");},_setAttrClassSet:function(item,attr,cssClass){if(item)this._setAttrClass(item,attr,cssClass,
function(item,attr,cssClass,baseClass){this._setStyling(item,"_styling_",cssClass)});else this._setAttrClass(null,attr,cssClass,function(attr,cssClass,baseClass){this._setTreeNodes(this.rootNode,{_styling_:cssClass})})},_setAttrStyle:function(item,attr,style,onComplete){if(lang.isObject(style)){if(this._itemAttr.indexOf(attr)!=-1){if(item){var styling=this._getItemStyling(item);styling[attr][attr+"Style"]=style;if(onComplete)onComplete.call(this,item,attr,style);return styling[attr]}else this._setAllItems([attr,
style],function(styling,attr,style){styling[attr][attr+"Style"]=style},onComplete,this);return null}throw new CBTError("InvalidProperty","setItemStyle");}throw new CBTError("InvalidType","setItemStyle");},_setAttrStyleSet:function(item,attr,style){var request={};if(!this._connected)this._connectModel();if(item)this._setAttrStyle(item,attr,style,function(item,attr,style){this._setStyling(item,attr+"Style",style)});else this._setAttrStyle(null,attr,style,function(attr,style){request[attr+"Style"]=style;
this._setTreeNodes(this.rootNode,request)})},_setStyling:function(item,attr,value){var identity=this.model.getIdentity(item),nodes=this._itemNodesMap[identity],request={};if(nodes){request[attr]=value;nodes.forEach(function(node){node.set(request)},this)}},_getIconAttr:function(item){var styling=this._getItemStyling(item);if(styling.defStyle&&this._iconAttr){var icon=this.model.getIcon(item);if(icon){icon=this._setIconAttr(icon,item);return icon}}else return styling.icon},_getIconClassAttr:function(item,
opened,nodeWidget){return this.getIconClass(item,opened,nodeWidget)},_getIconStyleAttr:function(item,opened){return this.getIconStyle(item,opened)},_getLabelClassAttr:function(item,opened,nodeWidget){return this.getLabelClass(item,opened,nodeWidget)},_getLabelStyleAttr:function(item,opened){return this.getLabelStyle(item,opened)},_getRowClassAttr:function(item,opened,nodeWidget){return this.getRowClass(item,opened,nodeWidget)},_getRowStyleAttr:function(item,opened){return this.getRowStyle(item,opened)},
_setIconAttr:function(icon,item){var newIcon=this._icon2Object(icon);if(newIcon)if(item){var styling=this._getItemStyling(item);styling.icon=newIcon;delete styling.defStyle;this._setStyling(item,"_icon_",newIcon)}else{this._setAllItems([newIcon],function(styling,newIcon){styling.icon=newIcon;delete styling.defStyle},function(newIcon){this._setTreeNodes(this.rootNode,{_icon_:newIcon})},this);this._icon=newIcon}return newIcon},_setIconClassAttr:function(cssClass,item){return this._setAttrClassSet(item,
"icon",cssClass)},_setIconStyleAttr:function(style,item){return this._setAttrStyleSet(item,"icon",style)},_setLabelClassAttr:function(cssClass,item){return this._setAttrClassSet(item,"label",cssClass)},_setLabelStyleAttr:function(style,item){return this._setAttrStyleSet(item,"label",style)},_setRowClassAttr:function(cssClass,item){return this._setAttrClassSet(item,"row",cssClass)},_setRowStyleAttr:function(style,item){return this._setAttrStyleSet(item,"row",style)},_setValueToIconMapAttr:function(map){if(isObject(map)){var prop,
value,table={};for(prop in map)if(isObject(map[prop])){table=map[prop];if(!isEmpty(table))for(value in table){if(table[value]==C_WILDCARD)table[value]=null}else{table[C_WILDCARD]=null;map[prop]=table}}else if(map[prop]instanceof Array)if(map[prop].length){map[prop].forEach(function(value){table[value]=value},this);map[prop]=table}else{table[C_WILDCARD]=null;map[prop]=table}else if(map[prop]!="*")throw new CBTError("InvalidType","_setValueToIconMap","invalid property value type");}else map=null;this._valueToIconMap=
map;return map},_modelIconUpdate:function(item,attr,icon){var styling=this._getItemStyling(item);var newIcon=this._icon2Object(icon);if(newIcon){styling.icon=newIcon;delete styling.defStyle}return newIcon},_valueToIcon:function(item){if(item&&this._valueToIconMap){var prop,table,val,icon;for(prop in this._valueToIconMap){table=this._valueToIconMap[prop];if(val=lang.getObject(prop,false,item)){if(val in table)icon=table[val]||val;else if(C_WILDCARD in table)icon=table[C_WILDCARD]||val;if(icon){switch(typeof icon){case "string":case "object":break;
case "function":icon=icon.call(this,item,prop,val);if(icon&&!isObject(icon)&&typeof icon!="string")throw new CBTError("InvalidResponse","_valueToIcon");break;default:icon=null}if(icon){icon=this._icon2Object(icon);icon=this._wcToValue(icon,val);return icon}}}}}},_wcToValue:function(obj,wcValue){if(!isObject(obj)){if(obj&&typeof obj.replace=="function")return obj.replace(/\*/g,wcValue);return obj}var key,newObj=obj.constructor();for(key in obj)newObj[key]=this._wcToValue(obj[key],wcValue);return newObj},
getIconClass:function(item,opened,nodeWidget){var isExpandable,itemIcon,nodeItem=item;var iconClass,baseClass,newClass,indent;if(!nodeItem)if(this.rootNode){nodeItem=this.rootNode.item;nodeWidget=this.rootNode;opened=this.rootNode.isExpanded}isExpandable=nodeItem?this.model.mayHaveChildren(nodeItem):false;if(this._valueToIconMap)itemIcon=this._valueToIcon(nodeItem);if(!itemIcon||!itemIcon.iconClass)itemIcon=this._getItemStyling(nodeItem)["icon"];if(!itemIcon||!itemIcon.iconClass){newClass=!nodeItem||
isExpandable?opened?"dijitFolderOpened":"dijitFolderClosed":"dijitLeaf";baseClass=this._getBaseClass(nodeWidget);iconClass=baseClass?baseClass+" "+newClass:newClass;return iconClass}iconClass=itemIcon.iconClass;baseClass=itemIcon.baseClass;indent=itemIcon.indent;if(!itemIcon.fixed){if(nodeWidget){newClass=baseClass+(isExpandable?opened?"Expanded":"Collapsed":"Terminal");if(indent!==undefined&&indent!==false)if(indent===true||indent>=nodeWidget.indent)newClass+=" "+newClass+"_"+nodeWidget.indent;iconClass+=
" "+newClass}}else iconClass+=" "+itemIcon.fixed;return iconClass},getIconStyle:function(item,opened){var style=this._getClassOrStyle(item,"icon","Style");var icon=this._valueToIconMap?this._valueToIcon(item):null;style=icon&&icon.iconStyle||style;return style},getLabelClass:function(item,opened){return this._getClassOrStyle(item,"label","Class")},getLabelStyle:function(item,opened){return this._getClassOrStyle(item,"label","Style")},getRowClass:function(item,opened){return this._getClassOrStyle(item,
"row","Class")},getRowStyle:function(item,opened){return this._getClassOrStyle(item,"row","Style")},get:function(name){var names=this._getAttrNames(name),getter=this[names.g];if(typeof getter==="function"){var result=getter.apply(this,Array.prototype.slice.call(arguments,1));return result}return this[name]},_connectModel:function(){var model=this.model;this._connected=true;this._itemStyleMap={};this._getItemStyling(null);if(model){if(model.iconAttr)if(!model.getIcon||typeof model.getIcon!="function"){0&&
console.warn(new CBTError("MethodMissing","_connectModel","model property 'iconAttr' set but method getIcon() is missing."));this._iconAttr=null}else this._iconAttr=this.model.iconAttr;if(this.mapEventToAttr&&typeof this.mapEventToAttr==="function")this.mapEventToAttr(null,this._iconAttr,"_icon_",this._modelIconUpdate);aspect.after(this.model,"onDelete",lang.hitch(this,"_onStyleDelete"),true)}},_icon2Object:function(icon){var attr,classes,newIcon;if(icon)if(!isObject(icon))if(typeof icon==="string"&&
icon.length){classes=lang.trim(icon).split(/\s+/);if(classes[0]){newIcon=this._initStyleElement("icon");newIcon.baseClass=classes[0];newIcon.iconClass=icon;newIcon.indent=true;return newIcon}}else throw new CBTError("InvalidType","_icon2Object","icon must be an object or string");else{if(icon.iconClass){classes=lang.trim(icon.iconClass).split(/\s+/);if(classes[0]){newIcon=this._initStyleElement("icon");newIcon.baseClass=classes[0];newIcon.indent=true;for(attr in icon)newIcon[attr]=icon[attr];return newIcon}}throw new CBTError("ParameterMissing",
"_icon2Object","required property 'iconClass' is missing or empty");}return null},_object2Array:function(args){var newArray=[],attr;if(!(args instanceof Array)){if(lang.isObject(args))for(attr in args)newArray.push(args[attr]);else newArray.push(args);return newArray}return args},_onStyleDelete:function(item){var identity=this.model.getIdentity(item);delete this._itemStyleMap[identity]},_setTreeNodes:function(node,request){if(node)if(lang.isObject(request)){node.set(request);node.getChildren().forEach(function(child){this._setTreeNodes(child,
request)},this)}}})})},"dojox/mobile/RoundRectList":function(){define("dojox/mobile/RoundRectList",["dojo/_base/array","dojo/_base/declare","dojo/_base/event","dojo/_base/lang","dojo/_base/window","dojo/dom-construct","dijit/_Contained","dijit/_Container","dijit/_WidgetBase"],function(array,declare,event,lang,win,domConstruct,Contained,Container,WidgetBase){return declare("dojox.mobile.RoundRectList",[WidgetBase,Container,Contained],{transition:"slide",iconBase:"",iconPos:"",select:"",stateful:false,
syncWithViews:false,editable:false,tag:"ul",editableMixinClass:"dojox/mobile/_EditableListMixin",baseClass:"mblRoundRectList",filterBoxClass:"mblFilteredRoundRectListSearchBox",buildRendering:function(){this.domNode=this.srcNodeRef||domConstruct.create(this.tag);this.inherited(arguments)},postCreate:function(){if(this.editable)require([this.editableMixinClass],lang.hitch(this,function(module){declare.safeMixin(this,new module)}));this.connect(this.domNode,"onselectstart",event.stop);if(this.syncWithViews){var f=
function(view,moveTo,dir,transition,context,method){var child=array.filter(this.getChildren(),function(w){return w.moveTo==="#"+view.id||w.moveTo===view.id})[0];if(child)child.set("selected",true)};this.subscribe("/dojox/mobile/afterTransitionIn",f);this.subscribe("/dojox/mobile/startView",f)}},resize:function(){array.forEach(this.getChildren(),function(child){if(child.resize)child.resize()})},onCheckStateChanged:function(){},_setStatefulAttr:function(stateful){this._set("stateful",stateful);this.selectOne=
stateful;array.forEach(this.getChildren(),function(child){child.setArrow&&child.setArrow()})},deselectItem:function(item){item.set("selected",false)},deselectAll:function(){array.forEach(this.getChildren(),function(child){child.set("selected",false)})},selectItem:function(item){item.set("selected",true)}})})},"dojo/dom-geometry":function(){define(["./sniff","./_base/window","./dom","./dom-style"],function(has,win,dom,style){var geom={};geom.boxModel="content-box";if(has("ie"))geom.boxModel=document.compatMode==
"BackCompat"?"border-box":"content-box";geom.getPadExtents=function getPadExtents(node,computedStyle){node=dom.byId(node);var s=computedStyle||style.getComputedStyle(node),px=style.toPixelValue,l=px(node,s.paddingLeft),t=px(node,s.paddingTop),r=px(node,s.paddingRight),b=px(node,s.paddingBottom);return{l:l,t:t,r:r,b:b,w:l+r,h:t+b}};var none="none";geom.getBorderExtents=function getBorderExtents(node,computedStyle){node=dom.byId(node);var px=style.toPixelValue,s=computedStyle||style.getComputedStyle(node),
l=s.borderLeftStyle!=none?px(node,s.borderLeftWidth):0,t=s.borderTopStyle!=none?px(node,s.borderTopWidth):0,r=s.borderRightStyle!=none?px(node,s.borderRightWidth):0,b=s.borderBottomStyle!=none?px(node,s.borderBottomWidth):0;return{l:l,t:t,r:r,b:b,w:l+r,h:t+b}};geom.getPadBorderExtents=function getPadBorderExtents(node,computedStyle){node=dom.byId(node);var s=computedStyle||style.getComputedStyle(node),p=geom.getPadExtents(node,s),b=geom.getBorderExtents(node,s);return{l:p.l+b.l,t:p.t+b.t,r:p.r+b.r,
b:p.b+b.b,w:p.w+b.w,h:p.h+b.h}};geom.getMarginExtents=function getMarginExtents(node,computedStyle){node=dom.byId(node);var s=computedStyle||style.getComputedStyle(node),px=style.toPixelValue,l=px(node,s.marginLeft),t=px(node,s.marginTop),r=px(node,s.marginRight),b=px(node,s.marginBottom);return{l:l,t:t,r:r,b:b,w:l+r,h:t+b}};geom.getMarginBox=function getMarginBox(node,computedStyle){node=dom.byId(node);var s=computedStyle||style.getComputedStyle(node),me=geom.getMarginExtents(node,s),l=node.offsetLeft-
me.l,t=node.offsetTop-me.t,p=node.parentNode,px=style.toPixelValue,pcs;if(has("mozilla")){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl;t=st}else if(p&&p.style){pcs=style.getComputedStyle(p);if(pcs.overflow!="visible"){l+=pcs.borderLeftStyle!=none?px(node,pcs.borderLeftWidth):0;t+=pcs.borderTopStyle!=none?px(node,pcs.borderTopWidth):0}}}else if(has("opera")||has("ie")==8&&!has("quirks"))if(p){pcs=style.getComputedStyle(p);l-=pcs.borderLeftStyle!=none?px(node,pcs.borderLeftWidth):
0;t-=pcs.borderTopStyle!=none?px(node,pcs.borderTopWidth):0}return{l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h}};geom.getContentBox=function getContentBox(node,computedStyle){node=dom.byId(node);var s=computedStyle||style.getComputedStyle(node),w=node.clientWidth,h,pe=geom.getPadExtents(node,s),be=geom.getBorderExtents(node,s);if(!w){w=node.offsetWidth;h=node.offsetHeight}else{h=node.clientHeight;be.w=be.h=0}if(has("opera")){pe.l+=be.l;pe.t+=be.t}return{l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-
pe.h-be.h}};function setBox(node,l,t,w,h,u){u=u||"px";var s=node.style;if(!isNaN(l))s.left=l+u;if(!isNaN(t))s.top=t+u;if(w>=0)s.width=w+u;if(h>=0)s.height=h+u}function isButtonTag(node){return node.tagName.toLowerCase()=="button"||node.tagName.toLowerCase()=="input"&&(node.getAttribute("type")||"").toLowerCase()=="button"}function usesBorderBox(node){return geom.boxModel=="border-box"||node.tagName.toLowerCase()=="table"||isButtonTag(node)}geom.setContentSize=function setContentSize(node,box,computedStyle){node=
dom.byId(node);var w=box.w,h=box.h;if(usesBorderBox(node)){var pb=geom.getPadBorderExtents(node,computedStyle);if(w>=0)w+=pb.w;if(h>=0)h+=pb.h}setBox(node,NaN,NaN,w,h)};var nilExtents={l:0,t:0,w:0,h:0};geom.setMarginBox=function setMarginBox(node,box,computedStyle){node=dom.byId(node);var s=computedStyle||style.getComputedStyle(node),w=box.w,h=box.h,pb=usesBorderBox(node)?nilExtents:geom.getPadBorderExtents(node,s),mb=geom.getMarginExtents(node,s);if(has("webkit"))if(isButtonTag(node)){var ns=node.style;
if(w>=0&&!ns.width)ns.width="4px";if(h>=0&&!ns.height)ns.height="4px"}if(w>=0)w=Math.max(w-pb.w-mb.w,0);if(h>=0)h=Math.max(h-pb.h-mb.h,0);setBox(node,box.l,box.t,w,h)};geom.isBodyLtr=function isBodyLtr(doc){doc=doc||win.doc;return(win.body(doc).dir||doc.documentElement.dir||"ltr").toLowerCase()=="ltr"};geom.docScroll=function docScroll(doc){doc=doc||win.doc;var node=win.doc.parentWindow||win.doc.defaultView;return"pageXOffset"in node?{x:node.pageXOffset,y:node.pageYOffset}:(node=has("quirks")?win.body(doc):
doc.documentElement)&&{x:geom.fixIeBiDiScrollLeft(node.scrollLeft||0,doc),y:node.scrollTop||0}};if(has("ie"))geom.getIeDocumentElementOffset=function getIeDocumentElementOffset(doc){doc=doc||win.doc;var de=doc.documentElement;if(has("ie")<8){var r=de.getBoundingClientRect(),l=r.left,t=r.top;if(has("ie")<7){l+=de.clientLeft;t+=de.clientTop}return{x:l<0?0:l,y:t<0?0:t}}else return{x:0,y:0}};geom.fixIeBiDiScrollLeft=function fixIeBiDiScrollLeft(scrollLeft,doc){doc=doc||win.doc;var ie=has("ie");if(ie&&
!geom.isBodyLtr(doc)){var qk=has("quirks"),de=qk?win.body(doc):doc.documentElement,pwin=win.global;if(ie==6&&!qk&&pwin.frameElement&&de.scrollHeight>de.clientHeight)scrollLeft+=de.clientLeft;return ie<8||qk?scrollLeft+de.clientWidth-de.scrollWidth:-scrollLeft}return scrollLeft};geom.position=function(node,includeScroll){node=dom.byId(node);var db=win.body(node.ownerDocument),ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(has("ie")<9){var offset=
geom.getIeDocumentElementOffset(node.ownerDocument);ret.x-=offset.x+(has("quirks")?db.clientLeft+db.offsetLeft:0);ret.y-=offset.y+(has("quirks")?db.clientTop+db.offsetTop:0)}if(includeScroll){var scroll=geom.docScroll(node.ownerDocument);ret.x+=scroll.x;ret.y+=scroll.y}return ret};geom.getMarginSize=function getMarginSize(node,computedStyle){node=dom.byId(node);var me=geom.getMarginExtents(node,computedStyle||style.getComputedStyle(node));var size=node.getBoundingClientRect();return{w:size.right-
size.left+me.w,h:size.bottom-size.top+me.h}};geom.normalizeEvent=function(event){if(!("layerX"in event)){event.layerX=event.offsetX;event.layerY=event.offsetY}if(!has("dom-addeventlistener")){var se=event.target;var doc=se&&se.ownerDocument||document;var docBody=has("quirks")?doc.body:doc.documentElement;var offset=geom.getIeDocumentElementOffset(doc);event.pageX=event.clientX+geom.fixIeBiDiScrollLeft(docBody.scrollLeft||0,doc)-offset.x;event.pageY=event.clientY+(docBody.scrollTop||0)-offset.y}};
return geom})},"dojox/grid/_RowManager":function(){define("dojox/grid/_RowManager",["dojo/_base/declare","dojo/_base/lang","dojo/dom-class"],function(declare,lang,domClass){var setStyleText=function(inNode,inStyleText){if(inNode.style.cssText==undefined)inNode.setAttribute("style",inStyleText);else inNode.style.cssText=inStyleText};return declare("dojox.grid._RowManager",null,{constructor:function(inGrid){this.grid=inGrid},linesToEms:2,overRow:-2,prepareStylingRow:function(inRowIndex,inRowNode){return{index:inRowIndex,
node:inRowNode,odd:Boolean(inRowIndex&1),selected:!!this.grid.selection.isSelected(inRowIndex),over:this.isOver(inRowIndex),customStyles:"",customClasses:"dojoxGridRow"}},styleRowNode:function(inRowIndex,inRowNode){var row=this.prepareStylingRow(inRowIndex,inRowNode);this.grid.onStyleRow(row);this.applyStyles(row)},applyStyles:function(inRow){var i=inRow;i.node.className=i.customClasses;var h=i.node.style.height;setStyleText(i.node,i.customStyles+";"+(i.node._style||""));i.node.style.height=h},updateStyles:function(inRowIndex){this.grid.updateRowStyles(inRowIndex)},
setOverRow:function(inRowIndex){var last=this.overRow;this.overRow=inRowIndex;if(last!=this.overRow&&(lang.isString(last)||last>=0))this.updateStyles(last);this.updateStyles(this.overRow)},isOver:function(inRowIndex){return this.overRow==inRowIndex&&!domClass.contains(this.grid.domNode,"dojoxGridColumnResizing")}})})},"xide/factory/Objects":function(){define(["dojo/_base/lang","xide/factory","dcl/dcl"],function(lang,factory,dcl){factory.createInstance=function(classNameOrPrototype,ctrArgs,baseClasses){var ctrArgsFinal=
{};lang.mixin(ctrArgsFinal,ctrArgs);var objectProtoType=classNameOrPrototype;if(lang.isString(classNameOrPrototype)){var proto=dojo.getObject(objectProtoType);if(proto)objectProtoType=proto;else{console.error("no such class : "+classNameOrPrototype);return null}}if(baseClasses){var classes=[];classes=classes.concat(baseClasses);objectProtoType=dcl(classes,objectProtoType.prototype)}var instance=new objectProtoType(ctrArgsFinal);if(instance)instance.ctrArgs=ctrArgsFinal;return instance};return factory})},
"dojox/mobile/RoundRect":function(){define("dojox/mobile/RoundRect",["dojo/_base/declare","dojo/dom-class","./Container"],function(declare,domClass,Container){return declare("dojox.mobile.RoundRect",Container,{shadow:false,baseClass:"mblRoundRect",buildRendering:function(){this.inherited(arguments);if(this.shadow)domClass.add(this.domNode,"mblShadow")}})})},"url:xfile/widgets/templates/TrailBarItem.html":'\x3cdiv class\x3d"dijitInline dijitMenuItem" data-dojo-attach-point\x3d"focusNode" role\x3d"menuitem" tabIndex\x3d"-1"\x3e\n\t\x3cspan src\x3d"${_blankGif}" alt\x3d"" class\x3d"dijitIcon dijitMenuItemIcon  el-icon-chevron-right" data-dojo-attach-point\x3d"iconNode"/\x3e\n\t\x3cspan data-dojo-attach-point\x3d"containerNode"\x3e\x3c/span\x3e\n\x3c/div\x3e\n',
"dojo/store/util/QueryResults":function(){define(["../../_base/array","../../_base/lang","../../when"],function(array,lang,when){var QueryResults=function(results){if(!results)return results;var isPromise=!!results.then;if(isPromise)results=lang.delegate(results);function addIterativeMethod(method){results[method]=function(){var args=arguments;var result=when(results,function(results){Array.prototype.unshift.call(args,results);return QueryResults(array[method].apply(array,args))});if(method!=="forEach"||
isPromise)return result}}addIterativeMethod("forEach");addIterativeMethod("filter");addIterativeMethod("map");if(results.total==null)results.total=when(results,function(results){return results.length});return results};lang.setObject("dojo.store.util.QueryResults",QueryResults);return QueryResults})},"xide/manager/WorkflowManager":function(){define(["dojo/_base/declare","dojo/dom-class","dijit/Dialog","xide/widgets/TemplatedWidgetBase","xapp/utils","xfile/types","xapp/factory","xide/manager/ManagerBase"],
function(declare,domClass,Dialog,TemplatedWidgetBase,utils,types,eventFactory,ManagerBase){return dojo.declare("xide.manager.WorkflowManager",[ManagerBase,TemplatedWidgetBase],{dataSourceView:null,runSettingsWidget:null,consoleWidget:null,connectionView:null,runSettingsView:null,templateString:"\x3cdiv\x3e\x3c/div\x3e",rootPrefix:null,editors:null,getRootPrefix:function(){return this.rootPrefix},repaint:function(){var winSize=dojo.window.getBox();var mainContainer=dijit.registry.byId("main");if(mainContainer){mainContainer.resize();
setTimeout(function(){mainContainer.resize()},300)}},onRegisterEditor:function(eventData){this.editors.push(eventData.content)},initWidgets:function(){this.editors=[];eventFactory.subscribe(types.EVENTS.REGISTER_EDITOR,this.onRegisterEditor,this);var thiz=this;var resizeCB=function(){thiz.repaint()};dojo.connect(window,dojo.global.onorientationchange!==undefined?"onorientationchange":"onresize",this,function(){setTimeout(function(){resizeCB()},1E3)});setTimeout(function(){resizeCB()},100)}})})},"dojo/data/util/simpleFetch":function(){define(["../../_base/lang",
"../../_base/kernel","./sorter"],function(lang,kernel,sorter){var simpleFetch={};lang.setObject("dojo.data.util.simpleFetch",simpleFetch);simpleFetch.errorHandler=function(errorData,requestObject){if(requestObject.onError){var scope=requestObject.scope||kernel.global;requestObject.onError.call(scope,errorData,requestObject)}};simpleFetch.fetchHandler=function(items,requestObject){var oldAbortFunction=requestObject.abort||null,aborted=false,startIndex=requestObject.start?requestObject.start:0,endIndex=
requestObject.count&&requestObject.count!==Infinity?startIndex+requestObject.count:items.length;requestObject.abort=function(){aborted=true;if(oldAbortFunction)oldAbortFunction.call(requestObject)};var scope=requestObject.scope||kernel.global;if(!requestObject.store)requestObject.store=this;if(requestObject.onBegin)requestObject.onBegin.call(scope,items.length,requestObject);if(requestObject.sort)items.sort(sorter.createSortFunction(requestObject.sort,this));if(requestObject.onItem)for(var i=startIndex;i<
items.length&&i<endIndex;++i){var item=items[i];if(!aborted)requestObject.onItem.call(scope,item,requestObject)}if(requestObject.onComplete&&!aborted){var subset=null;if(!requestObject.onItem)subset=items.slice(startIndex,endIndex);requestObject.onComplete.call(scope,subset,requestObject)}};simpleFetch.fetch=function(request){request=request||{};if(!request.store)request.store=this;this._fetchItems(request,lang.hitch(this,"fetchHandler"),lang.hitch(this,"errorHandler"));return request};return simpleFetch})},
"xfile/boot":function(){define("xfile/boot",["dojo/_base/declare","xide/types","dojo/_base/lang","cbtree/extensions/TreeStyling","cbtree/models/FileStoreModel","cbtree/data/FileStore","xfile/widgets/BreadCrumb"],function(declare,types,lang){return declare("xfile.boot",null,{loadDependencies:function(readyCB){require(["cbtree/models/FileStoreModel","cbtree/data/FileStore","cbtree/data/BreadCrumb"],function(FileStoreModel,FileStore,BreadCrumb){types.config.FILES_MODEL_PROTO=FileStoreModel;types.config.FILES_STORE_PROTO=
FileStore})},initWithConfig:function(config){if(config){lang.mixin(types.config,config);this.loadDependencies(null);Array.prototype.remove=function(){var what,a=arguments,L=a.length,ax;while(L&&this.length){what=a[--L];while((ax=this.indexOf(what))!=-1)this.splice(ax,1)}return this}}}})})},"xapp/manager/Context":function(){define("xapp/manager/Context",["dojo/_base/declare","dojo/_base/lang","dojo/has","xapp/manager/ContextBase","require","xapp/utils"],function(declare,lang,has,ContextBase,require,
utils){return declare("xapp.manager.Context",[ContextBase],{session:null,urlHandler:null,navigationHandler:null,dataManager:null,viewManager:null,styleManager:null,gpsManager:null,application:null,dataSourceManager:null,getDataSourceManager:function(){return this.dataSourceManager},getGPSManager:function(){return this.gpsManager},getDataManager:function(){return this.dataManager},getStyleManager:function(){return this.styleManager},getSession:function(){return this.session},getViewManager:function(){return this.viewManager},
getUrlHandler:function(){return this.urlHandler},getNavigationHandler:function(){return null},getApplication:function(){return this.application},initManagers:function(){if(this.session)this.session.init();if(this.viewManager)this.viewManager.init();if(this.urlHandler)this.urlHandler.init();if(this.gpsManager)this.gpsManager.init();if(this.dataSourceManager);},_didXIDE:false,_reloadModule:function(module,reload){require.undef(module);var thiz=this;if(reload)setTimeout(function(){require([module],function(moduleLoaded){0&&
console.log("did - re-require module : "+module);moduleLoaded.modulePath=module;xide.factory.publish(xide.types.EVENTS.ON_MODULE_RELOADED,{module:module,newModule:moduleLoaded},thiz)})},500)},onDidChangeFileContent:function(evt){if(evt["didProcess"])return;evt["didProcess"]=true;if(!this.vfsMounts)return;if(!evt.path)return;var path=evt.path;if(path.indexOf(".css")!=-1){this.onCSSChanged(evt);return}if(path.indexOf("resources")!=-1||path.indexOf("meta")!=-1||path.indexOf(".js")==-1)return;var mount=
evt.mount.replace("/","");var module=null;if(!this.vfsMounts[mount])return;module=""+evt.path;module=module.replace("./","");module=module.replace("/",".");module=module.replace(".js","");module=xide.utils.replaceAll(".","/",module);var thiz=this;setTimeout(function(){thiz._reloadModule(module,true)},500);console.error("reload module : "+module)},onCSSChanged:function(evt){if(evt["didProcess"])return;evt["didProcess"]=true;var path=evt.path;path=xide.utils.replaceAll("//","/",path);path=path.replace("/PMaster/",
"");path=path.replace("/htdocs/","");var fileName=xapp.utils.getFileName(path);0&&console.log("css file changed : "+path+" and file name : "+fileName);if(path.indexOf("Views.css")||path.indexOf("Content.css")||path.indexOf("ListItems.css")){var _id=dojo.byId(fileName);if(_id){console.error(" found css item in head");utils.destroyWidget(_id)}var item=this.getStyleManager()._toApplicationCSSTransformerPath(this.getSession().getServicePath(),this.getSession().getStylePlatform(),this.getSession().getUUID(),
this.getSession().getAppId(),fileName);this.getStyleManager().appendStyle(item,fileName);return}var reloadFn=window["xappOnStyleSheetChanged"];if(reloadFn)reloadFn(path);else;},onXIDEMessage:function(data){xide.factory.publish(data.event,data);if(data.event===xide.types.EVENTS.ON_FILE_CHANGED){var path=xide.utils.replaceAll("\\","/",data.data.path);0&&console.log("on file changed : "+path);if(path==null||path.indexOf==null){console.error("on file changed : have no path, aborting");return}if(path.indexOf(".css")!=
-1){var newEvt={path:path};this.onCSSChanged(newEvt)}var _start="lib/";if(path.indexOf("mygeneralapp4d"))_start="mygeneralapp4d/";if(path.indexOf("mygeneralapp3d"))_start="mygeneralapp3d/";if(path.indexOf(_start)!=-1){var libPath=path.substr(path.indexOf(_start)+_start.length,path.length);if(libPath.indexOf("xide")!=-1){path=libPath;var newEvt={mount:"xidejs",path:path};this.onDidChangeFileContent(newEvt)}if(libPath.indexOf("cxapp")!=-1){path=libPath;var newEvt={mount:"cxapp",path:path};this.onDidChangeFileContent(newEvt)}if(libPath.indexOf("xapp")!=
-1){path=libPath;0&&console.log("       # : "+path);var newEvt={mount:"xapp",path:path};this.onDidChangeFileContent(newEvt)}}}},onXIDELoaded:function(min,WebSocket){var thiz=this;var _ctorArgs={delegate:{onServerResponse:function(e){thiz.onXIDEMessage(dojo.fromJson(e.data))}}};var _clientProto=WebSocket;try{var client=new _clientProto(_ctorArgs);lang.mixin(client,_ctorArgs);client.init({options:{host:"http://127.0.0.1",port:9992,channel:"",debug:{"all":false,"protocol_connection":true,"protocol_messages":true,
"socket_server":true,"socket_client":true,"socket_messages":true,"main":true}}});client.connect()}catch(e){console.error("create client with store : failed : "+e)}},loadXIDE:function(){var thiz=this;require(["xide/min","xide/client/WebSocket"],function(min,WebSocket){if(thiz._didXIDE)return;thiz._didXIDE=true;thiz.onXIDELoaded(min,WebSocket)})},constructManagers:function(){if(!this.session)this.session=new xapp.manager.Session;this.session.ctx=this;if(!this.dataManager)this.dataManager=new xapp.manager.DataManager({ctx:this});
this.dataManager.ctx=this;if(!this.urlHandler)this.urlHandler=new xapp.manager.UrlHandler({ctx:this});if(!this.viewManager&&xapp.manager.ViewManager){this.viewManager=new xapp.manager.ViewManager({ctx:this});this.viewManager.ctx=this}if(!this.connectManager)this.connectManager=new xapp.connect.manager.ConnectManager({ctx:this});if(!this.gpsManager&&xapp.manager.GPSManager)this.gpsManager=new xapp.manager.GPSManager({ctx:this});if(!this.dataSourceManager)this.dataSourceManager=new xapp.manager.DataSourceManager({ctx:this});
if(!this.styleManager&&xapp.manager.StyleManager)this.styleManager=new xapp.manager.StyleManager({ctx:this});this.styleManager.ctx=this;if(has("debug")){this.loadXIDE();this.vfsMounts={xapp:{modulePath:"xapp"},cxapp:{modulePath:"cxapp"}}}},constructor:function(){}})})},"xide/widgets/_HTMLTemplateMixin":function(){define(["dojo/_base/declare","dojo/_base/html","dojo/dom-construct","dojox/xml/parser","dojo/dom-attr","dojo/_base/lang"],function(declare,html,comConstruct,xmlParser,domAttr,lang){return declare("xide.widgets._HTMLTemplateMixin",
null,{setMixins:function(htmlTemplate){var isWrapped=false;var xml=xmlParser.parse(htmlTemplate||this.templateString);if(xml&&xml.firstChild&&xml.firstChild.attributes&&xml.firstChild.attributes.length==1){isWrapped=true;var dataAttriubte=domAttr.get(xml.firstChild,"data-dojo-props");if(dataAttriubte)try{var jsonData=dojo.fromJson("{"+dataAttriubte+"}");if(jsonData)lang.mixin(this,jsonData)}catch(e){console.error("couldnt parse template")}}if(isWrapped==false)this.templateString="\x3cdiv\x3e"+this.templateString+
"\x3c/div\x3e"},parseHTMLTemplate:function(data){if(data&&data.htmlTemplate){if(data.htmlTemplate.indexOf("htm")==-1)this.templateString=data.htmlTemplate;else this.templateString=this._getHTMLTemplate(data.htmlTemplate);this.setMixins(this.templateString)}},_getHTMLTemplate:function(fileName){var prefix="";if(this.taskPool.taskInfo)prefix+=ctx.getApplication().getTaskMediaFolder(this.taskPool.taskInfo.path);var path=prefix+fileName;return this._getText(path)},_getText:function(url){var result;var def=
dojo.xhrGet({url:url,sync:true,handleAs:"text",load:function(text){result=text}});return""+result+""}})})},"xfile/views/MainView":function(){define("xfile/views/MainView",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/on","dojo/_base/lang","xide/widgets/TemplatedWidgetBase","xide/widgets/_CSSMixin","xide/widgets/_StyleMixin","xide/widgets/_InsertionMixin","xide/widgets/_HTMLTemplateMixin","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/window","xide/types","xide/factory",
"xide/utils","xfile/widgets/BreadCrumb","xfile/widgets/UploadItem","xfile/widgets/ProgressItem","xide/layout/ContentPane","xfile/widgets/ActionToolbarEmbedded","xide/widgets/_PermaMixin","dijit/registry","xide/layout/TabContainer","xide/mixins/EventedMixin"],function(array,declare,html,on,lang,TemplatedWidgetBase,CSSMixin,_StyleMixin,_InsertionMixin,HTMLTemplateMixin,domClass,domGeometry,domStyle,win,types,factory,utils,BreadCrumb,UploadItem,ProgressItem,ContentPane,ActionToolbarEmbedded,PermaMixin,
registry,TabContainer,EventedMixin){return declare("xfile.views.MainView",[TemplatedWidgetBase,CSSMixin,_StyleMixin,HTMLTemplateMixin,_InsertionMixin,PermaMixin,EventedMixin],{config:null,ctx:null,cssClass:"mainView xasMain dTuned",layoutMain:null,layoutTop:null,layoutLeft:null,layoutCenter:null,layoutRight:null,layoutBottom:null,toolbar:null,preventCaching:true,panelManager:null,leftPanel:null,centerPanel:null,centerTabContainer:null,breadCrumb:null,bottomTabContainer:null,logPanel:null,layoutBottomPlaceHolder:null,
initialReload:false,persistent:true,_restoredPermaItems:0,templateString:"\x3cdiv\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutMain' data-dojo-type\x3d'xfile.layout.BorderContainer' data-dojo-props\x3d\"design:'headline'\" class\x3d'layoutMain ' id\x3d'main'\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutTop' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'top',splitter:'true'\" class\x3d'layoutTop ui-state-default'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutLeft' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'leading',splitter:'true'\" class\x3d'layoutLeft filePanelLayoutcontainer'\x3e\x3c/div\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'layoutCenter' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'center',splitter:'false'\" class\x3d'layoutCenter filePanelLayoutcontainer'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutRight' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'right',splitter:'true',minSize:'200',toggleSplitterState:'full',toggleSplitterFullSize:'200px' \" class\x3d'layoutRight filePropertyPanel ui-state-default'\x3e\x3c/div\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'layoutBottom' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'bottom',splitter:'true',toggleSplitterState:'closed',toggleSplitterClosedSize:'0px',toggleSplitterFullSize:'150px'\" class\x3d'layoutBottom ui-state-default'\x3e\x3cdiv data-dojo-attach-point\x3d'layoutBottomPlaceHolder' style\x3d'height: 80px;'\x3e\x3c/div\x3e\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",_permaItemReady:function(item){if(item)if(item.directory!=null&&item.directory===
true){if(this.centerPanel)if(this._restoredPermaItems==0)this.centerPanel.openItem(item);else this.centerPanel.openItemAlternate(item);this._restoredPermaItems+=1}else this.panelManager.openFile(item)},getPermaLink:function(){var items=[];if(this.centerTabContainer)array.forEach(registry.findWidgets(this.centerTabContainer.containerNode),function(child){if(child.getPermaLink){var childPerma=child.getPermaLink();if(childPerma&&childPerma!=".")items.push(encodeURIComponent(childPerma))}});else if(this.centerPanel&&
this.centerPanel.getPermaLink){var childPerma=this.centerPanel.getPermaLink();if(childPerma&&childPerma!=".")items.push(encodeURIComponent(childPerma))}if(items&&items.length>0)return"mainView\x3d"+encodeURIComponent(items.join("|"));return""},_getItem:function(url){var thiz=this;var store=this.panelManager.store;var _readyCB=function(item){thiz._permaItemReady(item)};setTimeout(function(){store.getItem(url,true,_readyCB)},10)},restorePermaLink:function(link){try{var urls=[];link=link||window.location.href;
if(link){var params=utils.urlDecode(link);if(params&&params.mainView){params.mainView=decodeURIComponent(params.mainView);var items=params.mainView.indexOf("|")!=-1?params.mainView.split("|"):[params.mainView];if(items&&items.length>0)for(var i=0;i<items.length;i++)urls.push(decodeURIComponent(items[i]))}}if(urls.length>0)for(var i=0;i<urls.length;i++)this._getItem(urls[i])}catch(e){debugger}},getNewAlternateTarget:function(item,panel){if(!this.centerTabContainer){if(this.centerPanel){var tmpPos=
dojo.doc.createElement("div");dojo.place(this.centerPanel.domNode,tmpPos)}var tabContainer=new TabContainer({tabStrip:true,tabPosition:"top",splitter:true,region:"center",attachParent:true,style:"width:100%;height:100%",parentContainer:this.layoutCenter},dojo.doc.createElement("div"));this.layoutCenter.containerNode.appendChild(tabContainer.domNode);tabContainer.startup();this.centerPanel.ignoreShow=true;tabContainer.addChild(this.centerPanel);this.centerTabContainer=tabContainer}return this.centerTabContainer},
onLastPanelRemoved:function(){if(this.centerPanel&&this.centerTabContainer){var tmpPos=dojo.doc.createElement("div");dojo.place(this.centerPanel.domNode,tmpPos);utils.destroyWidget(this.centerTabContainer);this.centerTabContainer=null;this.layoutCenter.containerNode.appendChild(this.centerPanel.domNode);this.resize()}},onPanelClosed:function(){if(this.centerTabContainer){var children=this.centerTabContainer.getChildren();var reRoot=false;if(children.length==1)reRoot=true;if(reRoot)this.onLastPanelRemoved()}},
prepareLayout:function(config){if(config.LAYOUT_PRESET==types.LAYOUT_PRESET.SINGLE)this.layoutMain.removeChild(this.layoutLeft);if(config.PANEL_OPTIONS!=null&&config.PANEL_OPTIONS.ALLOW_INFO_VIEW===false)this.layoutMain.removeChild(this.layoutRight);if(config.PANEL_OPTIONS!=null&&(config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===false||config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===0)&&(config.ACTION_TOOLBAR_MODE==null||config.ACTION_TOOLBAR_MODE!="self"))this.layoutMain.removeChild(this.layoutTop);else if(this.layoutTop._splitterWidget){utils.destroyWidget(this.layoutTop._splitterWidget);
this.layoutTop._splitterWidget=null}if(config.PANEL_OPTIONS!=null&&config.PANEL_OPTIONS.ALLOW_LOG_VIEW===false)this.layoutMain.removeChild(this.layoutBottom);else if(this.layoutBottom._splitterWidget){this.layoutBottom._splitterWidget.fullSize="150px";this.layoutBottom._splitterWidget.collapsedSize=null;if(!this.bottomTabContainer){this.bottomTabContainer=this._createBottomTabContainer();this.logPanel=new dijit.layout.ContentPane({className:"bottomTabLog",title:"Log",style:"padding:0;background-color: transparent;"},
dojo.doc.createElement("div"));this.bottomTabContainer.addChild(this.logPanel)}}},createPanel:function(panelOptions,dstContainer,cookiePrefix,region){if(!this.panelManager);if(panelOptions.AUTO_OPEN||panelOptions.AUTO_OPEN==null){var panel=this.getPanelManager().openUrl(this.config.START_PATH,dstContainer,this.config,cookiePrefix,region,"root");if(this.initialReload){var thiz=this;setTimeout(function(){panel.onReload(panel)},800)}return panel}},onChangeToggleSplitterState:function(splitter,state){if(!this.persistent)return;
var splitterData=[];if(this.layoutLeft&&this.layoutLeft._splitterWidget)splitterData.push({region:"left",state:this.layoutLeft._splitterWidget.state});if(this.layoutRight&&this.layoutRight._splitterWidget)splitterData.push({region:"right",state:this.layoutRight._splitterWidget.state});if(this.layoutBottom&&this.layoutBottom._splitterWidget)splitterData.push({region:"bottom",state:this.layoutBottom._splitterWidget.state});this.ctx.getSettingsManager().write(null,".",null,{id:"splitter",data:JSON.stringify(splitterData),
name:"Splitter States"},true,null)},setupToggleSplitterListeners:function(){if(this.layoutLeft&&this.layoutLeft._splitterWidget)this.layoutLeft._splitterWidget.delegate=this;if(this.layoutRight&&this.layoutRight._splitterWidget)this.layoutRight._splitterWidget.delegate=this;if(this.layoutBottom&&this.layoutBottom._splitterWidget)this.layoutBottom._splitterWidget.delegate=this},_getState:function(region,data){for(var i=0;i<data.length;i++)if(data[i].region==region)return data[i].state;return null},
_restoreSplitter:function(){},_restoreToggleSplitters:function(){var store=this.ctx.getSettingsManager().getStore();if(store){var data=storeUtils.queryStoreEx(store,{id:"splitter"},true,true);if(data){data=data.data;if(data){if(this.layoutLeft&&this.layoutLeft._splitterWidget){var state=this._getState("left",data);if(state)this.layoutLeft._splitterWidget.set("state",state)}if(this.layoutRight&&this.layoutRight._splitterWidget){var state=this._getState("right",data);if(state)this.layoutRight._splitterWidget.set("state",
state)}if(this.layoutBottom&&this.layoutBottom._splitterWidget){var state=this._getState("bottom",data);if(state)this.layoutBottom._splitterWidget.set("state",state)}}}}},createPanels:function(config){if(config.LAYOUT_PRESET==types.LAYOUT_PRESET.DUAL){this.leftPanel=this.createPanel(config.FILE_PANEL_OPTIONS_LEFT,this.layoutLeft,types.LAYOUT_REGION.LEFT,types.LAYOUT_REGION.LEFT);this.centerPanel=this.createPanel(config.FILE_PANEL_OPTIONS_MAIN,this.layoutCenter,types.LAYOUT_REGION.CENTER,types.LAYOUT_REGION.CENTER);
this.leftPanel.currentPanels.push(this.centerPanel);this.leftPanel.activePanel=this.centerPanel;this.centerPanel.currentPanels.push(this.leftPanel);this.centerPanel.owner=this.leftPanel;this.centerPanel.closeable=false}else if(config.LAYOUT_PRESET==types.LAYOUT_PRESET.SINGLE&&config.FILE_PANEL_OPTIONS_MAIN!=null)this.createPanel(config.FILE_PANEL_OPTIONS_MAIN,this.layoutCenter,types.LAYOUT_REGION.CENTER);if(config.PANEL_OPTIONS.ALLOW_INFO_VIEW&&config.FILE_PANEL_OPTIONS_RIGHT&&config.FILE_PANEL_OPTIONS_RIGHT.AUTO_OPEN)this.getPanelManager().openProperties(null,
this.layoutRight);if(this.persistent){this.setupToggleSplitterListeners();var thiz=this;setTimeout(function(){thiz._restoreToggleSplitters();thiz.resize();thiz.publish(types.EVENTS.RESIZE,{},this)},100)}},getPanelManager:function(){return this.panelManager},onShowPanel:function(data){var panel=data?data?data.panel?data.panel:null:null:null;var showBreadcrumb=this.config.PANEL_OPTIONS!=null&&(this.config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===true||this.config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===1);if(showBreadcrumb&&
!this.breadCrumb&&panel&&panel.store){var trail=new BreadCrumb({store:panel.store,cssBaseClass:"fileIcon",className:"breadCrumb ui-state-default"},dojo.doc.createElement("div"));this.breadCrumb=trail;this.layoutTop.containerNode.appendChild(trail.domNode);dojo.place(trail.domNode,this.layoutTop.containerNode,"last");trail.startup();this.layoutTop.resize();var thiz=this;trail.onClick=function(item,widget){if(item&&trail.owner&&trail.owner.openItem)trail.owner.openItem(item)};return trail}if(panel&&
panel.getCurrentPathItem){var cPathItem=panel.getCurrentPathItem();if(cPathItem&&this.breadCrumb);}},onDidOpenItem:function(data){var item=data?data?data.item?data.item:null:null:null;if(item&&item.path&&item.directory===true){if(!this.breadCrumb)this.breadCrumb=this.createBreadCrumb(this.config,item._S);if(this.breadCrumb){if(this.breadCrumb.store!=item._S){this.breadCrumb.store=item._S;this.breadCrumb._clearTrail()}this.breadCrumb.setTrail(item.path);this.breadCrumb.owner=data.panel}}},createBreadCrumb:function(config,
store){if(this.breadCrumb){return;utils.destroyWidget(this.breadCrumb)}var breadCrumb=null;try{breadCrumb=new BreadCrumb({store:store,cssBaseClass:"fileIcon",className:"breadCrumb"},dojo.doc.createElement("div"))}catch(e){debugger}this.layoutTop.containerNode.appendChild(breadCrumb.domNode);dojo.place(breadCrumb.domNode,this.layoutTop.containerNode,"last");breadCrumb.startup();this.layoutTop.resize();this.layoutMain.resize();var thiz=this;breadCrumb.onClick=function(item,widget){if(item&&breadCrumb.owner&&
breadCrumb.owner.openItem)breadCrumb.owner.openItem(item)};return breadCrumb},_createToolbarEx:function(displayMode,config,container){if(displayMode=="self"){this.actionToolbar=new ActionToolbarEmbedded({delegate:this.ctx.getPanelManager(),ctx:this.ctx,config:config,useElusive:true},dojo.doc.createElement("div"));domClass.add(this.actionToolbar.domNode,"actionToolbarEmbedded");container.containerNode.appendChild(this.actionToolbar.domNode);this.actionToolbar.startup()}},initWithConfig:function(config){var thiz=
this;try{setTimeout(function(){thiz.prepareLayout(config)},100);setTimeout(function(){thiz.createPanels(config);thiz.restorePermaLink(null)},200);setTimeout(function(){if(config&&config.ACTION_TOOLBAR_MODE!=null)try{thiz._createToolbarEx(config.ACTION_TOOLBAR_MODE,config,thiz.layoutTop)}catch(e){}if(config.PANEL_OPTIONS!=null&&(config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===true||config.PANEL_OPTIONS.ALLOW_BREADCRUMBS===1));},500);setTimeout(function(){thiz.publish(types.EVENTS.ON_MAIN_VIEW_READY,null,
thiz)},3E3)}catch(e){debugger}},onItemSelected:function(evt){if(this.breadCrumb&&evt.item&&evt.callee&&evt.callee.delegate){var item=evt.item;if(item&&item.path&&item.directory===true){if(this.breadCrumb.store!=item._S){this.breadCrumb.store=item._S;this.breadCrumb._clearTrail()}if(item._S.isItemLoaded(item))this.breadCrumb.setTrail(item.path);this.breadCrumb.owner=evt.callee.delegate}}},removeEmptyContainers:function(){utils.destroyIfEmpty(this.layoutRight);utils.destroyIfEmpty(this.layoutCenter);
utils.destroyIfEmpty(this.layoutLeft);utils.destroyIfEmpty(this.layoutTop);utils.destroyIfEmpty(this.layoutBottom)},postMixInProperties:function(){this.inherited(arguments)},startup:function(){this.inherited(arguments);this.buttons=[];if(this.toolbar)this.toolbar.delegate=this;factory.subscribe(types.EVENTS.ON_DID_OPEN_ITEM,this.onDidOpenItem,this);var thiz=this;factory.subscribe(types.EVENTS.ITEM_SELECTED,function(data){thiz.onItemSelected(data)},this);factory.subscribe(types.EVENTS.ON_SHOW_PANEL,
this.onShowPanel,this);factory.subscribe(types.EVENTS.UPLOAD_BEGIN,this.onUploadBegin,this);factory.subscribe(types.EVENTS.ON_PANEL_CLOSED,this.onPanelClosed,this);factory.subscribe(types.EVENTS.ON_COPY_BEGIN,this.onCopyBegin,this);factory.subscribe(types.EVENTS.ON_DELETE_BEGIN,this.onDeleteBegin,this);factory.subscribe(types.EVENTS.ON_MOVE_BEGIN,this.onMoveBegin,this);factory.subscribe(types.EVENTS.ON_COMPRESS_BEGIN,this.onCompressBegin,this);this._setupTranslations()},_resizeContainer:function(container,
name){try{if(container&&container.domNode)container.resize();else;}catch(e){}},_fixToolbar:function(){if(this.toolbar&&this.layoutBottom&&this.layoutMain&&this.layoutBottom.domNode)dojo.place(this.toolbar.domNode,this.layoutBottom.domNode,"before")},resize:function(){this.inherited(arguments);if(this.layoutMain)this._resizeContainer(this.layoutMain,"main");if(this.layoutLeft)this._resizeContainer(this.layoutLeft,"left");if(this.layoutTop)this._resizeContainer(this.layoutTop,"top");if(this.layoutCenter)this._resizeContainer(this.layoutCenter,
"center");if(this.layoutRight)this._resizeContainer(this.layoutRight,"right");if(this.layoutLeft)this._resizeContainer(this.layoutLeft,"left");if(this.layoutBottom)this._resizeContainer(this.layoutBottom,"bottom")},onStartupPost:function(){var thiz=this;dojo.connect(null,dojo.global.onorientationchange!==undefined?"onorientationchange":"onresize",this,function(){thiz.resize()});factory.subscribe(types.EVENTS.IMAGE_LOADED,thiz.resize);factory.subscribe(types.EVENTS.ON_DID_OPEN_ITEM,thiz.onDidOpenItem);
factory.subscribe(types.EVENTS.UPLOAD_BEGIN,thiz.onUploadBegin);this.removeEmptyContainers();this.resize()},postCreate:function(){this.inherited(arguments)},buildRendering:function(){this.inherited(arguments)},_createBottomTabContainer:function(){if(this.layoutBottomPlaceHolder){utils.destroyWidget(this.layoutBottomPlaceHolder);this.layoutBottomPlaceHolder=null}var tabContainer=new dijit.layout.TabContainer({tabStrip:true,tabPosition:"bottom",region:"bottom",attachParent:true,style:"width:100%"},
dojo.doc.createElement("div"));this.layoutBottom.containerNode.appendChild(tabContainer.domNode);tabContainer.startup();return tabContainer},_createProgressItem:function(item,parent){var uploadItem=new UploadItem({item:item,name:item.name},dojo.doc.createElement("div"));parent.appendChild(uploadItem.domNode);uploadItem.startup();return uploadItem},showLogPanel:function(){if(this.config.PANEL_OPTIONS!=null&&this.config.PANEL_OPTIONS.ALLOW_LOG_VIEW===false)return false;if(!this.bottomTabContainer){this.bottomTabContainer=
this._createBottomTabContainer();this.logPanel=new dijit.layout.ContentPane({className:"bottomTabLog",title:"Log",style:"padding:0;background-color: transparent;"},dojo.doc.createElement("div"));this.bottomTabContainer.addChild(this.logPanel)}if(this.bottomTabContainer&&this.logPanel)this.bottomTabContainer.selectChild(this.logPanel);var splitter=this.layoutBottom._splitterWidget;if(splitter)switch(splitter.state){case "full":break;case "collapsed":case "closed":splitter.set("state","full");break}return true},
_createLogItem:function(item,message,parent,terminatorMessage){var uploadItem=new ProgressItem({terminatorItem:item,terminatorMessage:terminatorMessage,message:message},dojo.doc.createElement("div"));parent.appendChild(uploadItem.domNode);uploadItem.startup();parent.appendChild(dojo.create("div",{className:"logEntry",innerHTML:""}));return uploadItem},_scrollToEnd:function(){var l=dojo.query(".bottomTabLog :last-child")[0];dojox.fx.smoothScroll({node:dojo.query(".bottomTabLog :last-child")[0],win:this.logPanel.domNode}).play()},
onDeleteBegin:function(data){if(!this.showLogPanel())return;var items=data.items;var message=this.translate("removing")+" "+items.length+" "+this.translate("items");var tab=this.logPanel;if(tab){var logItem=this._createLogItem(items,message,tab.containerNode,types.EVENTS.ON_DELETE_END);dojo.place(logItem.domNode,tab.containerNode,"first")}},onCopyBegin:function(data){if(!this.showLogPanel())return;var items=data.src;var message=this.translate("copying")+" "+items.length+" "+this.translate("items")+
" "+this.translate("to")+" "+data.dst;var tab=this.logPanel;if(tab){var logItem=this._createLogItem(items,message,tab.containerNode,types.EVENTS.ON_COPY_END);dojo.place(logItem.domNode,tab.containerNode,"first")}},onMoveBegin:function(data){if(!this.showLogPanel())return;var items=data.src;var message=this.translate("moving")+" "+items.length+" "+this.translate("items")+" "+this.translate("to")+" "+data.dst;var tab=this.logPanel;if(tab){var logItem=this._createLogItem(items,message,tab.containerNode,
types.EVENTS.ON_MOVE_END);dojo.place(logItem.domNode,tab.containerNode,"first")}},onCompressBegin:function(data){if(!this.showLogPanel())return;var items=data.src;var message=this.translate("compressing")+" "+items.length+" "+this.translate("items");var tab=this.logPanel;if(tab){var logItem=this._createLogItem(items,message,tab.containerNode,types.EVENTS.ON_COMPRESS_END);dojo.place(logItem.domNode,tab.containerNode,"first")}},onUploadBegin:function(data){if(!this.showLogPanel())return;var item=data.item;
if(item){var tab=this.logPanel;if(tab){var uploadItem=this._createProgressItem(item,tab.containerNode);dojo.place(uploadItem.domNode,tab.containerNode,"first")}}}})})},"cbtree/model/_base/Parents":function(){define("cbtree/model/_base/Parents",["../../util/shim/Array"],function(){function Parents(childItem,attribute){var attribute=attribute||"parent";var undef;this.multiple=true;this.length=0;this.input=null;function assign(ids){Array.prototype.splice.call(this,0,this.length);if(ids instanceof Array)ids.forEach(function(id,
idx){this[idx]=id;this.length++},this);else{assign.call(this,[ids]);this.multiple=false;this.length=1}}this.add=function(id,multiple){if(id!=undef){if(!this.contains(id)){if(multiple||this.multiple){this[this.length++]=id;this.multiple=this.length>1}else this.set(id);return true}return false}};this.contains=function(id){return Array.prototype.some.call(this,function(member){return member===id})};this.forEach=function(callback,thisArg){Array.prototype.forEach.call(this,callback,thisArg)};this.remove=
function(id){return Array.prototype.some.call(this,function(member,idx){if(member===id){Array.prototype.splice.call(this,idx,1);return true}},this)};this.set=function(id){Array.prototype.splice.call(this,0,this.length);this[0]=id;this.length=1;return true};this.toValue=function(){return this.multiple?Array.prototype.slice.call(this):this[0]};if(childItem!=undef){if(childItem instanceof Array)this.input=childItem;else if(typeof childItem==="object")this.input=childItem[attribute];else if(typeof childItem===
"string"){this.input=childItem.split(/\s*,\s*/);if(this.input.length==1)this.input=childItem}else this.input=childItem;if(this.input!=undef)assign.call(this,this.input);else this.multiple=false}}return Parents})},"dijit/form/ComboBoxMixin":function(){require({cache:{"url:dijit/form/templates/DropDownBox.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tid\x3d"widget_${id}"\n\trole\x3d"combobox"\n\taria-haspopup\x3d"true"\n\tdata-dojo-attach-point\x3d"_popupStateNode"\n\t\x3e\x3cdiv class\x3d\'dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer\'\n\t\tdata-dojo-attach-point\x3d"_buttonNode" role\x3d"presentation"\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitArrowButtonInner" value\x3d"\x26#9660; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"button presentation" aria-hidden\x3d"true"\n\t\t\t${_buttonInputDisabled}\n\t/\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d\'dijitReset dijitValidationContainer\'\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value\x3d"\x26#935; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t/\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitInputContainer"\n\t\t\x3e\x3cinput class\x3d\'dijitReset dijitInputInner\' ${!nameAttrSetting} type\x3d"text" autocomplete\x3d"off"\n\t\t\tdata-dojo-attach-point\x3d"textbox,focusNode" role\x3d"textbox"\n\t/\x3e\x3c/div\n\x3e\x3c/div\x3e\n'}});
define("dijit/form/ComboBoxMixin",["dojo/_base/declare","dojo/Deferred","dojo/_base/kernel","dojo/_base/lang","dojo/store/util/QueryResults","./_AutoCompleterMixin","./_ComboBoxMenu","../_HasDropDown","dojo/text!./templates/DropDownBox.html"],function(declare,Deferred,kernel,lang,QueryResults,_AutoCompleterMixin,_ComboBoxMenu,_HasDropDown,template){return declare("dijit.form.ComboBoxMixin",[_HasDropDown,_AutoCompleterMixin],{dropDownClass:_ComboBoxMenu,hasDownArrow:true,templateString:template,baseClass:"dijitTextBox dijitComboBox",
cssStateNodes:{"_buttonNode":"dijitDownArrowButton"},_setHasDownArrowAttr:function(val){this._set("hasDownArrow",val);this._buttonNode.style.display=val?"":"none"},_showResultList:function(){this.displayMessage("");this.inherited(arguments)},_setStoreAttr:function(store){if(!store.get)lang.mixin(store,{_oldAPI:true,get:function(id){var deferred=new Deferred;this.fetchItemByIdentity({identity:id,onItem:function(object){deferred.resolve(object)},onError:function(error){deferred.reject(error)}});return deferred.promise},
query:function(query,options){var deferred=new Deferred(function(){fetchHandle.abort&&fetchHandle.abort()});deferred.total=new Deferred;var fetchHandle=this.fetch(lang.mixin({query:query,onBegin:function(count){deferred.total.resolve(count)},onComplete:function(results){deferred.resolve(results)},onError:function(error){deferred.reject(error)}},options));return QueryResults(deferred)}});this._set("store",store)},postMixInProperties:function(){var store=this.params.store||this.store;if(store)this._setStoreAttr(store);
this.inherited(arguments);if(!this.params.store&&!this.store._oldAPI){var clazz=this.declaredClass;lang.mixin(this.store,{getValue:function(item,attr){kernel.deprecated(clazz+".store.getValue(item, attr) is deprecated for builtin store.  Use item.attr directly","","2.0");return item[attr]},getLabel:function(item){kernel.deprecated(clazz+".store.getLabel(item) is deprecated for builtin store.  Use item.label directly","","2.0");return item.name},fetch:function(args){kernel.deprecated(clazz+".store.fetch() is deprecated for builtin store.",
"Use store.query()","2.0");var shim=["dojo/data/ObjectStore"];require(shim,lang.hitch(this,function(ObjectStore){(new ObjectStore({objectStore:this})).fetch(args)}))}})}}})})},"dijit/tree/dndSource":function(){define("dijit/tree/dndSource",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/_base/lang","dojo/on","dojo/touch","dojo/topic","dojo/dnd/Manager","./_dndSelector"],function(array,connect,declare,domClass,domGeometry,lang,on,touch,topic,
DNDManager,_dndSelector){var dndSource=declare("dijit.tree.dndSource",_dndSelector,{isSource:true,accept:["text","treeNode"],copyOnly:false,dragThreshold:5,betweenThreshold:0,generateText:true,constructor:function(tree,params){if(!params)params={};lang.mixin(this,params);var type=params.accept instanceof Array?params.accept:["text","treeNode"];this.accept=null;if(type.length){this.accept={};for(var i=0;i<type.length;++i)this.accept[type[i]]=1}this.isDragging=false;this.mouseDown=false;this.targetAnchor=
null;this.targetBox=null;this.dropPosition="";this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource)domClass.add(this.node,"dojoDndSource");this.targetState="";if(this.accept)domClass.add(this.node,"dojoDndTarget");this.topics=[topic.subscribe("/dnd/source/over",lang.hitch(this,"onDndSourceOver")),topic.subscribe("/dnd/start",lang.hitch(this,"onDndStart")),topic.subscribe("/dnd/drop",lang.hitch(this,"onDndDrop")),topic.subscribe("/dnd/cancel",lang.hitch(this,"onDndCancel"))]},checkAcceptance:function(){return true},
copyState:function(keyPressed){return this.copyOnly||keyPressed},destroy:function(){this.inherited(arguments);var h;while(h=this.topics.pop())h.remove();this.targetAnchor=null},_onDragMouse:function(e,firstTime){var m=DNDManager.manager(),oldTarget=this.targetAnchor,newTarget=this.current,oldDropPosition=this.dropPosition;var newDropPosition="Over";if(newTarget&&this.betweenThreshold>0){if(!this.targetBox||oldTarget!=newTarget)this.targetBox=domGeometry.position(newTarget.rowNode,true);if(e.pageY-
this.targetBox.y<=this.betweenThreshold)newDropPosition="Before";else if(e.pageY-this.targetBox.y>=this.targetBox.h-this.betweenThreshold)newDropPosition="After"}if(firstTime||newTarget!=oldTarget||newDropPosition!=oldDropPosition){if(oldTarget)this._removeItemClass(oldTarget.rowNode,oldDropPosition);if(newTarget)this._addItemClass(newTarget.rowNode,newDropPosition);if(!newTarget)m.canDrop(false);else if(newTarget==this.tree.rootNode&&newDropPosition!="Over")m.canDrop(false);else{var sameId=false;
if(m.source==this)for(var dragId in this.selection){var dragNode=this.selection[dragId];if(dragNode.item===newTarget.item){sameId=true;break}}if(sameId)m.canDrop(false);else if(this.checkItemAcceptance(newTarget.rowNode,m.source,newDropPosition.toLowerCase())&&!this._isParentChildDrop(m.source,newTarget.rowNode))m.canDrop(true);else m.canDrop(false)}this.targetAnchor=newTarget;this.dropPosition=newDropPosition}},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled")return;this.inherited(arguments);
var m=DNDManager.manager();if(this.isDragging)this._onDragMouse(e);else if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>=this.dragThreshold||Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){var nodes=this.getSelectedTreeNodes();if(nodes.length){if(nodes.length>1){var seen=this.selection,i=0,r=[],n,p;nextitem:while(n=nodes[i++]){for(p=n.getParent();p&&p!==this.tree;p=p.getParent())if(seen[p.id])continue nextitem;r.push(n)}nodes=r}nodes=array.map(nodes,function(n){return n.domNode});
m.startDrag(this,nodes,this.copyState(connect.isCopyKey(e)));this._onDragMouse(e,true)}}},onMouseDown:function(e){this.mouseDown=true;this.mouseButton=e.button;this._lastX=e.pageX;this._lastY=e.pageY;this.inherited(arguments)},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;this.inherited(arguments)}},onMouseOut:function(){this.inherited(arguments);this._unmarkTargetAnchor()},checkItemAcceptance:function(){return true},onDndSourceOver:function(source){if(this!=source){this.mouseDown=
false;this._unmarkTargetAnchor()}else if(this.isDragging){var m=DNDManager.manager();m.canDrop(false)}},onDndStart:function(source,nodes,copy){if(this.isSource)this._changeState("Source",this==source?copy?"Copied":"Moved":"");var accepted=this.checkAcceptance(source,nodes);this._changeState("Target",accepted?"":"Disabled");if(this==source)DNDManager.manager().overSource(this);this.isDragging=true},itemCreator:function(nodes){return array.map(nodes,function(node){return{"id":node.id,"name":node.textContent||
node.innerText||""}})},onDndDrop:function(source,nodes,copy){if(this.containerState=="Over"){var tree=this.tree,model=tree.model,target=this.targetAnchor;this.isDragging=false;var newParentItem;var insertIndex;var before;newParentItem=target&&target.item||tree.item;if(this.dropPosition=="Before"||this.dropPosition=="After"){newParentItem=target.getParent()&&target.getParent().item||tree.item;insertIndex=target.getIndexInParent();if(this.dropPosition=="After"){insertIndex=target.getIndexInParent()+
1;before=target.getNextSibling()&&target.getNextSibling().item}else before=target.item}else newParentItem=target&&target.item||tree.item;var newItemsParams;array.forEach(nodes,function(node,idx){var sourceItem=source.getItem(node.id);if(array.indexOf(sourceItem.type,"treeNode")!=-1)var childTreeNode=sourceItem.data,childItem=childTreeNode.item,oldParentItem=childTreeNode.getParent().item;if(source==this){if(typeof insertIndex=="number")if(newParentItem==oldParentItem&&childTreeNode.getIndexInParent()<
insertIndex)insertIndex-=1;model.pasteItem(childItem,oldParentItem,newParentItem,copy,insertIndex,before)}else if(model.isItem(childItem))model.pasteItem(childItem,oldParentItem,newParentItem,copy,insertIndex,before);else{if(!newItemsParams)newItemsParams=this.itemCreator(nodes,target.rowNode,source);model.newItem(newItemsParams[idx],newParentItem,insertIndex,before)}},this);this.tree._expandNode(target)}this.onDndCancel()},onDndCancel:function(){this._unmarkTargetAnchor();this.isDragging=false;this.mouseDown=
false;delete this.mouseButton;this._changeState("Source","");this._changeState("Target","")},onOverEvent:function(){this.inherited(arguments);DNDManager.manager().overSource(this)},onOutEvent:function(){this._unmarkTargetAnchor();var m=DNDManager.manager();if(this.isDragging)m.canDrop(false);m.outSource(this);this.inherited(arguments)},_isParentChildDrop:function(source,targetRow){if(!source.tree||source.tree!=this.tree)return false;var root=source.tree.domNode;var ids=source.selection;var node=targetRow.parentNode;
while(node!=root&&!ids[node.id])node=node.parentNode;return node.id&&ids[node.id]},_unmarkTargetAnchor:function(){if(!this.targetAnchor)return;this._removeItemClass(this.targetAnchor.rowNode,this.dropPosition);this.targetAnchor=null;this.targetBox=null;this.dropPosition=null},_markDndStatus:function(copy){this._changeState("Source",copy?"Copied":"Moved")}});return dndSource})},"xide/views/CIActionDialog":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-style",
"dojo/on","xide/views/ActionDialog","xide/factory","xide/types","xide/utils","xide/views/CIView","dojo/dom-geometry"],function(array,declare,html,domStyle,on,ActionDialog,factory,types,utils,CIView,domGeometry){return declare("xide.views.CIActionDialog",[ActionDialog],{cis:null,cisView:null,title:"Settings",dialogClass:"CIDialogRoot",cssClass:"ui-state-default CIDialog",onOk:function(){if(this.delegate&&this.delegate.onOk)this.delegate.onOk(this,this.cisView.getCIS());try{this.hide()}catch(e){}},
fixHeight:function(){var actionBox=domGeometry.getMarginBox(this.actionBar);var box=domGeometry.getMarginBox(this.domNode);var newHeight=box.h+actionBox.h;domStyle.set(this.domNode,{height:newHeight+"px"})},initWithCIS:function(cis){this.cisView=utils.addWidget(CIView,{delegate:this,options:{},cis:cis},this,this.containerNode,true)},startup:function(){if(this.cis)this.initWithCIS(this.cis);this.addActionButtons();this.inherited(arguments)}})})},"cbtree/model/_base/CheckedStoreModel":function(){define("cbtree/model/_base/CheckedStoreModel",
["module","dojo/_base/declare","dojo/_base/lang","dojo/Deferred","dojo/when","./BaseStoreModel","../../errors/createError!../../errors/CBTErrors.json"],function(module,declare,lang,Deferred,when,BaseStoreModel,createError){var CBTError=createError(module.id);var undef;var CheckedStoreModel=declare([BaseStoreModel],{checkedAll:true,checkedAttr:"checked",checkedRoot:false,checkedState:false,checkedStrict:true,enabledAttr:"",multiState:true,normalize:true,_validating:0,_checkedInherit:true,constructor:function(kwArgs){if(!this._writeEnabled)throw new CBTError("MethodMissing",
"constructor","Store must be write enabled, no put() supported");this.set("checkedStrict",this.checkedStrict);if(this.checkedStrict===true)this._loadOptions={all:true};this._validateDefer=new Deferred},_checkedAttrSetter:function(name){if(typeof name=="string"){if(/\./.test(name))throw new CBTError("InvalidType","set","checkedAttr can not be a dot separated string");}else throw new CBTError("InvalidType","set","checkedAttr value must be a string");return this.checkedAttr},_checkedStrictSetter:function(value){value=
value.toLowerCase?value.toLowerCase():!!value;this._checkedInherit=true;switch(value){case false:this._checkedInherit=false;break;case true:break;case "inherit":value=false;break;default:throw new CBTError("InvalidType","set","invalid checkedStrict value");}this.checkedStrict=value;return this.checkedStrict},_enabledAttrSetter:function(value){if(typeof value==="string"){if(this.enabledAttr!==value)throw new CBTError("ReadOnly","set","property enabledAttr is read-only");}else throw new CBTError("InvalidType",
"set","enabledAttr value must be a string");return this.enabledAttr},getChecked:function(storeItem){if(storeItem==this.root&&!this.checkedRoot)return;var checked=storeItem[this.checkedAttr];if(checked==undef)if(this.checkedAll){this._setChecked(storeItem,this.checkedState);return this.checkedState}return checked},getEnabled:function(object){var enabled=true;if(this.enabledAttr)enabled=object[this.enabledAttr];return enabled==undef||!!enabled},setChecked:function(storeItem,newState){if(!this.checkedStrict&&
!this._checkedInherit)this._setChecked(storeItem,newState);else this._updateCheckedChild(storeItem,newState)},setEnabled:function(object,value){if(this.enabledAttr)return this._setValue(object,this.enabledAttr,!!value)},validateData:function(){},_getCompositeState:function(children){var hasChecked=false,hasUnchecked=false,isMixed=false,newState,state;children.some(function(child){state=this.getChecked(child);isMixed|=state=="mixed";switch(state){case true:hasChecked=true;break;case false:hasUnchecked=
true;break}return isMixed},this);if(isMixed||hasChecked||hasUnchecked){isMixed|=!(hasChecked^hasUnchecked);newState=isMixed?"mixed":hasChecked?true:false}return newState},_normalizeState:function(storeItem,state){if(this.multiState&&state=="mixed"){if(this.normalize&&!this.mayHaveChildren(storeItem))return true;return state}return!!state},_setChecked:function(storeItem,newState){var forceUpdate=false,normState;normState=this._normalizeState(storeItem,newState);forceUpdate=normState!=newState;var currState=
storeItem[this.checkedAttr];if((currState!==undef||this.checkedAll)&&(currState!=normState||forceUpdate)){this._setValue(storeItem,this.checkedAttr,normState);return true}return false},_updateCheckedChild:function(parent,newState){var model=this;this._setChecked(parent,newState);this.getChildren(parent,function(children){children.forEach(function(child){model._updateCheckedChild(child,newState)})},function(err){console.error(err)})},_updateCheckedParent:function(child,forceUpdate){if(!this.checkedStrict||
!child)return;var promise=this.getParents(child),childState=this.getChecked(child),model=this,newState;promise.then(function(parents){parents.forEach(function(parentItem){if(childState!==model.getChecked(parentItem)||forceUpdate)model.getChildren(parentItem,function(children){newState=model._getCompositeState(children);if(newState!==undef)model._setChecked(parentItem,newState)},model.onError)},this)})},_validateChildren:function(parent,children){var children,currState,newState;this._validating+=1;
children=children instanceof Array?children:[children];children.forEach(function(child){if(this.mayHaveChildren(child))this.getChildren(child,lang.hitch(this,function(children){this._validateChildren(child,children)}),function(err){console.error(err)});else{currState=this.getChecked(child);if(currState){newState=this.normalize?!!currState:currState;if(currState!=newState)this._setValue(child,this.checkedAttr,newState)}}},this);currState=this.getChecked(parent);newState=this._getCompositeState(children);
if(currState!==undef&&newState!==undef&&currState!=newState)this._setChecked(parent,newState);this._validating--;if(!this._validating)this._onDataValidated()},_validateStore:function(){var model=this;this._validateDefer=new Deferred;if(this.checkedStrict)if(!this.store.isValidated){if(!this._validating)this.getRoot(function(rootItem){model.getChildren(rootItem,function(children){model._validateChildren(rootItem,children)},model.onError)},model.onError)}else this._onDataValidated();else this._validateDefer.resolve();
return this._validateDefer.promise},_onChildrenChange:function(parent,newChildrenList){var first=newChildrenList[0]||null;var self=this;if(this.checkedStrict)if(first)if(this._observable)setTimeout(function(){self._updateCheckedParent(first,true)},0);else self._updateCheckedParent(first,true);else if(this._observable)setTimeout(function(){self._setChecked(parent,parent[self.checkedAttr])},0);else this._setChecked(parent,parent[this.checkedAttr]);this.onChildrenChange(parent,newChildrenList)},_onDataValidated:function(){this.store.isValidated=
true;this.onDataValidated();this._validateDefer.resolve()},_onSetItem:function(storeItem,property,oldValue,newValue){var self=this;if(this.checkedStrict)if(property===this.checkedAttr)if(this._observable)setTimeout(function(){self._updateCheckedParent(storeItem,false)},0);else self._updateCheckedParent(storeItem,false);return this.inherited(arguments)},_onStoreClosed:function(cleared,count){if(!this._resetPending){if(!!cleared)delete this.store.isValidated;this.inherited(arguments)}},onDataValidated:function(){}});
return CheckedStoreModel})},"dijit/BackgroundIframe":function(){define("dijit/BackgroundIframe",["require","./main","dojo/_base/config","dojo/dom-construct","dojo/dom-style","dojo/_base/lang","dojo/on","dojo/sniff"],function(require,dijit,config,domConstruct,domStyle,lang,on,has){has.add("config-bgIframe",!has("touch"));function make(transparent){var iframe;if(has("ie")<9){var burl=config["dojoBlankHtmlUrl"]||require.toUrl("dojo/resources/blank.html")||'javascript:""';var html="\x3ciframe src\x3d'"+
burl+"' role\x3d'presentation'"+" style\x3d'position: absolute; left: 0px; top: 0px; z-index: -1;"+(transparent?'filter:Alpha(Opacity\x3d"0");':"")+"'\x3e";iframe=document.createElement(html)}else{iframe=domConstruct.create("iframe");iframe.src='javascript:""';iframe.className="dijitBackgroundIframe";iframe.setAttribute("role","presentation");if(transparent)domStyle.set(iframe,"opacity",0.1)}iframe.tabIndex=-1;return iframe}var _frames=new function(){var queue=[];this.pop=function(){var iframe;if(queue.length){iframe=
queue.pop();iframe.style.display=""}else return make();return iframe};this.push=function(iframe){iframe.style.display="none";queue.push(iframe)}};dijit.BackgroundIframe=function(node,transparent){if(!node.id)throw new Error("no id");if(has("config-bgIframe")){var iframe=this.iframe=transparent?make(true):_frames.pop();node.appendChild(iframe);if(has("ie")<7||has("quirks")){this.resize(node);this._conn=on(node,"resize",lang.hitch(this,"resize",node))}else domStyle.set(iframe,{width:"100%",height:"100%"})}};
lang.extend(dijit.BackgroundIframe,{resize:function(node){if(this.iframe)domStyle.set(this.iframe,{width:node.offsetWidth+"px",height:node.offsetHeight+"px"})},destroy:function(){if(this._conn){this._conn.remove();this._conn=null}if(this.iframe){_frames.push(this.iframe);delete this.iframe}}});return dijit.BackgroundIframe})},"dojox/mobile/common":function(){define("dojox/mobile/common",["dojo/_base/array","dojo/_base/config","dojo/_base/connect","dojo/_base/lang","dojo/_base/window","dojo/_base/kernel",
"dojo/dom-class","dojo/dom-construct","dojo/ready","dojo/touch","dijit/registry","./sniff","./uacss"],function(array,config,connect,lang,win,kernel,domClass,domConstruct,ready,touch,registry,has){var dm=lang.getObject("dojox.mobile",true);if(typeof Liferay=="undefined"||Liferay==null)win.doc.dojoClick=true;if(has("touch")){has.add("clicks-prevented",!(has("android")>=4.1||has("ie")>=10));if(has("clicks-prevented"))dm._sendClick=function(target,e){for(var node=target;node;node=node.parentNode)if(node.dojoClick)return;
var ev=win.doc.createEvent("MouseEvents");ev.initMouseEvent("click",true,true,win.global,1,e.screenX,e.screenY,e.clientX,e.clientY);target.dispatchEvent(ev)}}dm.getScreenSize=function(){return{h:win.global.innerHeight||win.doc.documentElement.clientHeight,w:win.global.innerWidth||win.doc.documentElement.clientWidth}};dm.updateOrient=function(){var dim=dm.getScreenSize();domClass.replace(win.doc.documentElement,dim.h>dim.w?"dj_portrait":"dj_landscape",dim.h>dim.w?"dj_landscape":"dj_portrait")};dm.updateOrient();
dm.tabletSize=500;dm.detectScreenSize=function(force){var dim=dm.getScreenSize();var sz=Math.min(dim.w,dim.h);var from,to;if(sz>=dm.tabletSize&&(force||!this._sz||this._sz<dm.tabletSize)){from="phone";to="tablet"}else if(sz<dm.tabletSize&&(force||!this._sz||this._sz>=dm.tabletSize)){from="tablet";to="phone"}if(to){domClass.replace(win.doc.documentElement,"dj_"+to,"dj_"+from);connect.publish("/dojox/mobile/screenSize/"+to,[dim])}this._sz=sz};dm.detectScreenSize();dm.hideAddressBarWait=typeof config["mblHideAddressBarWait"]===
"number"?config["mblHideAddressBarWait"]:1500;dm.hide_1=function(){scrollTo(0,1);dm._hidingTimer=dm._hidingTimer==0?200:dm._hidingTimer*2;setTimeout(function(){if(dm.isAddressBarHidden()||dm._hidingTimer>dm.hideAddressBarWait){dm.resizeAll();dm._hiding=false}else setTimeout(dm.hide_1,dm._hidingTimer)},50)};dm.hideAddressBar=function(evt){if(dm.disableHideAddressBar||dm._hiding)return;dm._hiding=true;dm._hidingTimer=has("ios")?200:0;var minH=screen.availHeight;if(has("android")){minH=outerHeight/devicePixelRatio;
if(minH==0){dm._hiding=false;setTimeout(function(){dm.hideAddressBar()},200)}if(minH<=innerHeight)minH=outerHeight;if(has("android")<3)win.doc.documentElement.style.overflow=win.body().style.overflow="visible"}if(win.body().offsetHeight<minH){win.body().style.minHeight=minH+"px";dm._resetMinHeight=true}setTimeout(dm.hide_1,dm._hidingTimer)};dm.isAddressBarHidden=function(){return pageYOffset===1};dm.resizeAll=function(evt,root){if(dm.disableResizeAll)return;connect.publish("/dojox/mobile/resizeAll",
[evt,root]);connect.publish("/dojox/mobile/beforeResizeAll",[evt,root]);if(dm._resetMinHeight)win.body().style.minHeight=dm.getScreenSize().h+"px";dm.updateOrient();dm.detectScreenSize();var isTopLevel=function(w){var parent=w.getParent&&w.getParent();return!!((!parent||!parent.resize)&&w.resize)};var resizeRecursively=function(w){array.forEach(w.getChildren(),function(child){if(isTopLevel(child))child.resize();resizeRecursively(child)})};if(root){if(root.resize)root.resize();resizeRecursively(root)}else array.forEach(array.filter(registry.toArray(),
isTopLevel),function(w){w.resize()});connect.publish("/dojox/mobile/afterResizeAll",[evt,root])};dm.openWindow=function(url,target){win.global.open(url,target||"_blank")};dm._detectWindowsTheme=function(){if(navigator.userAgent.match(/IEMobile\/10\.0/))domConstruct.create("style",{innerHTML:"@-ms-viewport {width: auto !important}"},win.doc.head);var setWindowsTheme=function(){domClass.add(win.doc.documentElement,"windows_theme");kernel.experimental("Dojo Mobile Windows theme","Behavior and appearance of the Windows theme are experimental.")};
var windows=has("windows-theme");if(windows!==undefined){if(windows)setWindowsTheme();return}var i,j;var check=function(href){if(href&&href.indexOf("/windows/")!==-1){has.add("windows-theme",true);setWindowsTheme();return true}return false};var s=win.doc.styleSheets;for(i=0;i<s.length;i++){if(s[i].href)continue;var r=s[i].cssRules||s[i].imports;if(!r)continue;for(j=0;j<r.length;j++)if(check(r[j].href))return}var elems=win.doc.getElementsByTagName("link");for(i=0;i<elems.length;i++)if(check(elems[i].href))return};
if(config["mblApplyPageStyles"]!==false)domClass.add(win.doc.documentElement,"mobile");if(has("chrome"))domClass.add(win.doc.documentElement,"dj_chrome");if(win.global._no_dojo_dm){var _dm=win.global._no_dojo_dm;for(var i in _dm)dm[i]=_dm[i];dm.deviceTheme.setDm(dm)}has.add("mblAndroidWorkaround",config["mblAndroidWorkaround"]!==false&&has("android")<3,undefined,true);has.add("mblAndroid3Workaround",config["mblAndroid3Workaround"]!==false&&has("android")>=3,undefined,true);dm._detectWindowsTheme();
ready(function(){dm.detectScreenSize(true);domClass.add(win.body(),"mblBackground");if(config["mblAndroidWorkaroundButtonStyle"]!==false&&has("android"))domConstruct.create("style",{innerHTML:"BUTTON,INPUT[type\x3d'button'],INPUT[type\x3d'submit'],INPUT[type\x3d'reset'],INPUT[type\x3d'file']::-webkit-file-upload-button{-webkit-appearance:none;} audio::-webkit-media-controls-play-button,video::-webkit-media-controls-play-button{-webkit-appearance:media-play-button;} video::-webkit-media-controls-fullscreen-button{-webkit-appearance:media-fullscreen-button;}"},
win.doc.head,"first");if(has("mblAndroidWorkaround"))domConstruct.create("style",{innerHTML:".mblView.mblAndroidWorkaround{position:absolute;top:-9999px !important;left:-9999px !important;}"},win.doc.head,"last");var f=dm.resizeAll;if(config["mblHideAddressBar"]!==false&&navigator.appVersion.indexOf("Mobile")!=-1||config["mblForceHideAddressBar"]===true){dm.hideAddressBar();if(config["mblAlwaysHideAddressBar"]===true)f=dm.hideAddressBar}var ios6=has("ios")>=6;if((has("android")||ios6)&&win.global.onorientationchange!==
undefined){var _f=f;var curSize,curClientWidth,curClientHeight;if(ios6){curClientWidth=win.doc.documentElement.clientWidth;curClientHeight=win.doc.documentElement.clientHeight}else{f=function(evt){var _conn=connect.connect(null,"onresize",null,function(e){connect.disconnect(_conn);_f(e)})};curSize=dm.getScreenSize()}connect.connect(null,"onresize",null,function(e){if(ios6){var newClientWidth=win.doc.documentElement.clientWidth,newClientHeight=win.doc.documentElement.clientHeight;if(newClientWidth==
curClientWidth&&newClientHeight!=curClientHeight)_f(e);curClientWidth=newClientWidth;curClientHeight=newClientHeight}else{var newSize=dm.getScreenSize();if(newSize.w==curSize.w&&Math.abs(newSize.h-curSize.h)>=100)_f(e);curSize=newSize}})}connect.connect(null,win.global.onorientationchange!==undefined?"onorientationchange":"onresize",null,f);win.body().style.visibility="visible"});return dm})},"xstyle/core/load-css":function(){define("xstyle/core/load-css",[],function(){var onreadystatechange="onreadystatechange",
onload="onload",createElement="createElement",failed=false,doc=document,cache=typeof _css_cache=="undefined"?{}:_css_cache,undef,features={"event-link-onload":document.createElement("link").onload===null&&!navigator.userAgent.match(/AppleWebKit/),"dom-create-style-element":!document.createStyleSheet},head=doc.head||(doc.head=doc.getElementsByTagName("head")[0]);function has(feature){return features[feature]}function createLink(doc,optHref){var link=doc[createElement]("link");link.rel="stylesheet";
link.type="text/css";if(optHref)link.href=optHref;return link}function nameWithExt(name,defaultExt){return name.lastIndexOf(".")<=name.lastIndexOf("/")?name+"."+defaultExt:name}function parseSuffixes(name){var parts=name.split("!"),suf,i=1,pair;while(suf=parts[i++]){pair=suf.split("\x3d",2);parts[pair[0]]=pair.length==2?pair[1]:true}return parts}if(!has("bundled-css"))var loadDetector=function(params,cb){if(require.onError)require.onError=function(orig){return function(){failed=true;orig.apply(this,
arguments)}}(require.onError);function loadHandler(params,cb){var link=params.link;link[onreadystatechange]=link[onload]=function(){if(!link.readyState||link.readyState=="complete"){features["event-link-onload"]=true;cleanup(params);cb()}}}function isLinkReady(link){var sheet=link.sheet||link.styleSheet;if(sheet){var styleSheets=document.styleSheets;for(var i=styleSheets.length;i>0;i--)if(styleSheets[i-1]==sheet)return true}}function ssWatcher(params,cb){if(isLinkReady(params.link)){cleanup(params);
cb()}else if(!failed)setTimeout(function(){ssWatcher(params,cb)},params.wait)}function cleanup(params){var link=params.link;link[onreadystatechange]=link[onload]=null}var loaded;function cbOnce(){if(!loaded){loaded=true;cb()}}loadHandler(params,cbOnce);if(!has("event-link-onload"))ssWatcher(params,cbOnce)};function insertCss(css){if(has("dom-create-style-element")){styleSheet=document.createElement("style");styleSheet.setAttribute("type","text/css");styleSheet.appendChild(document.createTextNode(css));
head.insertBefore(styleSheet,head.firstChild);return styleSheet}else{var styleSheet=document.createStyleSheet();styleSheet.cssText=css;return styleSheet.owningElement}}return function(resourceDef,callback,config){var resources=resourceDef.split(","),loadingCount=resources.length,loaded=function(){if(--loadingCount==0)callback(link.sheet||link.styleSheet)};for(var i=0,after;i<resources.length;i++,after=url){resourceDef=resources[i];var cached=cache[resourceDef];if(cached){link=insertCss(cached);return loaded()}var opts=
parseSuffixes(resourceDef),name=opts.shift(),url=nameWithExt(name,"css"),link=createLink(doc),nowait="nowait"in opts?opts.nowait!="false":!!(config&&config.cssDeferLoad),params={link:link,url:url,wait:config&&config.cssWatchPeriod||25};loadDetector(params,loaded);if(nowait)callback(link);link.href=url;head.appendChild(link)}}})},"dojo/dnd/Target":function(){define(["../_base/declare","../dom-class","./Source"],function(declare,domClass,Source){return declare("dojo.dnd.Target",Source,{constructor:function(){this.isSource=
false;domClass.remove(this.node,"dojoDndSource")}})})},"xide/client/ClientBase":function(){define(["dojo/_base/declare","dojo/Stateful","dojo/_base/lang","xide/mixins/ReloadMixin","xide/mixins/EventedMixin"],function(declare,Stateful,lang,ReloadMixin,EventedMixin){return declare("xide.client.ClientBase",[Stateful,ReloadMixin,EventedMixin],{options:null,_socket:null,onConnectionReady:function(){},onClosed:function(){},destroy:function(){if(this._socket&&this._socket.close){0&&console.log("closing connection");
this._socket.close();this.onClosed()}},_defaultOptions:function(){return{}},init:function(arguments){this.options=lang.mixin(this._defaultOptions(),arguments.options);this.initReload()}})})},"dojox/widget/Standby":function(){define("dojox/widget/Standby",["dojo/_base/kernel","dojo/_base/declare","dojo/_base/array","dojo/_base/event","dojo/_base/sniff","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/window","dojo/_base/window","dojo/_base/fx","dojo/fx","dijit/_Widget",
"dijit/_TemplatedMixin","dijit/registry"],function(kernel,declare,array,event,has,dom,attr,construct,geometry,domStyle,window,baseWindow,baseFx,fx,_Widget,_TemplatedMixin,registry){kernel.experimental("dojox.widget.Standby");return declare("dojox.widget.Standby",[_Widget,_TemplatedMixin],{image:require.toUrl("dojox/widget/Standby/images/loading.gif").toString(),imageText:"Please Wait...",text:"Please wait...",centerIndicator:"image",target:"",color:"#C0C0C0",duration:500,zIndex:"auto",opacity:0.75,
templateString:"\x3cdiv\x3e"+'\x3cdiv style\x3d"display: none; opacity: 0; z-index: 9999; '+'position: absolute; cursor:wait;" dojoAttachPoint\x3d"_underlayNode"\x3e\x3c/div\x3e'+'\x3cimg src\x3d"${image}" style\x3d"opacity: 0; display: none; z-index: -10000; '+'position: absolute; top: 0px; left: 0px; cursor:wait;" '+'dojoAttachPoint\x3d"_imageNode"\x3e'+'\x3cdiv style\x3d"opacity: 0; display: none; z-index: -10000; position: absolute; '+'top: 0px;" dojoAttachPoint\x3d"_textNode"\x3e\x3c/div\x3e'+
"\x3c/div\x3e",_underlayNode:null,_imageNode:null,_textNode:null,_centerNode:null,_displayed:false,_resizeCheck:null,_started:false,_parent:null,startup:function(args){if(!this._started){if(typeof this.target==="string"){var w=registry.byId(this.target);this.target=w?w.domNode:dom.byId(this.target)}if(this.text)this._textNode.innerHTML=this.text;if(this.centerIndicator==="image"){this._centerNode=this._imageNode;attr.set(this._imageNode,"src",this.image);attr.set(this._imageNode,"alt",this.imageText)}else this._centerNode=
this._textNode;domStyle.set(this._underlayNode,{display:"none",backgroundColor:this.color});domStyle.set(this._centerNode,"display","none");this.connect(this._underlayNode,"onclick","_ignore");if(this.domNode.parentNode&&this.domNode.parentNode!=baseWindow.body())baseWindow.body().appendChild(this.domNode);if(has("ie")==7){this._ieFixNode=construct.create("div");domStyle.set(this._ieFixNode,{opacity:"0",zIndex:"-1000",position:"absolute",top:"-1000px"});baseWindow.body().appendChild(this._ieFixNode)}this.inherited(arguments)}},
show:function(){if(!this._displayed){if(this._anim){this._anim.stop();delete this._anim}this._displayed=true;this._size();this._disableOverflow();this._fadeIn()}},hide:function(){if(this._displayed){if(this._anim){this._anim.stop();delete this._anim}this._size();this._fadeOut();this._displayed=false;if(this._resizeCheck!==null){clearInterval(this._resizeCheck);this._resizeCheck=null}}},isVisible:function(){return this._displayed},onShow:function(){},onHide:function(){},uninitialize:function(){this._displayed=
false;if(this._resizeCheck)clearInterval(this._resizeCheck);domStyle.set(this._centerNode,"display","none");domStyle.set(this._underlayNode,"display","none");if(has("ie")==7&&this._ieFixNode){baseWindow.body().removeChild(this._ieFixNode);delete this._ieFixNode}if(this._anim){this._anim.stop();delete this._anim}this.target=null;this._imageNode=null;this._textNode=null;this._centerNode=null;this.inherited(arguments)},_size:function(){if(this._displayed){var dir=attr.get(baseWindow.body(),"dir");if(dir)dir=
dir.toLowerCase();var _ie7zoom;var scrollers=this._scrollerWidths();var target=this.target;var curStyle=domStyle.get(this._centerNode,"display");domStyle.set(this._centerNode,"display","block");var box=geometry.position(target,true);if(target===baseWindow.body()||target===baseWindow.doc){box=window.getBox();box.x=box.l;box.y=box.t}var cntrIndicator=geometry.getMarginBox(this._centerNode);domStyle.set(this._centerNode,"display",curStyle);if(this._ieFixNode){_ie7zoom=-this._ieFixNode.offsetTop/1E3;
box.x=Math.floor((box.x+0.9)/_ie7zoom);box.y=Math.floor((box.y+0.9)/_ie7zoom);box.w=Math.floor((box.w+0.9)/_ie7zoom);box.h=Math.floor((box.h+0.9)/_ie7zoom)}var zi=domStyle.get(target,"zIndex");var ziUl=zi;var ziIn=zi;if(this.zIndex==="auto")if(zi!="auto"){ziUl=parseInt(ziUl,10)+1;ziIn=parseInt(ziIn,10)+2}else{var cNode=target.parentNode;var oldZi=-1E5;while(cNode&&cNode!==baseWindow.body()){zi=domStyle.get(cNode,"zIndex");if(!zi||zi==="auto")cNode=cNode.parentNode;else{var newZi=parseInt(zi,10);if(oldZi<
newZi){oldZi=newZi;ziUl=newZi+1;ziIn=newZi+2}cNode=cNode.parentNode}}}else{ziUl=parseInt(this.zIndex,10)+1;ziIn=parseInt(this.zIndex,10)+2}domStyle.set(this._centerNode,"zIndex",ziIn);domStyle.set(this._underlayNode,"zIndex",ziUl);var pn=target.parentNode;if(pn&&pn!==baseWindow.body()&&target!==baseWindow.body()&&target!==baseWindow.doc){var obh=box.h;var obw=box.w;var pnBox=geometry.position(pn,true);if(this._ieFixNode){_ie7zoom=-this._ieFixNode.offsetTop/1E3;pnBox.x=Math.floor((pnBox.x+0.9)/_ie7zoom);
pnBox.y=Math.floor((pnBox.y+0.9)/_ie7zoom);pnBox.w=Math.floor((pnBox.w+0.9)/_ie7zoom);pnBox.h=Math.floor((pnBox.h+0.9)/_ie7zoom)}pnBox.w-=pn.scrollHeight>pn.clientHeight&&pn.clientHeight>0?scrollers.v:0;pnBox.h-=pn.scrollWidth>pn.clientWidth&&pn.clientWidth>0?scrollers.h:0;if(dir==="rtl")if(has("opera")){box.x+=pn.scrollHeight>pn.clientHeight&&pn.clientHeight>0?scrollers.v:0;pnBox.x+=pn.scrollHeight>pn.clientHeight&&pn.clientHeight>0?scrollers.v:0}else if(has("ie"))pnBox.x+=pn.scrollHeight>pn.clientHeight&&
pn.clientHeight>0?scrollers.v:0;else if(has("webkit"));if(pnBox.w<box.w)box.w=box.w-pnBox.w;if(pnBox.h<box.h)box.h=box.h-pnBox.h;var vpTop=pnBox.y;var vpBottom=pnBox.y+pnBox.h;var bTop=box.y;var bBottom=box.y+obh;var vpLeft=pnBox.x;var vpRight=pnBox.x+pnBox.w;var bLeft=box.x;var bRight=box.x+obw;var delta;if(bBottom>vpTop&&bTop<vpTop){box.y=pnBox.y;delta=vpTop-bTop;var visHeight=obh-delta;if(visHeight<pnBox.h)box.h=visHeight;else box.h-=2*(pn.scrollWidth>pn.clientWidth&&pn.clientWidth>0?scrollers.h:
0)}else if(bTop<vpBottom&&bBottom>vpBottom)box.h=vpBottom-bTop;else if(bBottom<=vpTop||bTop>=vpBottom)box.h=0;if(bRight>vpLeft&&bLeft<vpLeft){box.x=pnBox.x;delta=vpLeft-bLeft;var visWidth=obw-delta;if(visWidth<pnBox.w)box.w=visWidth;else box.w-=2*(pn.scrollHeight>pn.clientHeight&&pn.clientHeight>0?scrollers.w:0)}else if(bLeft<vpRight&&bRight>vpRight)box.w=vpRight-bLeft;else if(bRight<=vpLeft||bLeft>=vpRight)box.w=0}if(box.h>0&&box.w>0){domStyle.set(this._underlayNode,{display:"block",width:box.w+
"px",height:box.h+"px",top:box.y+"px",left:box.x+"px"});var styles=["borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"];this._cloneStyles(styles);if(!has("ie")){styles=["MozBorderRadius","MozBorderRadiusTopleft","MozBorderRadiusTopright","MozBorderRadiusBottomleft","MozBorderRadiusBottomright","WebkitBorderRadius","WebkitBorderTopLeftRadius","WebkitBorderTopRightRadius","WebkitBorderBottomLeftRadius","WebkitBorderBottomRightRadius"];this._cloneStyles(styles,
this)}var cntrIndicatorTop=box.h/2-cntrIndicator.h/2;var cntrIndicatorLeft=box.w/2-cntrIndicator.w/2;if(box.h>=cntrIndicator.h&&box.w>=cntrIndicator.w)domStyle.set(this._centerNode,{top:cntrIndicatorTop+box.y+"px",left:cntrIndicatorLeft+box.x+"px",display:"block"});else domStyle.set(this._centerNode,"display","none")}else{domStyle.set(this._underlayNode,"display","none");domStyle.set(this._centerNode,"display","none")}if(this._resizeCheck===null){var self=this;this._resizeCheck=setInterval(function(){self._size()},
100)}}},_cloneStyles:function(list){array.forEach(list,function(s){domStyle.set(this._underlayNode,s,domStyle.get(this.target,s))},this)},_fadeIn:function(){var self=this;var underlayNodeAnim=baseFx.animateProperty({duration:self.duration,node:self._underlayNode,properties:{opacity:{start:0,end:self.opacity}}});var imageAnim=baseFx.animateProperty({duration:self.duration,node:self._centerNode,properties:{opacity:{start:0,end:1}},onEnd:function(){self.onShow();delete self._anim}});this._anim=fx.combine([underlayNodeAnim,
imageAnim]);this._anim.play()},_fadeOut:function(){var self=this;var underlayNodeAnim=baseFx.animateProperty({duration:self.duration,node:self._underlayNode,properties:{opacity:{start:self.opacity,end:0}},onEnd:function(){domStyle.set(this.node,{"display":"none","zIndex":"-1000"})}});var imageAnim=baseFx.animateProperty({duration:self.duration,node:self._centerNode,properties:{opacity:{start:1,end:0}},onEnd:function(){domStyle.set(this.node,{"display":"none","zIndex":"-1000"});self.onHide();self._enableOverflow();
delete self._anim}});this._anim=fx.combine([underlayNodeAnim,imageAnim]);this._anim.play()},_ignore:function(e){if(e)event.stop(e)},_scrollerWidths:function(){var div=construct.create("div");domStyle.set(div,{position:"absolute",opacity:0,overflow:"hidden",width:"50px",height:"50px",zIndex:"-100",top:"-200px",padding:"0px",margin:"0px"});var iDiv=construct.create("div");domStyle.set(iDiv,{width:"200px",height:"10px"});div.appendChild(iDiv);baseWindow.body().appendChild(div);var b=geometry.getContentBox(div);
domStyle.set(div,"overflow","scroll");var a=geometry.getContentBox(div);baseWindow.body().removeChild(div);return{v:b.w-a.w,h:b.h-a.h}},_setTextAttr:function(text){this._textNode.innerHTML=text;this.text=text},_setColorAttr:function(c){domStyle.set(this._underlayNode,"backgroundColor",c);this.color=c},_setImageTextAttr:function(text){attr.set(this._imageNode,"alt",text);this.imageText=text},_setImageAttr:function(url){attr.set(this._imageNode,"src",url);this.image=url},_setCenterIndicatorAttr:function(indicator){this.centerIndicator=
indicator;if(indicator==="image"){this._centerNode=this._imageNode;domStyle.set(this._textNode,"display","none")}else{this._centerNode=this._textNode;domStyle.set(this._imageNode,"display","none")}},_disableOverflow:function(){if(this.target===baseWindow.body()||this.target===baseWindow.doc){this._overflowDisabled=true;var body=baseWindow.body();if(body.style&&body.style.overflow)this._oldOverflow=domStyle.get(body,"overflow");else this._oldOverflow="";if(has("ie")&&!has("quirks")){if(body.parentNode&&
body.parentNode.style&&body.parentNode.style.overflow)this._oldBodyParentOverflow=body.parentNode.style.overflow;else try{this._oldBodyParentOverflow=domStyle.get(body.parentNode,"overflow")}catch(e){this._oldBodyParentOverflow="scroll"}domStyle.set(body.parentNode,"overflow","hidden")}domStyle.set(body,"overflow","hidden")}},_enableOverflow:function(){if(this._overflowDisabled){delete this._overflowDisabled;var body=baseWindow.body();if(has("ie")&&!has("quirks")){body.parentNode.style.overflow=this._oldBodyParentOverflow;
delete this._oldBodyParentOverflow}domStyle.set(body,"overflow",this._oldOverflow);if(has("webkit")){var div=construct.create("div",{style:{height:"2px"}});body.appendChild(div);setTimeout(function(){body.removeChild(div)},0)}delete this._oldOverflow}}})})},"xide/views/SettingsTreeView":function(){define(["dojo/_base/declare","dojo/on","xas/views/SettingsTreeView","xapp/utils","xas/utils"],function(declare,on,SettingsTreeView,utils,xutils){return declare("xide.views.SettingsTreeView",[SettingsTreeView],
{onSettingsViewClosed:function(view){if(view){var parent=dijit.byId("topTabs");view.empty();parent.removeChild(view);utils.destroyWidget(view);currentSettingsView=null}},openSettingsView:function(item){var parent=dijit.byId("topTabs");var _settingsViewId="metaSettinsView"+item.id;this.currentSettingsView=dijit.byId(_settingsViewId);if(this.currentSettingsView){this.currentSettingsView.empty();parent.removeChild(this.currentSettingsView);utils.destroyWidgetById(_settingsViewId)}this.currentSettingsView=
new xas.views.GroupedMetaSettingsView({id:_settingsViewId,title:"Meta Settings",region:"center",closable:true,delegate:this,className:"groupedResourceSettingsView"},dojo.doc.createElement("div"));parent.addChild(this.currentSettingsView);parent.selectChild(this.currentSettingsView);this.currentSettingsView.initWithMetaDataStore(this.metaStore)},onTreeClicked:function(item,node){if(utils.toString(item.type)=="MetaSettings"){this.currentResourceItem=item;this.openSettingsView(item)}},_defaultTree:function(){var res=
{"id":"1","identifier":"id","label":"name","items":[{children:[{"_reference":"41f2455e-59e9-430a-949a-e2181bd183d8"}],"id":"ROOT","label":null,"name":"Settings","path":null,"section":null,"type":"top","uid":0,"uidStr":null},{children:[],"id":"41f2455e-59e9-430a-949a-e2181bd183d8","label":null,"name":"Common","type":"MetaSettings","noChildren":true},{children:[],"id":"f0e9f360-5dce-468f-a982-c7c059d0ae14","label":null,"name":"Application","type":"Resources"}]};return res},initWidgets:function(data){var thiz=
this;var _storeTreeData=this._defaultTree();this.store=new dojo.data.ItemFileWriteStore({data:_storeTreeData,labelAttribute:"name"});this.model=new dijit.tree.ForestStoreModel({store:this.store,rootId:"ROOT",rootLabel:"Resources",query:{type:"top"},childrenAttrs:["children"]});this.tree=new dijit.Tree({showRoot:false,model:this.model,persist:false,className:"container"});var dstHandlerCtx=this;dojo.connect(this.tree,"onClick",function(item,nodeWidget){dstHandlerCtx.onTreeClicked(item,nodeWidget)});
this.domNode.appendChild(this.tree.domNode);this.tree.startup();this.tree.resize();var world=this.tree.rootNode;setTimeout(function(){var children=world.getChildren();var firstPage=world.getChildren()[0];if(firstPage)on.emit(firstPage.expandoNode,"click",{bubbles:true})},300);var itemNode=this.tree._itemNodesMap["ROOT"];if(this.model)this.model["mayHaveChildren"]=function(item){var result=true;if(item&&item["noChildren"]!=null)return false;return result}},resourceTreeDataReady:function(ref,res){ref.resourceTreeData=
utils.removeEmptyStrings(res);if(ref.tree)utils.destroyWidget(ref.tree);ref.initWidgets(ref.resourceTreeData)},init:function(platform){var thiz=this;var cb=function(res){thiz.resourceTreeDataReady(thiz,res)}},startup:function(){if(this.didLoad)return;this.inherited(arguments);this.didLoad=true}})})},"dijit/MenuBar":function(){require({cache:{"url:dijit/templates/MenuBar.html":'\x3cdiv class\x3d"dijitMenuBar dijitMenuPassive" data-dojo-attach-point\x3d"containerNode" role\x3d"menubar" tabIndex\x3d"${tabIndex}"\n\t \x3e\x3c/div\x3e\n'}});
define("dijit/MenuBar",["dojo/_base/declare","dojo/keys","./_MenuBase","dojo/text!./templates/MenuBar.html"],function(declare,keys,_MenuBase,template){return declare("dijit.MenuBar",_MenuBase,{templateString:template,baseClass:"dijitMenuBar",popupDelay:0,_isMenuBar:true,_orient:["below"],_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled)this.onItemClick(this.focusedChild,evt)},focusChild:function(item){this.inherited(arguments);if(this.activated&&
item.popup&&!item.disabled)this._openItemPopup(item,true)},_onChildDeselect:function(item){if(this.currentPopupItem==item){this.currentPopupItem=null;item._closePopup()}this.inherited(arguments)},_onLeftArrow:function(){this.focusPrev()},_onRightArrow:function(){this.focusNext()},_onDownArrow:function(evt){this._moveToPopup(evt)},_onUpArrow:function(){},onItemClick:function(item,evt){if(item.popup&&item.popup.isShowingNow&&(!/^key/.test(evt.type)||evt.keyCode!==keys.DOWN_ARROW)){item.focusNode.focus();
this._cleanUp(true)}else this.inherited(arguments)}})})},"xfile/widgets/ActionToolbarMixin":function(){define("xfile/widgets/ActionToolbarMixin",["../../dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","xide/types","xide/factory","xide/utils","xfile/widgets/ActionToolbar","xfile/widgets/ActionToolbarButtonEmbedded","xfile/widgets/NewItemSelector","xfile/widgets/EditorSelector","xfile/views/EditorPluginMixin","dojo/i18n","dojo/i18n!./nls/TemplatedWidgetBase"],function(declare,html,
domClass,on,types,factory,utils,ActionToolbar,ActionToolbarButton,NewItemSelector,EditorSelector,EditorPluginMixin){return dojo.declare("xfile.widgets.ActionToolbarMixin",[EditorPluginMixin],{config:null,useElusive:false,editSelector:null,translate:function(value){if(this._messages==null||this._messages.length==0)this._setupTranslations();if(value){var _titleKey=value.toLocaleLowerCase();_titleKey=_titleKey.replace(/\s+/g,"_");if(_titleKey&&this._messages!=null){var _titleValue=this._messages[_titleKey];
if(_titleValue&&_titleValue.length>0)return _titleValue}}return value||""},_setupTranslations:function(){var dstCtx=sctx||mctx;if(dstCtx&&dstCtx.getLocals)this._messages=dstCtx.getLocals("xide.widgets","TemplatedWidgetBase");else this._messages=[]},postMixInProperties:function(){this.inherited(arguments);this._setupTranslations()},toTitle:function(operation){switch(operation){case types.OPERATION.DELETE:return this.translate("Delete");case types.OPERATION.EDIT:return this.translate("Edit");case types.OPERATION.RENAME:return this.translate("Rename");
case types.OPERATION.COPY:return this.translate("Copy");case types.OPERATION.MOVE:return this.translate("Move");case types.OPERATION.DOWNLOAD:return this.translate("Download");case types.OPERATION.INFO:return this.translate("Info");case types.OPERATION.COMPRESS:return this.translate("Compress");case types.OPERATION.RELOAD:return this.translate("Reload");case types.OPERATION.PREVIEW:return this.translate("Preview");case types.OPERATION.INSERT_IMAGE:return this.translate("Insert");case types.OPERATION.OPTIONS:return this.translate("Options");
case types.OPERATION.PERMA_LINK:return this.translate("Perma Link")}return"No Title"},toIconClassElusive:function(operation){switch(operation){case types.OPERATION.DELETE:return"el-icon-remove-circle";case types.OPERATION.EDIT:return"el-icon-file-edit";case types.OPERATION.RENAME:return"el-icon-edit";case types.OPERATION.COPY:return"el-icon-random";case types.OPERATION.MOVE:return"el-icon-move";case types.OPERATION.DOWNLOAD:return"el-icon-download";case types.OPERATION.INFO:return"el-icon-info-sign";
case types.OPERATION.COMPRESS:return"el-icon-briefcase";case types.OPERATION.RELOAD:return"el-icon-refresh";case types.OPERATION.PREVIEW:return"icon-32-preview-content";case types.OPERATION.INSERT_IMAGE:return"icon-32-insert-image";case types.OPERATION.OPTIONS:return"el-icon-cogs";case types.OPERATION.PERMA_LINK:return"el-icon-link"}},toIconClass:function(operation){if(this.useElusive)return this.toIconClassElusive(operation);switch(operation){case types.OPERATION.DELETE:return"icon-32-remove";case types.OPERATION.EDIT:return"icon-32-edit";
case types.OPERATION.RENAME:return"icon-32-edit";case types.OPERATION.COPY:return"icon-32-copy";case types.OPERATION.MOVE:return"icon-32-move";case types.OPERATION.DOWNLOAD:return"icon-32-download";case types.OPERATION.INFO:return"icon-32-info";case types.OPERATION.COMPRESS:return"icon-32-compress";case types.OPERATION.RELOAD:return"icon-32-reload";case types.OPERATION.PREVIEW:return"icon-32-preview-content";case types.OPERATION.INSERT_IMAGE:return"icon-32-insert-image"}},onButtonClicked:function(button){if(this.delegate&&
this.delegate.onActionButton)this.delegate.onActionButton(button,button.item,button.operation,button.owner)},removeEditorsSelector:function(){if(!this.editSelector)return this.getButton(types.OPERATION.EDIT);var item,owner=null;var oldEditButton=this.getButton(types.OPERATION.EDIT);item=oldEditButton.item;owner=oldEditButton.owner;this.buttons.remove(oldEditButton);var newEditButton=this._createButton(types.OPERATION.EDIT,null,null,true);newEditButton.item=item;newEditButton.owner=owner;dojo.place(newEditButton.domNode,
this.editSelector.domNode,"after");utils.destroyWidget(this.editSelector);this.editSelector=null;return newEditButton},prepareEditorsSelector:function(editButton,editors){var editSelector=new EditorSelector({delegate:this,editors:editors},dojo.doc.createElement("div"));dojo.place(editSelector.domNode,editButton.domNode,"after");editSelector.startup();var newEditButton=editSelector.createMenuItem("el-icon-file-edit","Open",types.OPERATION.EDIT);this.buttons.remove(editButton);this.editSelector=editSelector;
return editSelector},onFileSelected:function(data){var editors=EditorPluginMixin.getEditors(data);var btnEdit=this.getButton(types.OPERATION.EDIT);if(btnEdit){if(editors){if(btnEdit instanceof dijit.MenuItem)btnEdit=this.removeEditorsSelector();if(btnEdit instanceof xfile.widgets.ActionToolbarButton){var newEditMenu=this.prepareEditorsSelector(btnEdit,editors);utils.destroyWidget(btnEdit)}}else btnEdit=this.removeEditorsSelector(btnEdit);if(this.editSelector)this.editSelector.wButton.set("disabled",
false);btnEdit.setDisabled(false)}else;var btnEdit=this.getButton(types.OPERATION.INSERT_IMAGE);if(btnEdit)btnEdit.setDisabled(false)},onCommonsSelected:function(data){var disable=false;if(data.read===false&&data.write===false)disable=true;var btnRename=this.getButton(types.OPERATION.RENAME);if(btnRename)btnRename.setDisabled(disable);var btnDownload=this.getButton(types.OPERATION.DOWNLOAD);if(btnDownload)btnDownload.setDisabled(disable);var btnCopy=this.getButton(types.OPERATION.COPY);if(btnCopy)btnCopy.setDisabled(disable);
var btnMove=this.getButton(types.OPERATION.MOVE);if(btnMove)btnMove.setDisabled(disable);var btnProp=this.getButton(types.OPERATION.INFO);if(btnProp)btnProp.setDisabled(disable);var btnDelete=this.getButton(types.OPERATION.DELETE);if(btnDelete)btnDelete.setDisabled(disable);var btncompress=this.getButton(types.OPERATION.COMPRESS);if(btncompress)btncompress.setDisabled(disable);var btnReload=this.getButton(types.OPERATION.RELOAD);if(btnReload)btnReload.setDisabled(disable);var btnNewFile=this.getButton(types.OPERATION.NEW_FILE);
if(btnNewFile)btnNewFile.setDisabled(disable);var btnNewDir=this.getButton(types.OPERATION.NEW_DIRECTORY);if(btnNewDir)btnNewDir.setDisabled(disable);var btnPerma=this.getButton(types.OPERATION.PERMA_LINK);if(btnPerma)btnPerma.setDisabled(false)},clearStates:function(item,owner){for(var i=0;i<this.buttons.length;i++)try{this.buttons[i].item=item;this.buttons[i].owner=owner;if(this.buttons[i].operation===types.OPERATION.CUSTOM);else this.buttons[i].setDisabled(true)}catch(e){}},onDirectorySelected:function(data){if(this.editSelector)this.editSelector.wButton.set("disabled",
true)},onItemSelected:function(data){try{if(data&&data&&data.item){var item=data.item;this.clearStates(item,data.callee);if(item.name=="."||item.name==".."){var btnNewFile=this.getButton(types.OPERATION.NEW_FILE);if(btnNewFile)btnNewFile.setDisabled(false);var btnNewDir=this.getButton(types.OPERATION.NEW_DIRECTORY);if(btnNewDir)btnNewDir.setDisabled(false);return}this.onCommonsSelected(item);if(item.directory!=null&&item.directory===true)this.onDirectorySelected(item);else this.onFileSelected(item)}}catch(e){}},
getButton:function(operation){for(var i=0;i<this.buttons.length;i++)if(this.buttons[i].operation==operation)return this.buttons[i];return null},_createDefaultItems:function(){var allowedActions=this.config.ALLOWED_ACTIONS||{1:true,2:true,3:true,4:true,5:true,6:true,7:true,8:true,9:true,10:true,11:true,12:true,13:true,14:true,15:true,16:true,17:true};var opsInt=types.OPERATION_INT;if(allowedActions[opsInt.RELOAD])var reloadButton=this._createButton(types.OPERATION.RELOAD,null,null,true);if(allowedActions[opsInt.DELETE])var deleteButton=
this._createButton(types.OPERATION.DELETE,null,null,true);if(allowedActions[opsInt.COMPRESS])var compressButton=this._createButton(types.OPERATION.COMPRESS,null,null,true);if(allowedActions[opsInt.DOWNLOAD])var downloadButton=this._createButton(types.OPERATION.DOWNLOAD,null,null,true);if(allowedActions[opsInt.INFO])var infoButton=this._createButton(types.OPERATION.INFO,null,null,true);if(allowedActions[opsInt.RENAME])var renameButton=this._createButton(types.OPERATION.RENAME,null,null,true);if(allowedActions[opsInt.MOVE])var moveButton=
this._createButton(types.OPERATION.MOVE,null,null,true);if(allowedActions[opsInt.COPY])var copyButton=this._createButton(types.OPERATION.COPY,null,null,true);if(allowedActions[opsInt.EDIT])var editButton=this._createButton(types.OPERATION.EDIT,null,null,true);var permaButton=this._createButton(types.OPERATION.PERMA_LINK,null,null,false);this.buttons.remove(permaButton);return allowedActions},_createButton:function(operation,item,clickcb,disabled){var iconClass=this.toIconClass(operation);var title=
this.toTitle(operation);if(iconClass&&title){var button=new ActionToolbarButton({title:title,iconClass:iconClass,operation:operation,item:item,disabled:disabled},dojo.doc.createElement("div"));this.parentContainer.appendChild(button.domNode);dojo.place(button.domNode,this.parentContainer,"first");button.startup();this.buttons.push(button);var thiz=this;button.domNode.onclick=function(){thiz.onButtonClicked(button)};if(this.useElusive){domClass.remove(button.iconNode,"dijitReset");domClass.add(button.iconNode,
"actionToolbarButtonElusive")}return button}},startup:function(){this.inherited(arguments);this.buttons=[];this.editors=[];var thiz=this;this._createDefaultItems();factory.subscribe(types.EVENTS.ITEM_SELECTED,function(data){thiz.onItemSelected(data)},this)}})})},"dojo/errors/RequestError":function(){define(["./create"],function(create){return create("RequestError",function(message,response){this.response=response})})},"xas/views/EditorBase":function(){define(["dojo/_base/array","dojo/_base/declare",
"dojo/_base/html","dojo/on","dojo/_base/lang","dojo/dom-geometry","xas/widgets/TemplatedWidgetBase"],function(array,declare,html,on,lang,domGeometry,TemplatedWidgetBase){return dojo.declare("xas.views.EditorBase",[TemplatedWidgetBase],{wFloatingPane:null,closeable:true,moduleView:null,didStartup:false,ckEditorRoot:null,ckEditor:null,editorControlsRoot:null,btnSave:null,title:null,dataItem:null,content:null,titleWidget:null,dataRef:null,sourceType:null,dataName:null,saveButton:true,titleEdit:true,
editorContent:null,getContent:function(){if(this.ckEditor)return this.ckEditor.getData();return null},templateString:"\x3cdiv class\x3d'editorRoot' data-dojo-type\x3d'dijit.layout.ContentPane' title\x3d'${!title}' closable\x3d'true' data-dojo-attach-point\x3d'wFloatingPane' style\x3d'padding: 10px'\x3e"+"\x3ctable border\x3d'0' cellpadding\x3d'5px' width\x3d'100%'\x3e"+"\x3ctbody align\x3d'left'\x3e"+"\x3ctr valign\x3d'middle' style\x3d'height:100%'\x3e"+"\x3ctd valign\x3d'middle' data-dojo-attach-point\x3d'valueNode' width\x3d'30%'\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'titleWidget' data-dojo-type\x3d'dijit.form.TextBox'\x3e\x3c/div\x3e\x3cbr/\x3e"+"\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e"+"\x3cbr/\x3e"+"\x3cdiv data-dojo-type\x3d'dijit.layout.ContentPane'\x3e"+"\x3cdiv data-dojo-attach-point\x3d'ckEditorRoot' style\x3d'padding-top: 10px'\x3e\x3c/div\x3e"+"\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'editorControlsRoot'\x3e"+"\x3cdiv data-dojo-attach-point\x3d'btnSave' data-dojo-type\x3d'dijit.form.Button' label\x3d'Save'\x3e"+
"\x3c/div\x3e"+"\x3c/div\x3e",createEditorControls:function(){},onHide:function(){},onClose:function(){this.ckEditor.destroy();xapp.utils.destroyWidget(this.ckEditor);xapp.utils.destroyWidget(this);this.inherited(arguments);var parent=dijit.byId("topTabs");parent.removeChild(this)},destroy:function(){},attachCKEditor:function(){var thiz=this;this.ckEditorRoot.id=this.id+"_Editor";var rootId=this.ckEditorRoot.id;this.ckEditor=CKEDITOR.replace(rootId,{extraPlugins:"filebrowser2",removePlugins:"smiley,table,tableresize,templates,flash,iframe,forms,div,pagebreak,styles,xml,scayt,showblocks,uicolor",
filebrowserBrowseUrl:"/browser/browse.php",filebrowserImageBrowseUrl:"/browser/browse.php?type\x3dImages",filebrowserUploadUrl:"/uploader/upload.php",filebrowserImageUploadUrl:"/uploader/upload.php?type\x3dImages",startupFocus:true,on:{instanceReady:function(ev){this.focus()}}});this.ckEditor.setData(this.content);if(this.titleWidget){this.titleWidget.value=this.title;this.titleWidget.set("value",this.title)}this.ckEditor.focus();setTimeout(function(){thiz.ckEditor.focus();if(thiz.titleWidget&&thiz.titleWidget.blur)thiz.titleWidget.blur()},
2E3)},dataRecievedJSON:function(result){this.content=result.description;this.title=result.title;if(this.titleWidget)this.titleWidget.value=this.title;this.attachCKEditor();if(this.delegate&&this.delegate.onContentRecieved)this.delegate.onContentRecieved(result)},loadContentWithRef:function(){var serviceUrl=xapp.utils.getServiceUrlByDSType(this.sourceType,this.dataRef);serviceUrl+="\x26uuid\x3d"+sctx.getSession().getUUID();serviceUrl+="\x26appIdentifier\x3d"+sctx.getSession().getAppId();var xhrArgs=
{url:serviceUrl,handleAs:"json",load:dojo.hitch(this,"dataRecievedJSON")};var deferred=dojo.xhrGet(xhrArgs)},loadContent:function(){if(this.dataRef)return this.loadContentWithRef();if(this.editorContent!=null){this.content=this.editorContent;this.attachCKEditor();return}if(!this.dataItem)return;var contentType=parseInt(xapp.utils.toString(this.dataItem.contentType));var contentRefId=xapp.utils.toInt(this.dataItem.uid);var urlType=xapp.utils.getUrlTypeByContentSourceType(contentType);var serviceUrl=
xapp.utils.getServiceUrlByUrlType(urlType,contentRefId);serviceUrl+="\x26uuid\x3d"+sctx.getSession().getUUID();serviceUrl+="\x26appIdentifier\x3d"+sctx.getSession().getAppId();var xhrArgs={url:serviceUrl,handleAs:"json",load:dojo.hitch(this,"dataRecievedJSON")};var deferred=dojo.xhrGet(xhrArgs)},saveContentCB:function(thiz,res){},saveContent:function(){var refId=xapp.utils.toInt(this.dataItem.uid);var content=this.ckEditor.getData();if(sctx&&sctx.getContentManager&&sctx.getContentManager())var newId=
sctx.getContentManager().saveContent(this,this.saveContentCB,refId,content,"Content",this.titleWidget.value)},startup:function(){if(this.didStartup)return;this.set("closable",true);this.inherited(arguments);if(!this.titleEdit){xapp.utils.destroyWidget(this.valueNode);this.titleWidget=null}else this.titleWidget._focusManager=null;if(!this.saveButton){xapp.utils.destroyWidget(this.editorControlsRoot);this.btnSave=null}this.didStartup=true;this.loadContent();var thiz=this;if(this.btnSave)dojo.connect(this.btnSave,
"onClick",function(item){console.error("saving editor data");thiz.saveContent()})}})})},"xfile/views/ActionDialog":function(){define("xfile/views/ActionDialog",["dojo/_base/declare","xide/views/ActionDialog"],function(declare,ActionDialog){return declare("xfile.views.ActionDialog",[ActionDialog],{resizeToContent:false,autofocus:true,resizeable:true})})},"dojo/text":function(){define(["./_base/kernel","require","./has","./request"],function(dojo,require,has,request){var getText;if(1)getText=function(url,
sync,load){request(url,{sync:!!sync,headers:{"X-Requested-With":null}}).then(load)};else if(require.getText)getText=require.getText;else console.error("dojo/text plugin failed to load because loader does not support getText");var theCache={},strip=function(text){if(text){text=text.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var matches=text.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(matches)text=matches[1]}else text="";return text},notFound={},pending={};dojo.cache=
function(module,url,value){var key;if(typeof module=="string")if(/\//.test(module)){key=module;value=url}else key=require.toUrl(module.replace(/\./g,"/")+(url?"/"+url:""));else{key=module+"";value=url}var val=value!=undefined&&typeof value!="string"?value.value:value,sanitize=value&&value.sanitize;if(typeof val=="string"){theCache[key]=val;return sanitize?strip(val):val}else if(val===null){delete theCache[key];return null}else{if(!(key in theCache))getText(key,true,function(text){theCache[key]=text});
return sanitize?strip(theCache[key]):theCache[key]}};return{dynamic:true,normalize:function(id,toAbsMid){var parts=id.split("!"),url=parts[0];return(/^\./.test(url)?toAbsMid(url):url)+(parts[1]?"!"+parts[1]:"")},load:function(id,require,load){var parts=id.split("!"),stripFlag=parts.length>1,absMid=parts[0],url=require.toUrl(parts[0]),requireCacheUrl="url:"+url,text=notFound,finish=function(text){load(stripFlag?strip(text):text)};if(absMid in theCache)text=theCache[absMid];else if(require.cache&&requireCacheUrl in
require.cache)text=require.cache[requireCacheUrl];else if(url in theCache)text=theCache[url];if(text===notFound)if(pending[url])pending[url].push(finish);else{var pendingList=pending[url]=[finish];getText(url,!require.async,function(text){theCache[absMid]=theCache[url]=text;for(var i=0;i<pendingList.length;)pendingList[i++](text);delete pending[url]})}else finish(text)}}})},"dojox/xml/parser":function(){define("dojox/xml/parser",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/array","dojo/_base/window",
"dojo/_base/sniff"],function(dojo){dojo.getObject("xml.parser",true,dojox);dojox.xml.parser.parse=function(str,mimetype){var _document=dojo.doc;var doc;mimetype=mimetype||"text/xml";if(str&&dojo.trim(str)&&"DOMParser"in dojo.global){var parser=new DOMParser;doc=parser.parseFromString(str,mimetype);var de=doc.documentElement;var errorNS="http://www.mozilla.org/newlayout/xml/parsererror.xml";if(de.nodeName=="parsererror"&&de.namespaceURI==errorNS){var sourceText=de.getElementsByTagNameNS(errorNS,"sourcetext")[0];
if(sourceText)sourceText=sourceText.firstChild.data;throw new Error("Error parsing text "+de.firstChild.data+" \n"+sourceText);}return doc}else if("ActiveXObject"in dojo.global){var ms=function(n){return"MSXML"+n+".DOMDocument"};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];dojo.some(dp,function(p){try{doc=new ActiveXObject(p)}catch(e){return false}return true});if(str&&doc){doc.async=false;doc.loadXML(str);var pe=doc.parseError;if(pe.errorCode!==0)throw new Error("Line: "+pe.line+"\n"+"Col: "+
pe.linepos+"\n"+"Reason: "+pe.reason+"\n"+"Error Code: "+pe.errorCode+"\n"+"Source: "+pe.srcText);}if(doc)return doc}else if(_document.implementation&&_document.implementation.createDocument)if(str&&dojo.trim(str)&&_document.createElement){var tmp=_document.createElement("xml");tmp.innerHTML=str;var xmlDoc=_document.implementation.createDocument("foo","",null);dojo.forEach(tmp.childNodes,function(child){xmlDoc.importNode(child,true)});return xmlDoc}else return _document.implementation.createDocument("",
"",null);return null};dojox.xml.parser.textContent=function(node,text){if(arguments.length>1){var _document=node.ownerDocument||dojo.doc;dojox.xml.parser.replaceChildren(node,_document.createTextNode(text));return text}else{if(node.textContent!==undefined)return node.textContent;var _result="";if(node)dojo.forEach(node.childNodes,function(child){switch(child.nodeType){case 1:case 5:_result+=dojox.xml.parser.textContent(child);break;case 3:case 2:case 4:_result+=child.nodeValue}});return _result}};
dojox.xml.parser.replaceChildren=function(node,newChildren){var nodes=[];if(dojo.isIE)dojo.forEach(node.childNodes,function(child){nodes.push(child)});dojox.xml.parser.removeChildren(node);dojo.forEach(nodes,dojo.destroy);if(!dojo.isArray(newChildren))node.appendChild(newChildren);else dojo.forEach(newChildren,function(child){node.appendChild(child)})};dojox.xml.parser.removeChildren=function(node){var count=node.childNodes.length;while(node.hasChildNodes())node.removeChild(node.firstChild);return count};
dojox.xml.parser.innerXML=function(node){if(node.innerXML)return node.innerXML;else if(node.xml)return node.xml;else if(typeof XMLSerializer!="undefined")return(new XMLSerializer).serializeToString(node);return null};return dojox.xml.parser})},"dojo/dom-class":function(){define(["./_base/lang","./_base/array","./dom"],function(lang,array,dom){var className="className";var cls,spaces=/\s+/,a1=[""];function str2array(s){if(typeof s=="string"||s instanceof String){if(s&&!spaces.test(s)){a1[0]=s;return a1}var a=
s.split(spaces);if(a.length&&!a[0])a.shift();if(a.length&&!a[a.length-1])a.pop();return a}if(!s)return[];return array.filter(s,function(x){return x})}var fakeNode={};cls={contains:function containsClass(node,classStr){return(" "+dom.byId(node)[className]+" ").indexOf(" "+classStr+" ")>=0},add:function addClass(node,classStr){node=dom.byId(node);classStr=str2array(classStr);var cls=node[className],oldLen;cls=cls?" "+cls+" ":" ";oldLen=cls.length;for(var i=0,len=classStr.length,c;i<len;++i){c=classStr[i];
if(c&&cls.indexOf(" "+c+" ")<0)cls+=c+" "}if(oldLen<cls.length)node[className]=cls.substr(1,cls.length-2)},remove:function removeClass(node,classStr){node=dom.byId(node);var cls;if(classStr!==undefined){classStr=str2array(classStr);cls=" "+node[className]+" ";for(var i=0,len=classStr.length;i<len;++i)cls=cls.replace(" "+classStr[i]+" "," ");cls=lang.trim(cls)}else cls="";if(node[className]!=cls)node[className]=cls},replace:function replaceClass(node,addClassStr,removeClassStr){node=dom.byId(node);
fakeNode[className]=node[className];cls.remove(fakeNode,removeClassStr);cls.add(fakeNode,addClassStr);if(node[className]!==fakeNode[className])node[className]=fakeNode[className]},toggle:function toggleClass(node,classStr,condition){node=dom.byId(node);if(condition===undefined){classStr=str2array(classStr);for(var i=0,len=classStr.length,c;i<len;++i){c=classStr[i];cls[cls.contains(node,c)?"remove":"add"](node,c)}}else cls[condition?"add":"remove"](node,classStr);return condition}};return cls})},"dijit/form/_RadioButtonMixin":function(){define("dijit/form/_RadioButtonMixin",
["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/_base/lang","dojo/query","../registry"],function(array,declare,domAttr,lang,query,registry){return declare("dijit.form._RadioButtonMixin",null,{type:"radio",_getRelatedWidgets:function(){var ary=[];query("input[type\x3dradio]",this.focusNode.form||this.ownerDocument).forEach(lang.hitch(this,function(inputNode){if(inputNode.name==this.name&&inputNode.form==this.focusNode.form){var widget=registry.getEnclosingWidget(inputNode);if(widget)ary.push(widget)}}));
return ary},_setCheckedAttr:function(value){this.inherited(arguments);if(!this._created)return;if(value)array.forEach(this._getRelatedWidgets(),lang.hitch(this,function(widget){if(widget!=this&&widget.checked)widget.set("checked",false)}))},_getSubmitValue:function(value){return value==null?"on":value},_onClick:function(e){if(this.checked||this.disabled){e.stopPropagation();e.preventDefault();return false}if(this.readOnly){e.stopPropagation();e.preventDefault();array.forEach(this._getRelatedWidgets(),
lang.hitch(this,function(widget){domAttr.set(this.focusNode||this.domNode,"checked",widget.checked)}));return false}return this.inherited(arguments)}})})},"dojox/layout/ToggleSplitter":function(){define("dojox/layout/ToggleSplitter",["dojo","dijit","dijit/layout/BorderContainer"],function(dojo,dijit){dojo.experimental("dojox.layout.ToggleSplitter");var ToggleSplitter=dojo.declare("dojox.layout.ToggleSplitter",dijit.layout._Splitter,{container:null,child:null,region:null,state:"full",_closedSize:"0",
baseClass:"dojoxToggleSplitter",templateString:'\x3cdiv class\x3d"dijitSplitter dojoxToggleSplitter" dojoAttachEvent\x3d"onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse"\x3e'+'\x3cdiv dojoAttachPoint\x3d"toggleNode" class\x3d"dijitSplitterThumb dojoxToggleSplitterIcon" tabIndex\x3d"0" role\x3d"separator" '+'dojoAttachEvent\x3d"onmousedown:_onToggleNodeMouseDown,onclick:_toggle,onmouseenter:_onToggleNodeMouseMove,onmouseleave:_onToggleNodeMouseMove,onfocus:_onToggleNodeMouseMove,onblur:_onToggleNodeMouseMove"\x3e'+
'\x3cspan class\x3d"dojoxToggleSplitterA11y" dojoAttachPoint\x3d"a11yText"\x3e\x3c/span\x3e\x3c/div\x3e'+"\x3c/div\x3e",postCreate:function(){this.inherited(arguments);var region=this.region;dojo.addClass(this.domNode,this.baseClass+region.charAt(0).toUpperCase()+region.substring(1))},startup:function(){this.inherited(arguments);var parentPane=this.child,paneNode=this.child.domNode,intPaneSize=dojo.style(paneNode,this.horizontal?"height":"width");this.domNode.setAttribute("aria-controls",paneNode.id);
dojo.forEach(["toggleSplitterState","toggleSplitterFullSize","toggleSplitterCollapsedSize"],function(name){var pname=name.substring("toggleSplitter".length);pname=pname.charAt(0).toLowerCase()+pname.substring(1);if(name in this.child)this[pname]=this.child[name]},this);if(!this.fullSize)this.fullSize=this.state=="full"?intPaneSize+"px":"75px";this._openStyleProps=this._getStyleProps(paneNode,"full");this._started=true;this.set("state",this.state);return this},_onKeyPress:function(evt){if(this.state==
"full")this.inherited(arguments);if(evt.charCode==dojo.keys.SPACE||evt.keyCode==dojo.keys.ENTER)this._toggle(evt)},_onToggleNodeMouseDown:function(evt){dojo.stopEvent(evt);this.toggleNode.focus()},_startDrag:function(e){if(this.state=="full")this.inherited(arguments)},_stopDrag:function(e){this.inherited(arguments);this.toggleNode.blur()},_toggle:function(evt){var state;switch(this.state){case "full":state=this.collapsedSize?"collapsed":"closed";break;case "collapsed":state="closed";break;default:state=
"full"}this.set("state",state)},_onToggleNodeMouseMove:function(evt){var baseClass=this.baseClass,toggleNode=this.toggleNode,on=this.state=="full"||this.state=="collapsed",leave=evt.type=="mouseout"||evt.type=="blur";dojo.toggleClass(toggleNode,baseClass+"IconOpen",leave&&on);dojo.toggleClass(toggleNode,baseClass+"IconOpenHover",!leave&&on);dojo.toggleClass(toggleNode,baseClass+"IconClosed",leave&&!on);dojo.toggleClass(toggleNode,baseClass+"IconClosedHover",!leave&&!on)},_handleOnChange:function(preState){var paneNode=
this.child.domNode,openProps,paneStyle,dim=this.horizontal?"height":"width";if(this.state=="full"){var styleProps=dojo.mixin({display:"block",overflow:"auto",visibility:"visible"},this._openStyleProps);styleProps[dim]=this._openStyleProps&&this._openStyleProps[dim]?this._openStyleProps[dim]:this.fullSize;dojo.style(this.domNode,"cursor","");dojo.style(paneNode,styleProps)}else if(this.state=="collapsed"){paneStyle=dojo.getComputedStyle(paneNode);openProps=this._getStyleProps(paneNode,"full",paneStyle);
this._openStyleProps=openProps;dojo.style(this.domNode,"cursor","auto");dojo.style(paneNode,dim,this.collapsedSize)}else{if(!this.collapsedSize){paneStyle=dojo.getComputedStyle(paneNode);openProps=this._getStyleProps(paneNode,"full",paneStyle);this._openStyleProps=openProps}var closedProps=this._getStyleProps(paneNode,"closed",paneStyle);dojo.style(this.domNode,"cursor","auto");dojo.style(paneNode,closedProps)}this._setStateClass();if(this.container._started)this.container._layoutChildren(this.region)},
_getStyleProps:function(paneNode,state,paneStyle){if(!paneStyle)paneStyle=dojo.getComputedStyle(paneNode);var styleProps={},dim=this.horizontal?"height":"width";styleProps["overflow"]=state!="closed"?paneStyle["overflow"]:"hidden";styleProps["visibility"]=state!="closed"?paneStyle["visibility"]:"hidden";styleProps[dim]=state!="closed"?paneNode.style[dim]||paneStyle[dim]:this._closedSize;var edgeNames=["Top","Right","Bottom","Left"];dojo.forEach(["padding","margin","border"],function(pname){for(var i=
0;i<edgeNames.length;i++){var fullName=pname+edgeNames[i];if(pname=="border")fullName+="Width";if(undefined!==paneStyle[fullName])styleProps[fullName]=state!="closed"?paneStyle[fullName]:0}});return styleProps},_setStateClass:function(){var arrow="\x26#9652",region=this.region.toLowerCase(),baseClass=this.baseClass,toggleNode=this.toggleNode,on=this.state=="full"||this.state=="collapsed",focused=this.focused;dojo.toggleClass(toggleNode,baseClass+"IconOpen",on&&!focused);dojo.toggleClass(toggleNode,
baseClass+"IconClosed",!on&&!focused);dojo.toggleClass(toggleNode,baseClass+"IconOpenHover",on&&focused);dojo.toggleClass(toggleNode,baseClass+"IconClosedHover",!on&&focused);if(region=="top"&&on||region=="bottom"&&!on)arrow="\x26#9650";else if(region=="top"&&!on||region=="bottom"&&on)arrow="\x26#9660";else if(region=="right"&&on||region=="left"&&!on)arrow="\x26#9654";else if(region=="right"&&!on||region=="left"&&on)arrow="\x26#9664";this.a11yText.innerHTML=arrow},_setStateAttr:function(state){if(!this._started)return;
var preState=this.state;this.state=state;this._handleOnChange(preState);var evtName;switch(state){case "full":this.domNode.setAttribute("aria-expanded",true);evtName="onOpen";break;case "collapsed":this.domNode.setAttribute("aria-expanded",true);evtName="onCollapsed";break;default:this.domNode.setAttribute("aria-expanded",false);evtName="onClosed"}this[evtName](this.child)},onOpen:function(pane){},onCollapsed:function(pane){},onClosed:function(pane){}});dojo.extend(dijit._Widget,{toggleSplitterState:"full",
toggleSplitterFullSize:"",toggleSplitterCollapsedSize:""});return ToggleSplitter})},"xlog/views/LogView":function(){define(["dojo/_base/declare","dojo/dom-class","xide/views/BeanView","dgrid/OnDemandGrid","dgrid/Selection","dgrid/Keyboard","xide/views/GridView","dgrid/extensions/ColumnHider","dgrid/extensions/ColumnResizer","dgrid/extensions/ColumnReorder","xide/types","xide/utils","xide/widgets/FlagsWidget"],function(declare,domClass,BeanView,OnDemandGrid,Selection,Keyboard,GridView,ColumnHider,
ColumnResizer,ColumnReorder,types,utils,FlagsWidget){return declare("xide.views.LogView",[BeanView,GridView],{delegate:null,store:null,cssClass:"layoutContainer normalizedGridView logGridView",formatDateSimple:function(data,format){var momentUnix=moment.unix(data);var dateStr=momentUnix.format("MMMM Do, h:mm:ss a");return dateStr},createWidgets:function(store){var thiz=this;var grid=new (declare([OnDemandGrid,Selection,Keyboard,ColumnHider,ColumnResizer,ColumnReorder]))({store:store,sort:"time",columns:{Level:{field:"level",
label:"Level",sortable:true,formatter:function(level){switch(level){case "info":return level;case "error":return'\x3cspan style\x3d"color:red"\x3e'+level+"\x3c/span\x3e";case "warning":return'\x3cspan style\x3d"color:orange"\x3e'+level+"\x3c/span\x3e"}return level}},Type:{field:"type",label:"Type",sortable:true},Host:{field:"host",label:"Host",sortable:true},Message:{field:"message",label:"Message",sortable:true,formatter2:function(status){var tpl='\x3cdiv style\x3d"color:${color}"\x3e'+utils.capitalize(status)+
"\x3c/div\x3e";return utils.substituteString(tpl,{color:status=="offline"?"red":"green"})}},Time:{field:"time",label:"Time",sortable:true,formatter:function(time){return thiz.formatDateSimple(time/1E3)}}}},this.containerNode);grid.sort("time");grid.refresh();this.grid=grid;this.onGridCreated(grid);var hider=utils.find(".dgrid-hider-menu",this.domNode,false);domClass.add(hider[0],"ui-widget-content")},startup:function(){this.inherited(arguments);if(this.store)this.createWidgets(this.store)},hasItemActions:function(){return true},
getItem:function(){return this.selectedItem},clear:function(){},createLevelWidget:function(){var thiz=this;var flags=[{value:2,label:"Info"},{value:4,label:"Debug"},{value:8,label:"Warning"},{value:16,label:"Error"},{value:32,label:"Fatal"}];var flagsWidget=utils.addWidget(FlagsWidget,{value:16,data:flags,lineBreak:false,title:"",single:false,flagClass:"flagItem",style:"display:inline-block;width:auto;",isChecked:function(val,itemVal){return val==itemVal},setValue:function(value){thiz.flags=value},
getValue:function(){return 16}},thiz,dojo.doc.createElement("div"),true,"ui-widget-content");return flagsWidget},getItemActions:function(){var thiz=this.delegate;var self=this;var actions=[];actions.push({title:"Clear",icon:"el-icon-remove-sign",disabled:false,command:"Reload",place:"last",emit:false,style:"float:left;",handler:function(){thiz.clear(self)}});actions.push(this.createLevelWidget());return actions;var isOnline=currentItem.status===types.SERVICE_STATUS.ONLINE;var dstCommand=currentItem.status==
types.SERVICE_STATUS.OFFLINE?"start":"stop";var canServiceAction=currentItem.can[dstCommand]!==false;var serviceActionFunction=canServiceAction?dstCommand=="start"?function(command,item,owner){thiz.onStart(command,item,owner)}:function(command,item,owner){thiz.onStop(command,item,owner)}:null;var title=currentItem.status==types.SERVICE_STATUS.OFFLINE?"Start":"Stop";var command=currentItem.status==types.SERVICE_STATUS.OFFLINE?"Start":"Stop";var icon=currentItem.status==types.SERVICE_STATUS.OFFLINE?
"el-icon-play":"el-icon-stop";actions.push({title:title,icon:icon,disabled:!canServiceAction,command:command,place:"last",emit:false,style:"",handler:serviceActionFunction});actions.push({title:"Console",icon:"el-icon-indent-left",disabled:!isOnline,command:"Console",place:"last",emit:false,style:"",handler:function(){thiz.openConsole(currentItem)}});actions.push({title:"Reload",icon:"el-icon-refresh",disabled:false,command:"Reload",place:"last",emit:false,style:"",handler:function(){thiz.onReload()}});
if(actions.length==0)return null;return actions}})})},"dijit/TitlePane":function(){require({cache:{"url:dijit/templates/TitlePane.html":'\x3cdiv\x3e\n\t\x3cdiv data-dojo-attach-event\x3d"ondijitclick:_onTitleClick, onkeydown:_onTitleKey"\n\t\t\tclass\x3d"dijitTitlePaneTitle" data-dojo-attach-point\x3d"titleBarNode" id\x3d"${id}_titleBarNode"\x3e\n\t\t\x3cdiv class\x3d"dijitTitlePaneTitleFocus" data-dojo-attach-point\x3d"focusNode"\x3e\n\t\t\t\x3cspan data-dojo-attach-point\x3d"arrowNode" class\x3d"dijitInline dijitArrowNode" role\x3d"presentation"\x3e\x3c/span\n\t\t\t\x3e\x3cspan data-dojo-attach-point\x3d"arrowNodeInner" class\x3d"dijitArrowNodeInner"\x3e\x3c/span\n\t\t\t\x3e\x3cspan data-dojo-attach-point\x3d"titleNode" class\x3d"dijitTitlePaneTextNode"\x3e\x3c/span\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\t\x3cdiv class\x3d"dijitTitlePaneContentOuter" data-dojo-attach-point\x3d"hideNode" role\x3d"presentation"\x3e\n\t\t\x3cdiv class\x3d"dijitReset" data-dojo-attach-point\x3d"wipeNode" role\x3d"presentation"\x3e\n\t\t\t\x3cdiv class\x3d"dijitTitlePaneContentInner" data-dojo-attach-point\x3d"containerNode" role\x3d"region" id\x3d"${id}_pane" aria-labelledby\x3d"${id}_titleBarNode"\x3e\n\t\t\t\t\x3c!-- nested divs because wipeIn()/wipeOut() doesn\'t work right on node w/padding etc.  Put padding on inner div. --\x3e\n\t\t\t\x3c/div\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e\n'}});
define("dijit/TitlePane",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/fx","dojo/has","dojo/_base/kernel","dojo/keys","./_CssStateMixin","./_TemplatedMixin","./layout/ContentPane","dojo/text!./templates/TitlePane.html","./_base/manager","dijit/a11yclick"],function(array,declare,dom,domAttr,domClass,domGeometry,fxUtils,has,kernel,keys,_CssStateMixin,_TemplatedMixin,ContentPane,template,manager){var TitlePane=declare("dijit.TitlePane",
[ContentPane,_TemplatedMixin,_CssStateMixin],{title:"",_setTitleAttr:{node:"titleNode",type:"innerHTML"},open:true,toggleable:true,tabIndex:"0",duration:manager.defaultDuration,baseClass:"dijitTitlePane",templateString:template,doLayout:false,_setTooltipAttr:{node:"focusNode",type:"attribute",attribute:"title"},buildRendering:function(){this.inherited(arguments);dom.setSelectable(this.titleNode,false)},postCreate:function(){this.inherited(arguments);if(this.toggleable)this._trackMouseState(this.titleBarNode,
this.baseClass+"Title");var hideNode=this.hideNode,wipeNode=this.wipeNode;this._wipeIn=fxUtils.wipeIn({node:wipeNode,duration:this.duration,beforeBegin:function(){hideNode.style.display=""}});this._wipeOut=fxUtils.wipeOut({node:wipeNode,duration:this.duration,onEnd:function(){hideNode.style.display="none"}})},_setOpenAttr:function(open,animate){array.forEach([this._wipeIn,this._wipeOut],function(animation){if(animation&&animation.status()=="playing")animation.stop()});if(animate){var anim=this[open?
"_wipeIn":"_wipeOut"];anim.play()}else this.hideNode.style.display=this.wipeNode.style.display=open?"":"none";if(this._started)if(open)this._onShow();else this.onHide();this.containerNode.setAttribute("aria-hidden",open?"false":"true");this.focusNode.setAttribute("aria-pressed",open?"true":"false");this._set("open",open);this._setCss()},_setToggleableAttr:function(canToggle){this.focusNode.setAttribute("role",canToggle?"button":"heading");if(canToggle){this.focusNode.setAttribute("aria-controls",
this.id+"_pane");this.focusNode.setAttribute("tabIndex",this.tabIndex);this.focusNode.setAttribute("aria-pressed",this.open)}else{domAttr.remove(this.focusNode,"aria-controls");domAttr.remove(this.focusNode,"tabIndex");domAttr.remove(this.focusNode,"aria-pressed")}this._set("toggleable",canToggle);this._setCss()},_setContentAttr:function(content){if(!this.open||!this._wipeOut||this._wipeOut.status()=="playing")this.inherited(arguments);else{if(this._wipeIn&&this._wipeIn.status()=="playing")this._wipeIn.stop();
domGeometry.setMarginBox(this.wipeNode,{h:domGeometry.getMarginBox(this.wipeNode).h});this.inherited(arguments);if(this._wipeIn)this._wipeIn.play();else this.hideNode.style.display=""}},toggle:function(){this._setOpenAttr(!this.open,true)},_setCss:function(){var node=this.titleBarNode||this.focusNode;var oldCls=this._titleBarClass;this._titleBarClass=this.baseClass+"Title"+(this.toggleable?"":"Fixed")+(this.open?"Open":"Closed");domClass.replace(node,this._titleBarClass,oldCls||"");domClass.replace(node,
this._titleBarClass.replace("TitlePaneTitle",""),(oldCls||"").replace("TitlePaneTitle",""));this.arrowNodeInner.innerHTML=this.open?"-":"+"},_onTitleKey:function(e){if(e.keyCode==keys.DOWN_ARROW&&this.open){this.containerNode.focus();e.preventDefault()}},_onTitleClick:function(){if(this.toggleable)this.toggle()},setTitle:function(title){kernel.deprecated("dijit.TitlePane.setTitle() is deprecated.  Use set('title', ...) instead.","","2.0");this.set("title",title)}});if(0)TitlePane.extend({_setTitleAttr:function(title){this._set("title",
title);this.titleNode.innerHTML=title;this.applyTextDir(this.titleNode)},_setTooltipAttr:function(tooltip){this._set("tooltip",tooltip);if(this.textDir)tooltip=this.enforceTextDirWithUcc(null,tooltip);domAttr.set(this.focusNode,"title",tooltip)},_setTextDirAttr:function(textDir){if(this._created&&this.textDir!=textDir){this._set("textDir",textDir);this.set("title",this.title);this.set("tooltip",this.tooltip)}}});return TitlePane})},"xide/views/OkCancelDialog":function(){define(["dojo/_base/array",
"dojo/_base/declare","dojo/_base/html","dojo/on","dijit/Dialog","xas/views/Dialog","xapp/utils","dojo/dom-attr","xide/widgets/_InsertionMixin","xfile/views/KeyboardHandler"],function(array,declare,html,on,dDialog,Dialog,utils,domAttr,InsertionMixin,KeyboardHandler){return declare("xide.views.OkCancelDialog",[Dialog,InsertionMixin,KeyboardHandler],{data:null,model:null,uuid:null,appIdentifier:null,platform:null,widgets:null,delegate:null,helpNodes:null,currentWidget:null,currentDataItem:null,didLoad:false,
contentPane:null,store:null,tree:null,treeData:null,serviceObject:null,currentTreeNode:null,currentTreeDataItem:null,contentType:0,isContentSourceDialog:false,migrationView:null,doTitleCI:true,doIconCI:true,doDataSourceCI:false,props:null,shareUrl:null,inserts:null,openItem:function(){this.onOk()},postMixInProperties:function(){this.inherited(arguments);var ctxo=sctx;if(mctx&&sctx.getLocals)ctxo=mctx;if(ctxo&&ctxo.getLocals)this._messages=ctxo.getLocals("dijit","common")},createQRCode:function(){var linkSrc=
this.mobileAppShareUrl||utils.getMobileAppShareUrl();var linkCode="\x3ca href\x3d'"+linkSrc+"'\x3e"+linkSrc+"\x3c/a\x3e";var link=dojo.create("span",{src:linkSrc,innerHTML:linkCode});var typeNumber=9;var qr=qrcode(typeNumber,"M");qr.addData(linkSrc);qr.make();var qrImg=qr.createImgTag(3);var span=dojo.create("p",{innerHTML:qrImg,style:"width:100%;height:256px;text-align:center;margin-top:5px;"});this.containerNode.appendChild(span)},onAppLinkCopy:function(dst){return;var clip=new ZeroClipboard.Client;
clip.setText(dst.shareUrl);clip.glue("appLinkButton");clip.setCSSEffects(false)},showLMCButton:function(cliptext,capt,js,furl){var params="txt\x3d"+encodeURIComponent(cliptext)},createAppShareWidgets:function(){var linkSrc=utils.getMobileAppShareUrl();var linkCode="\x3ca href\x3d'"+linkSrc+"'\x3e"+linkSrc+"\x3c/a\x3e";var link=dojo.create("span",{src:linkSrc,innerHTML:linkCode});this.contentPane.domNode.appendChild(link);var typeNumber=9;var qr=qrcode(typeNumber,"S");qr.addData(linkSrc);qr.make();
var qrImg=qr.createImgTag(4);var span=dojo.create("DIV",{innerHTML:qrImg,style:"width:150px;height:150px;margin-top:5px"});this.contentPane.domNode.appendChild(span)},onOk:function(){if(this.delegate&&this.delegate.onOk)this.delegate.onOk(this);try{this.hide()}catch(e){}},onCancel:function(){if(this.delegate&&this.delegate.onCancel)this.delegate.onCancel(this);try{this.hide()}catch(e){}},addActionButtons:function(){var buttonDiv=dojo.create("div",{className:"dijitDialogPaneActionBar",style:"bottom: 0;left: 0;margin: 10px -8px 0;position: absolute;width: 100%;"});
var thiz=this;this.domNode.appendChild(buttonDiv);var buttonOk=new dijit.form.Button({innerHTML:"Ok",tabIndex:0,onClick:function(){thiz.onOk()}});buttonDiv.appendChild(buttonOk.domNode);buttonOk.startup();var buttonCancel=new dijit.form.Button({innerHTML:"Cancel",tabIndex:1,onClick:function(){thiz.onCancel();thiz.hide();thiz.destroyRecursive()}});buttonDiv.appendChild(buttonCancel.domNode);buttonCancel.startup()},addTemplate:function(template){},initWidgets:function(){var href=null;this.tabIndex=
1E3;if(this.props&&this.props.templatePath)href=this.props.templatePath;this.contentPane=new dijit.layout.ContentPane({region:"center",preventCache:true,style:"padding:0px",className:"okCancelDialogContentPane"},dojo.doc.createElement("div"));var thiz=this;setTimeout(function(){thiz.contentPane.resize()},2E3);this.containerNode.appendChild(this.contentPane.domNode);this.contentPane.startup();if(this.inserts)this.doInserts(this.inserts);this.addActionButtons()},startup:function(){this.inherited(arguments);
if(this.didLoad)return;this.initWidgets();this.didLoad=true;var thiz=this;on(this.domNode,"keydown",function(event){thiz.onKey(event)})}})})},"dojox/mobile/Switch":function(){define("dojox/mobile/Switch",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/event","dojo/_base/window","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/dom-attr","dojo/touch","dijit/_Contained","dijit/_WidgetBase","./sniff","./_maskUtils","require"],function(array,connect,declare,event,
win,domClass,domConstruct,domStyle,domAttr,touch,Contained,WidgetBase,has,maskUtils,BidiSwitch){var Switch=declare(0?"dojox.mobile.NonBidiSwitch":"dojox.mobile.Switch",[WidgetBase,Contained],{value:"on",name:"",leftLabel:"ON",rightLabel:"OFF",shape:"mblSwDefaultShape",tabIndex:"0",_setTabIndexAttr:"",baseClass:"mblSwitch",role:"",buildRendering:function(){if(!this.templateString)this.domNode=this.srcNodeRef&&this.srcNodeRef.tagName==="SPAN"?this.srcNodeRef:domConstruct.create("span");if(typeof this.domNode.style.msTouchAction!=
"undefined")this.domNode.style.msTouchAction="none";this.inherited(arguments);if(!this.templateString){var c=this.srcNodeRef&&this.srcNodeRef.className||this.className||this["class"];if(c=c.match(/mblSw.*Shape\d*/))this.shape=c;domClass.add(this.domNode,this.shape);var nameAttr=this.name?' name\x3d"'+this.name+'"':"";this.domNode.innerHTML='\x3cdiv class\x3d"mblSwitchInner"\x3e'+'\x3cdiv class\x3d"mblSwitchBg mblSwitchBgLeft"\x3e'+'\x3cdiv class\x3d"mblSwitchText mblSwitchTextLeft"\x3e\x3c/div\x3e'+
"\x3c/div\x3e"+'\x3cdiv class\x3d"mblSwitchBg mblSwitchBgRight"\x3e'+'\x3cdiv class\x3d"mblSwitchText mblSwitchTextRight"\x3e\x3c/div\x3e'+"\x3c/div\x3e"+'\x3cdiv class\x3d"mblSwitchKnob"\x3e\x3c/div\x3e'+'\x3cinput type\x3d"hidden"'+nameAttr+"\x3e\x3c/div\x3e"+"\x3c/div\x3e";var n=this.inner=this.domNode.firstChild;this.left=n.childNodes[0];this.right=n.childNodes[1];this.knob=n.childNodes[2];this.input=n.childNodes[3]}domAttr.set(this.domNode,"role","checkbox");domAttr.set(this.domNode,"aria-checked",
this.value==="on"?"true":"false");this.switchNode=this.domNode;if(has("windows-theme")){var rootNode=domConstruct.create("div",{className:"mblSwitchContainer"});this.labelNode=domConstruct.create("label",{"class":"mblSwitchLabel","for":this.id},rootNode);rootNode.appendChild(this.domNode.cloneNode(true));this.domNode=rootNode;this.focusNode=rootNode.childNodes[1];this.labelNode.innerHTML=this.value=="off"?this.rightLabel:this.leftLabel;this.switchNode=this.domNode.childNodes[1];var inner=this.inner=
this.domNode.childNodes[1].firstChild;this.left=inner.childNodes[0];this.right=inner.childNodes[1];this.knob=inner.childNodes[2];this.input=inner.childNodes[3]}},postCreate:function(){this.connect(this.switchNode,"onclick","_onClick");this.connect(this.switchNode,"onkeydown","_onClick");this._startHandle=this.connect(this.switchNode,touch.press,"onTouchStart");this._initialValue=this.value},_changeState:function(state,anim){var on=state==="on";this.left.style.display="";this.right.style.display="";
this.inner.style.left="";if(anim)domClass.add(this.switchNode,"mblSwitchAnimation");domClass.remove(this.switchNode,on?"mblSwitchOff":"mblSwitchOn");domClass.add(this.switchNode,on?"mblSwitchOn":"mblSwitchOff");domAttr.set(this.switchNode,"aria-checked",on?"true":"false");var _this=this;_this.defer(function(){_this.left.style.display=on?"":"none";_this.right.style.display=!on?"":"none";domClass.remove(_this.switchNode,"mblSwitchAnimation")},anim?300:0)},_createMaskImage:function(){if(this._timer){this._timer.remove();
delete this._timer}if(this._hasMaskImage)return;this._width=this.switchNode.offsetWidth-this.knob.offsetWidth;this._hasMaskImage=true;if(!(has("webkit")||has("svg")))return;var rDef=domStyle.get(this.left,"borderTopLeftRadius");if(rDef=="0px")return;var rDefs=rDef.split(" ");var rx=parseFloat(rDefs[0]),ry=rDefs.length==1?rx:parseFloat(rDefs[1]);var w=this.switchNode.offsetWidth,h=this.switchNode.offsetHeight;var id=(this.shape+"Mask"+w+h+rx+ry).replace(/\./,"_");maskUtils.createRoundMask(this.switchNode,
0,0,0,0,w,h,rx,ry,1)},_onClick:function(e){if(e&&e.type==="keydown"&&e.keyCode!==13)return;if(this.onClick(e)===false)return;if(this._moved)return;this.value=this.input.value=this.value=="on"?"off":"on";this._changeState(this.value,true);this.onStateChanged(this.value)},onClick:function(){},onTouchStart:function(e){this._moved=false;this.innerStartX=this.inner.offsetLeft;if(!this._conn){this._conn=[this.connect(this.inner,touch.move,"onTouchMove"),this.connect(win.doc,touch.release,"onTouchEnd")];
if(has("windows-theme"))this._conn.push(this.connect(win.doc,"MSPointerCancel","onTouchEnd"))}this.touchStartX=e.touches?e.touches[0].pageX:e.clientX;this.left.style.display="";this.right.style.display="";event.stop(e);this._createMaskImage()},onTouchMove:function(e){e.preventDefault();var dx;if(e.targetTouches){if(e.targetTouches.length!=1)return;dx=e.targetTouches[0].clientX-this.touchStartX}else dx=e.clientX-this.touchStartX;var pos=this.innerStartX+dx;var d=10;if(pos<=-(this._width-d))pos=-this._width;
if(pos>=-d)pos=0;this.inner.style.left=pos+"px";if(Math.abs(dx)>d)this._moved=true},onTouchEnd:function(e){array.forEach(this._conn,connect.disconnect);this._conn=null;if(this.innerStartX==this.inner.offsetLeft)return;var newState=this.inner.offsetLeft<-(this._width/2)?"off":"on";newState=this._newState(newState);this._changeState(newState,true);if(newState!=this.value){this.value=this.input.value=newState;this.onStateChanged(newState)}},_newState:function(newState){return newState},onStateChanged:function(newState){if(this.labelNode)this.labelNode.innerHTML=
newState=="off"?this.rightLabel:this.leftLabel},_setValueAttr:function(value){this._changeState(value,false);if(this.value!=value)this.onStateChanged(value);this.value=this.input.value=value},_setLeftLabelAttr:function(label){this.leftLabel=label;this.left.firstChild.innerHTML=this._cv?this._cv(label):label},_setRightLabelAttr:function(label){this.rightLabel=label;this.right.firstChild.innerHTML=this._cv?this._cv(label):label},reset:function(){this.set("value",this._initialValue)}});return 0?declare("dojox.mobile.Switch",
[Switch,BidiSwitch]):Switch})},"dijit/form/_FormWidget":function(){define("dijit/form/_FormWidget",["dojo/_base/declare","dojo/sniff","dojo/_base/kernel","dojo/ready","../_Widget","../_CssStateMixin","../_TemplatedMixin","./_FormWidgetMixin"],function(declare,has,kernel,ready,_Widget,_CssStateMixin,_TemplatedMixin,_FormWidgetMixin){if(has("dijit-legacy-requires"))ready(0,function(){var requires=["dijit/form/_FormValueWidget"];require(requires)});return declare("dijit.form._FormWidget",[_Widget,_TemplatedMixin,
_CssStateMixin,_FormWidgetMixin],{setDisabled:function(disabled){kernel.deprecated("setDisabled("+disabled+") is deprecated. Use set('disabled',"+disabled+") instead.","","2.0");this.set("disabled",disabled)},setValue:function(value){kernel.deprecated("dijit.form._FormWidget:setValue("+value+") is deprecated.  Use set('value',"+value+") instead.","","2.0");this.set("value",value)},getValue:function(){kernel.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0");
return this.get("value")},postMixInProperties:function(){this.nameAttrSetting=this.name&&!has("msapp")?'name\x3d"'+this.name.replace(/"/g,"\x26quot;")+'"':"";this.inherited(arguments)},_setTypeAttr:null})})},"dojox/image/Lightbox":function(){require({cache:{"url:dojox/image/resources/Lightbox.html":'\x3cdiv class\x3d"dojoxLightbox" dojoAttachPoint\x3d"containerNode"\x3e\n\t\x3cdiv style\x3d"position:relative"\x3e\n\t\t\x3cdiv dojoAttachPoint\x3d"imageContainer" class\x3d"dojoxLightboxContainer" dojoAttachEvent\x3d"onclick: _onImageClick"\x3e\n\t\t\t\x3cimg dojoAttachPoint\x3d"imgNode" src\x3d"${imgUrl}" class\x3d"${imageClass}" alt\x3d"${title}"\x3e\n\t\t\t\x3cdiv class\x3d"dojoxLightboxFooter" dojoAttachPoint\x3d"titleNode"\x3e\n\t\t\t\t\x3cdiv class\x3d"dijitInline LightboxClose" dojoAttachPoint\x3d"closeButtonNode"\x3e\x3c/div\x3e\n\t\t\t\t\x3cdiv class\x3d"dijitInline LightboxNext" dojoAttachPoint\x3d"nextButtonNode"\x3e\x3c/div\x3e\t\n\t\t\t\t\x3cdiv class\x3d"dijitInline LightboxPrev" dojoAttachPoint\x3d"prevButtonNode"\x3e\x3c/div\x3e\n\t\t\t\t\x3cdiv class\x3d"dojoxLightboxText" dojoAttachPoint\x3d"titleTextNode"\x3e\x3cspan dojoAttachPoint\x3d"textNode"\x3e${title}\x3c/span\x3e\x3cspan dojoAttachPoint\x3d"groupCount" class\x3d"dojoxLightboxGroupText"\x3e\x3c/span\x3e\x3c/div\x3e\n\t\t\t\x3c/div\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e'}});
define("dojox/image/Lightbox",["dojo","dijit","dojox","dojo/text!./resources/Lightbox.html","dijit/Dialog","dojox/fx/_base"],function(dojo,dijit,dojox,template){dojo.experimental("dojox.image.Lightbox");dojo.getObject("image",true,dojox);dojo.declare("dojox.image.Lightbox",dijit._Widget,{group:"",title:"",href:"",duration:500,modal:false,_allowPassthru:false,_attachedDialog:null,startup:function(){this.inherited(arguments);var tmp=dijit.byId("dojoxLightboxDialog");if(tmp)this._attachedDialog=tmp;
else{this._attachedDialog=new dojox.image.LightboxDialog({id:"dojoxLightboxDialog"});this._attachedDialog.startup()}if(!this.store){this._addSelf();this.connect(this.domNode,"onclick","_handleClick")}},_addSelf:function(){this._attachedDialog.addImage({href:this.href,title:this.title},this.group||null)},_handleClick:function(e){if(!this._allowPassthru)e.preventDefault();else return;this.show()},show:function(){this._attachedDialog.show(this)},hide:function(){this._attachedDialog.hide()},disable:function(){this._allowPassthru=
true},enable:function(){this._allowPassthru=false},onClick:function(){},destroy:function(){this._attachedDialog.removeImage(this);this.inherited(arguments)}});dojo.declare("dojox.image.LightboxDialog",dijit.Dialog,{title:"",inGroup:null,imgUrl:dijit._Widget.prototype._blankGif,errorMessage:"Image not found.",adjust:true,modal:false,imageClass:"dojoxLightboxImage",errorImg:dojo.moduleUrl("dojox.image","resources/images/warning.png"),templateString:template,constructor:function(args){this._groups=this._groups||
args&&args._groups||{XnoGroupX:[]}},startup:function(){this.inherited(arguments);this._animConnects=[];this.connect(this.nextButtonNode,"onclick","_nextImage");this.connect(this.prevButtonNode,"onclick","_prevImage");this.connect(this.closeButtonNode,"onclick","hide");this._makeAnims();this._vp=dojo.window.getBox();return this},show:function(groupData){var _t=this;this._lastGroup=groupData;if(!_t.open){_t.inherited(arguments);_t._modalconnects.push(dojo.connect(dojo.global,"onscroll",this,"_position"),
dojo.connect(dojo.global,"onresize",this,"_position"),dojo.connect(dojo.body(),"onkeypress",this,"_handleKey"));if(!groupData.modal)_t._modalconnects.push(dojo.connect(dijit._underlay.domNode,"onclick",this,"onCancel"))}if(this._wasStyled){var tmpImg=dojo.create("img",{className:_t.imageClass},_t.imgNode,"after");dojo.destroy(_t.imgNode);_t.imgNode=tmpImg;_t._makeAnims();_t._wasStyled=false}dojo.style(_t.imgNode,"opacity","0");dojo.style(_t.titleNode,"opacity","0");var src=groupData.href;if(groupData.group&&
groupData!=="XnoGroupX"||_t.inGroup){if(!_t.inGroup){_t.inGroup=_t._groups[groupData.group];dojo.forEach(_t.inGroup,function(g,i){if(g.href==groupData.href)_t._index=i})}if(!_t._index){_t._index=0;var sr=_t.inGroup[_t._index];src=sr&&sr.href||_t.errorImg}_t.groupCount.innerHTML=" ("+(_t._index+1)+" of "+Math.max(1,_t.inGroup.length)+")";_t.prevButtonNode.style.visibility="visible";_t.nextButtonNode.style.visibility="visible"}else{_t.groupCount.innerHTML="";_t.prevButtonNode.style.visibility="hidden";
_t.nextButtonNode.style.visibility="hidden"}if(!groupData.leaveTitle)_t.textNode.innerHTML=groupData.title;_t._ready(src)},_ready:function(src){var _t=this;_t._imgError=dojo.connect(_t.imgNode,"error",_t,function(){dojo.disconnect(_t._imgError);_t.imgNode.src=_t.errorImg;_t.textNode.innerHTML=_t.errorMessage});_t._imgConnect=dojo.connect(_t.imgNode,"load",_t,function(e){_t.resizeTo({w:_t.imgNode.width,h:_t.imgNode.height,duration:_t.duration});dojo.disconnect(_t._imgConnect);if(_t._imgError)dojo.disconnect(_t._imgError)});
_t.imgNode.src=src},_nextImage:function(){if(!this.inGroup)return;if(this._index+1<this.inGroup.length)this._index++;else this._index=0;this._loadImage()},_prevImage:function(){if(this.inGroup){if(this._index==0)this._index=this.inGroup.length-1;else this._index--;this._loadImage()}},_loadImage:function(){this._loadingAnim.play(1)},_prepNodes:function(){this._imageReady=false;if(this.inGroup&&this.inGroup[this._index])this.show({href:this.inGroup[this._index].href,title:this.inGroup[this._index].title});
else this.show({title:this.errorMessage,href:this.errorImg})},_calcTitleSize:function(){var sizes=dojo.map(dojo.query("\x3e *",this.titleNode).position(),function(s){return s.h});return{h:Math.max.apply(Math,sizes)}},resizeTo:function(size,forceTitle){var adjustSize=dojo.boxModel=="border-box"?dojo._getBorderExtents(this.domNode).w:0,titleSize=forceTitle||this._calcTitleSize();this._lastTitleSize=titleSize;if(this.adjust&&(size.h+titleSize.h+adjustSize+80>this._vp.h||size.w+adjustSize+60>this._vp.w)){this._lastSize=
size;size=this._scaleToFit(size)}this._currentSize=size;var _sizeAnim=dojox.fx.sizeTo({node:this.containerNode,duration:size.duration||this.duration,width:size.w+adjustSize,height:size.h+titleSize.h+adjustSize});this.connect(_sizeAnim,"onEnd","_showImage");_sizeAnim.play(15)},_scaleToFit:function(size){var ns={},nvp={w:this._vp.w-80,h:this._vp.h-60-this._lastTitleSize.h};var viewportAspect=nvp.w/nvp.h,imageAspect=size.w/size.h;if(imageAspect>=viewportAspect){ns.h=nvp.w/imageAspect;ns.w=nvp.w}else{ns.w=
imageAspect*nvp.h;ns.h=nvp.h}this._wasStyled=true;this._setImageSize(ns);ns.duration=size.duration;return ns},_setImageSize:function(size){var s=this.imgNode;s.height=size.h;s.width=size.w},_size:function(){},_position:function(e){this._vp=dojo.window.getBox();this.inherited(arguments);if(e&&e.type=="resize")if(this._wasStyled){this._setImageSize(this._lastSize);this.resizeTo(this._lastSize)}else if(this.imgNode.height+80>this._vp.h||this.imgNode.width+60>this._vp.h)this.resizeTo({w:this.imgNode.width,
h:this.imgNode.height})},_showImage:function(){this._showImageAnim.play(1)},_showNav:function(){var titleSizeNow=dojo.marginBox(this.titleNode);if(titleSizeNow.h>this._lastTitleSize.h)this.resizeTo(this._wasStyled?this._lastSize:this._currentSize,titleSizeNow);else this._showNavAnim.play(1)},hide:function(){dojo.fadeOut({node:this.titleNode,duration:200,onEnd:dojo.hitch(this,function(){this.imgNode.src=this._blankGif})}).play(5);this.inherited(arguments);this.inGroup=null;this._index=null},addImage:function(child,
group){var g=group;if(!child.href)return;if(g){if(!this._groups[g])this._groups[g]=[];this._groups[g].push(child)}else this._groups["XnoGroupX"].push(child)},removeImage:function(child){var g=child.group||"XnoGroupX";dojo.every(this._groups[g],function(item,i,ar){if(item.href==child.href){ar.splice(i,1);return false}return true})},removeGroup:function(group){if(this._groups[group])this._groups[group]=[]},_handleKey:function(e){if(!this.open)return;var dk=dojo.keys;switch(e.charOrCode){case dk.ESCAPE:this.hide();
break;case dk.DOWN_ARROW:case dk.RIGHT_ARROW:case 78:this._nextImage();break;case dk.UP_ARROW:case dk.LEFT_ARROW:case 80:this._prevImage();break}},_makeAnims:function(){dojo.forEach(this._animConnects,dojo.disconnect);this._animConnects=[];this._showImageAnim=dojo.fadeIn({node:this.imgNode,duration:this.duration});this._animConnects.push(dojo.connect(this._showImageAnim,"onEnd",this,"_showNav"));this._loadingAnim=dojo.fx.combine([dojo.fadeOut({node:this.imgNode,duration:175}),dojo.fadeOut({node:this.titleNode,
duration:175})]);this._animConnects.push(dojo.connect(this._loadingAnim,"onEnd",this,"_prepNodes"));this._showNavAnim=dojo.fadeIn({node:this.titleNode,duration:225})},onClick:function(groupData){},_onImageClick:function(e){if(e&&e.target==this.imgNode){this.onClick(this._lastGroup);if(this._lastGroup.declaredClass)this._lastGroup.onClick(this._lastGroup)}}});return dojox.image.Lightbox})},"xapp/factory":function(){define("xapp/factory",["dojo/_base/declare"],function(declare){return declare("xapp.factory",
null,{})})},"dojox/grid/_EditManager":function(){define("dojox/grid/_EditManager",["dojo/_base/lang","dojo/_base/array","dojo/_base/declare","dojo/_base/connect","dojo/_base/sniff","./util"],function(lang,array,declare,connect,has,util){return declare("dojox.grid._EditManager",null,{constructor:function(inGrid){this.grid=inGrid;this.connections=!has("ie")?[]:[connect.connect(document.body,"onfocus",lang.hitch(this,"_boomerangFocus"))];this.connections.push(connect.connect(this.grid,"onBlur",this,
"apply"));this.connections.push(connect.connect(this.grid,"prerender",this,"_onPreRender"))},info:{},destroy:function(){array.forEach(this.connections,connect.disconnect)},cellFocus:function(inCell,inRowIndex){if(this.grid.singleClickEdit||this.isEditRow(inRowIndex))this.setEditCell(inCell,inRowIndex);else this.apply();if(this.isEditing()||inCell&&inCell.editable&&inCell.alwaysEditing)this._focusEditor(inCell,inRowIndex)},rowClick:function(e){if(this.isEditing()&&!this.isEditRow(e.rowIndex))this.apply()},
styleRow:function(inRow){if(inRow.index==this.info.rowIndex)inRow.customClasses+=" dojoxGridRowEditing"},dispatchEvent:function(e){var c=e.cell,ed=c&&c["editable"]?c:0;return ed&&ed.dispatchEvent(e.dispatch,e)},isEditing:function(){return this.info.rowIndex!==undefined},isEditCell:function(inRowIndex,inCellIndex){return this.info.rowIndex===inRowIndex&&this.info.cell.index==inCellIndex},isEditRow:function(inRowIndex){return this.info.rowIndex===inRowIndex},setEditCell:function(inCell,inRowIndex){if(!this.isEditCell(inRowIndex,
inCell.index)&&this.grid.canEdit&&this.grid.canEdit(inCell,inRowIndex))this.start(inCell,inRowIndex,this.isEditRow(inRowIndex)||inCell.editable)},_focusEditor:function(inCell,inRowIndex){util.fire(inCell,"focus",[inRowIndex])},focusEditor:function(){if(this.isEditing())this._focusEditor(this.info.cell,this.info.rowIndex)},_boomerangWindow:500,_shouldCatchBoomerang:function(){return this._catchBoomerang>(new Date).getTime()},_boomerangFocus:function(){if(this._shouldCatchBoomerang()){this.grid.focus.focusGrid();
this.focusEditor();this._catchBoomerang=0}},_doCatchBoomerang:function(){if(has("ie"))this._catchBoomerang=(new Date).getTime()+this._boomerangWindow},start:function(inCell,inRowIndex,inEditing){if(!this._isValidInput())return;this.grid.beginUpdate();this.editorApply();if(this.isEditing()&&!this.isEditRow(inRowIndex)){this.applyRowEdit();this.grid.updateRow(inRowIndex)}if(inEditing){this.info={cell:inCell,rowIndex:inRowIndex};this.grid.doStartEdit(inCell,inRowIndex);this.grid.updateRow(inRowIndex)}else this.info=
{};this.grid.endUpdate();this.grid.focus.focusGrid();this._focusEditor(inCell,inRowIndex);this._doCatchBoomerang()},_editorDo:function(inMethod){var c=this.info.cell;if(c&&c.editable)c[inMethod](this.info.rowIndex)},editorApply:function(){this._editorDo("apply")},editorCancel:function(){this._editorDo("cancel")},applyCellEdit:function(inValue,inCell,inRowIndex){if(this.grid.canEdit(inCell,inRowIndex))this.grid.doApplyCellEdit(inValue,inRowIndex,inCell.field)},applyRowEdit:function(){this.grid.doApplyEdit(this.info.rowIndex,
this.info.cell.field)},apply:function(){if(this.isEditing()&&this._isValidInput()){this.grid.beginUpdate();this.editorApply();this.applyRowEdit();this.info={};this.grid.endUpdate();this.grid.focus.focusGrid();this._doCatchBoomerang()}},cancel:function(){if(this.isEditing()){this.grid.beginUpdate();this.editorCancel();this.info={};this.grid.endUpdate();this.grid.focus.focusGrid();this._doCatchBoomerang()}},save:function(inRowIndex,inView){var c=this.info.cell;if(this.isEditRow(inRowIndex)&&(!inView||
c.view==inView)&&c.editable)c.save(c,this.info.rowIndex)},restore:function(inView,inRowIndex){var c=this.info.cell;if(this.isEditRow(inRowIndex)&&c.view==inView&&c.editable)c.restore(this.info.rowIndex)},_isValidInput:function(){var w=(this.info.cell||{}).widget;if(!w||!w.isValid)return true;w.focused=true;return w.isValid(true)},_onPreRender:function(){if(this.isEditing())this.info.value=this.info.cell.getValue()}})})},"dijit/DropDownMenu":function(){require({cache:{"url:dijit/templates/Menu.html":'\x3ctable class\x3d"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable" role\x3d"menu" tabIndex\x3d"${tabIndex}"\n\t   cellspacing\x3d"0"\x3e\n\t\x3ctbody class\x3d"dijitReset" data-dojo-attach-point\x3d"containerNode"\x3e\x3c/tbody\x3e\n\x3c/table\x3e\n'}});
define("dijit/DropDownMenu",["dojo/_base/declare","dojo/keys","dojo/text!./templates/Menu.html","./_OnDijitClickMixin","./_MenuBase"],function(declare,keys,template,_OnDijitClickMixin,_MenuBase){return declare("dijit.DropDownMenu",[_MenuBase,_OnDijitClickMixin],{templateString:template,baseClass:"dijitMenu",_onUpArrow:function(){this.focusPrev()},_onDownArrow:function(){this.focusNext()},_onRightArrow:function(evt){this._moveToPopup(evt);evt.stopPropagation();evt.preventDefault()},_onLeftArrow:function(){if(this.parentMenu)if(this.parentMenu._isMenuBar)this.parentMenu.focusPrev();
else this.onCancel(false);else{evt.stopPropagation();evt.preventDefault()}}})})},"dijit/a11y":function(){define("dijit/a11y",["dojo/_base/array","dojo/dom","dojo/dom-attr","dojo/dom-style","dojo/_base/lang","dojo/sniff","./main"],function(array,dom,domAttr,domStyle,lang,has,dijit){var a11y={_isElementShown:function(elem){var s=domStyle.get(elem);return s.visibility!="hidden"&&s.visibility!="collapsed"&&s.display!="none"&&domAttr.get(elem,"type")!="hidden"},hasDefaultTabStop:function(elem){switch(elem.nodeName.toLowerCase()){case "a":return domAttr.has(elem,
"href");case "area":case "button":case "input":case "object":case "select":case "textarea":return true;case "iframe":var body;try{var contentDocument=elem.contentDocument;if("designMode"in contentDocument&&contentDocument.designMode=="on")return true;body=contentDocument.body}catch(e1){try{body=elem.contentWindow.document.body}catch(e2){return false}}return body&&(body.contentEditable=="true"||body.firstChild&&body.firstChild.contentEditable=="true");default:return elem.contentEditable=="true"}},
isTabNavigable:function(elem){if(domAttr.get(elem,"disabled"))return false;else if(domAttr.has(elem,"tabIndex"))return domAttr.get(elem,"tabIndex")>=0;else return a11y.hasDefaultTabStop(elem)},_getTabNavigable:function(root){var first,last,lowest,lowestTabindex,highest,highestTabindex,radioSelected={};function radioName(node){return node&&node.tagName.toLowerCase()=="input"&&node.type&&node.type.toLowerCase()=="radio"&&node.name&&node.name.toLowerCase()}var shown=a11y._isElementShown,isTabNavigable=
a11y.isTabNavigable;var walkTree=function(parent){for(var child=parent.firstChild;child;child=child.nextSibling){if(child.nodeType!=1||has("ie")<=9&&child.scopeName!=="HTML"||!shown(child))continue;if(isTabNavigable(child)){var tabindex=+domAttr.get(child,"tabIndex");if(!domAttr.has(child,"tabIndex")||tabindex==0){if(!first)first=child;last=child}else if(tabindex>0){if(!lowest||tabindex<lowestTabindex){lowestTabindex=tabindex;lowest=child}if(!highest||tabindex>=highestTabindex){highestTabindex=tabindex;
highest=child}}var rn=radioName(child);if(domAttr.get(child,"checked")&&rn)radioSelected[rn]=child}if(child.nodeName.toUpperCase()!="SELECT")walkTree(child)}};if(shown(root))walkTree(root);function rs(node){return radioSelected[radioName(node)]||node}return{first:rs(first),last:rs(last),lowest:rs(lowest),highest:rs(highest)}},getFirstInTabbingOrder:function(root,doc){var elems=a11y._getTabNavigable(dom.byId(root,doc));return elems.lowest?elems.lowest:elems.first},getLastInTabbingOrder:function(root,
doc){var elems=a11y._getTabNavigable(dom.byId(root,doc));return elems.last?elems.last:elems.highest}};1&&lang.mixin(dijit,a11y);return a11y})},"dojo/errors/CancelError":function(){define(["./create"],function(create){return create("CancelError",null,null,{dojoType:"cancel"})})},"dijit/_editor/range":function(){define("dijit/_editor/range",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang"],function(array,declare,lang){var rangeapi={getIndex:function(node,parent){var ret=[],retR=[];var onode=
node;var pnode,n;while(node!=parent){var i=0;pnode=node.parentNode;while(n=pnode.childNodes[i++])if(n===node){--i;break}ret.unshift(i);retR.unshift(i-pnode.childNodes.length);node=pnode}if(ret.length>0&&onode.nodeType==3){n=onode.previousSibling;while(n&&n.nodeType==3){ret[ret.length-1]--;n=n.previousSibling}n=onode.nextSibling;while(n&&n.nodeType==3){retR[retR.length-1]++;n=n.nextSibling}}return{o:ret,r:retR}},getNode:function(index,parent){if(!lang.isArray(index)||index.length==0)return parent;
var node=parent;array.every(index,function(i){if(i>=0&&i<node.childNodes.length)node=node.childNodes[i];else{node=null;return false}return true});return node},getCommonAncestor:function(n1,n2,root){root=root||n1.ownerDocument.body;var getAncestors=function(n){var as=[];while(n){as.unshift(n);if(n!==root)n=n.parentNode;else break}return as};var n1as=getAncestors(n1);var n2as=getAncestors(n2);var m=Math.min(n1as.length,n2as.length);var com=n1as[0];for(var i=1;i<m;i++)if(n1as[i]===n2as[i])com=n1as[i];
else break;return com},getAncestor:function(node,regex,root){root=root||node.ownerDocument.body;while(node&&node!==root){var name=node.nodeName.toUpperCase();if(regex.test(name))return node;node=node.parentNode}return null},BlockTagNames:/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/,getBlockAncestor:function(node,regex,root){root=root||node.ownerDocument.body;regex=regex||rangeapi.BlockTagNames;var block=null,blockContainer;while(node&&node!==root){var name=node.nodeName.toUpperCase();
if(!block&&regex.test(name))block=node;if(!blockContainer&&/^(?:BODY|TD|TH|CAPTION)$/.test(name))blockContainer=node;node=node.parentNode}return{blockNode:block,blockContainer:blockContainer||node.ownerDocument.body}},atBeginningOfContainer:function(container,node,offset){var atBeginning=false;var offsetAtBeginning=offset==0;if(!offsetAtBeginning&&node.nodeType==3)if(/^[\s\xA0]+$/.test(node.nodeValue.substr(0,offset)))offsetAtBeginning=true;if(offsetAtBeginning){var cnode=node;atBeginning=true;while(cnode&&
cnode!==container){if(cnode.previousSibling){atBeginning=false;break}cnode=cnode.parentNode}}return atBeginning},atEndOfContainer:function(container,node,offset){var atEnd=false;var offsetAtEnd=offset==(node.length||node.childNodes.length);if(!offsetAtEnd&&node.nodeType==3)if(/^[\s\xA0]+$/.test(node.nodeValue.substr(offset)))offsetAtEnd=true;if(offsetAtEnd){var cnode=node;atEnd=true;while(cnode&&cnode!==container){if(cnode.nextSibling){atEnd=false;break}cnode=cnode.parentNode}}return atEnd},adjacentNoneTextNode:function(startnode,
next){var node=startnode;var len=0-startnode.length||0;var prop=next?"nextSibling":"previousSibling";while(node){if(node.nodeType!=3)break;len+=node.length;node=node[prop]}return[node,len]},create:function(win){win=win||window;if(win.getSelection)return win.document.createRange();else return new W3CRange},getSelection:function(window,ignoreUpdate){if(window.getSelection)return window.getSelection();else{var s=new ie.selection(window);if(!ignoreUpdate)s._getCurrentSelection();return s}}};if(!window.getSelection){var ie=
rangeapi.ie={cachedSelection:{},selection:function(window){this._ranges=[];this.addRange=function(r,internal){this._ranges.push(r);if(!internal)r._select();this.rangeCount=this._ranges.length};this.removeAllRanges=function(){this._ranges=[];this.rangeCount=0};var _initCurrentRange=function(){var r=window.document.selection.createRange();var type=window.document.selection.type.toUpperCase();if(type=="CONTROL")return new W3CRange(ie.decomposeControlRange(r));else return new W3CRange(ie.decomposeTextRange(r))};
this.getRangeAt=function(i){return this._ranges[i]};this._getCurrentSelection=function(){this.removeAllRanges();var r=_initCurrentRange();if(r){this.addRange(r,true);this.isCollapsed=r.collapsed}else this.isCollapsed=true}},decomposeControlRange:function(range){var firstnode=range.item(0),lastnode=range.item(range.length-1);var startContainer=firstnode.parentNode,endContainer=lastnode.parentNode;var startOffset=rangeapi.getIndex(firstnode,startContainer).o[0];var endOffset=rangeapi.getIndex(lastnode,
endContainer).o[0]+1;return[startContainer,startOffset,endContainer,endOffset]},getEndPoint:function(range,end){var atmrange=range.duplicate();atmrange.collapse(!end);var cmpstr="EndTo"+(end?"End":"Start");var parentNode=atmrange.parentElement();var startnode,startOffset,lastNode;if(parentNode.childNodes.length>0)array.every(parentNode.childNodes,function(node,i){var calOffset;if(node.nodeType!=3){atmrange.moveToElementText(node);if(atmrange.compareEndPoints(cmpstr,range)>0)if(lastNode&&lastNode.nodeType==
3){startnode=lastNode;calOffset=true}else{startnode=parentNode;startOffset=i;return false}else if(i==parentNode.childNodes.length-1){startnode=parentNode;startOffset=parentNode.childNodes.length;return false}}else if(i==parentNode.childNodes.length-1){startnode=node;calOffset=true}if(calOffset&&startnode){var prevnode=rangeapi.adjacentNoneTextNode(startnode)[0];if(prevnode)startnode=prevnode.nextSibling;else startnode=parentNode.firstChild;var prevnodeobj=rangeapi.adjacentNoneTextNode(startnode);
prevnode=prevnodeobj[0];var lenoffset=prevnodeobj[1];if(prevnode){atmrange.moveToElementText(prevnode);atmrange.collapse(false)}else atmrange.moveToElementText(parentNode);atmrange.setEndPoint(cmpstr,range);startOffset=atmrange.text.length-lenoffset;return false}lastNode=node;return true});else{startnode=parentNode;startOffset=0}if(!end&&startnode.nodeType==1&&startOffset==startnode.childNodes.length){var nextnode=startnode.nextSibling;if(nextnode&&nextnode.nodeType==3){startnode=nextnode;startOffset=
0}}return[startnode,startOffset]},setEndPoint:function(range,container,offset){var atmrange=range.duplicate(),node,len;if(container.nodeType!=3)if(offset>0){node=container.childNodes[offset-1];if(node)if(node.nodeType==3){container=node;offset=node.length}else if(node.nextSibling&&node.nextSibling.nodeType==3){container=node.nextSibling;offset=0}else{atmrange.moveToElementText(node.nextSibling?node:container);var parent=node.parentNode;var tempNode=parent.insertBefore(node.ownerDocument.createTextNode(" "),
node.nextSibling);atmrange.collapse(false);parent.removeChild(tempNode)}}else{atmrange.moveToElementText(container);atmrange.collapse(true)}if(container.nodeType==3){var prevnodeobj=rangeapi.adjacentNoneTextNode(container);var prevnode=prevnodeobj[0];len=prevnodeobj[1];if(prevnode){atmrange.moveToElementText(prevnode);atmrange.collapse(false);if(prevnode.contentEditable!="inherit")len++}else{atmrange.moveToElementText(container.parentNode);atmrange.collapse(true);atmrange.move("character",1);atmrange.move("character",
-1)}offset+=len;if(offset>0)if(atmrange.move("character",offset)!=offset)console.error("Error when moving!")}return atmrange},decomposeTextRange:function(range){var tmpary=ie.getEndPoint(range);var startContainer=tmpary[0],startOffset=tmpary[1];var endContainer=tmpary[0],endOffset=tmpary[1];if(range.htmlText.length)if(range.htmlText==range.text)endOffset=startOffset+range.text.length;else{tmpary=ie.getEndPoint(range,true);endContainer=tmpary[0],endOffset=tmpary[1]}return[startContainer,startOffset,
endContainer,endOffset]},setRange:function(range,startContainer,startOffset,endContainer,endOffset,collapsed){var start=ie.setEndPoint(range,startContainer,startOffset);range.setEndPoint("StartToStart",start);if(!collapsed)var end=ie.setEndPoint(range,endContainer,endOffset);range.setEndPoint("EndToEnd",end||start);return range}};var W3CRange=rangeapi.W3CRange=declare(null,{constructor:function(){if(arguments.length>0){this.setStart(arguments[0][0],arguments[0][1]);this.setEnd(arguments[0][2],arguments[0][3])}else{this.commonAncestorContainer=
null;this.startContainer=null;this.startOffset=0;this.endContainer=null;this.endOffset=0;this.collapsed=true}},_updateInternal:function(){if(this.startContainer!==this.endContainer)this.commonAncestorContainer=rangeapi.getCommonAncestor(this.startContainer,this.endContainer);else this.commonAncestorContainer=this.startContainer;this.collapsed=this.startContainer===this.endContainer&&this.startOffset==this.endOffset},setStart:function(node,offset){offset=parseInt(offset);if(this.startContainer===node&&
this.startOffset==offset)return;delete this._cachedBookmark;this.startContainer=node;this.startOffset=offset;if(!this.endContainer)this.setEnd(node,offset);else this._updateInternal()},setEnd:function(node,offset){offset=parseInt(offset);if(this.endContainer===node&&this.endOffset==offset)return;delete this._cachedBookmark;this.endContainer=node;this.endOffset=offset;if(!this.startContainer)this.setStart(node,offset);else this._updateInternal()},setStartAfter:function(node,offset){this._setPoint("setStart",
node,offset,1)},setStartBefore:function(node,offset){this._setPoint("setStart",node,offset,0)},setEndAfter:function(node,offset){this._setPoint("setEnd",node,offset,1)},setEndBefore:function(node,offset){this._setPoint("setEnd",node,offset,0)},_setPoint:function(what,node,offset,ext){var index=rangeapi.getIndex(node,node.parentNode).o;this[what](node.parentNode,index.pop()+ext)},_getIERange:function(){var r=(this._body||this.endContainer.ownerDocument.body).createTextRange();ie.setRange(r,this.startContainer,
this.startOffset,this.endContainer,this.endOffset,this.collapsed);return r},getBookmark:function(){this._getIERange();return this._cachedBookmark},_select:function(){var r=this._getIERange();r.select()},deleteContents:function(){var s=this.startContainer,r=this._getIERange();if(s.nodeType===3&&!this.startOffset)this.setStartBefore(s);r.pasteHTML("");this.endContainer=this.startContainer;this.endOffset=this.startOffset;this.collapsed=true},cloneRange:function(){var r=new W3CRange([this.startContainer,
this.startOffset,this.endContainer,this.endOffset]);r._body=this._body;return r},detach:function(){this._body=null;this.commonAncestorContainer=null;this.startContainer=null;this.startOffset=0;this.endContainer=null;this.endOffset=0;this.collapsed=true}})}lang.setObject("dijit.range",rangeapi);return rangeapi})},"cbtree/store/FileStore":function(){define("cbtree/store/FileStore",["module","dojo/_base/declare","dojo/_base/lang","dojo/Deferred","dojo/Evented","dojo/json","dojo/request","dojo/Stateful",
"dojo/store/util/QueryResults","dojo/when","../errors/createError!../errors/CBTErrors.json","../util/Mutex","../util/QueryEngine","../util/shim/Array"],function(module,declare,lang,Deferred,Evented,json,request,Stateful,QueryResults,when,createError,Mutex,QueryEngine){var CBTError=createError(module.id);var moduleName="cbTree/store/FileStore";var C_ITEM_EXPANDED="_EX";var C_PATH_ATTR="path";var C_ICON_ATTR="icon";var undef;function fixException(error){if(error.response)switch(error.response.status){case 404:error.message=
"404 Object Not Found";error.name="NetworkError"}}function parent(path){var idx=path.lastIndexOf("/");if(idx!=-1)return path.slice(0,idx)}function setIconClass(item){var icc;if(item.directory)icc="fileIconDIR";else{var last=item.name.lastIndexOf(".");if(last>0){var ext=item.name.substr(last+1).toLowerCase();ext=ext.replace(/[a-z]/,function(c){return c.toUpperCase()});icc="fileIcon"+ext}else icc="fileIconUnknown"}item[C_ICON_ATTR]=icc+" fileIcon"}var FileObjectStore=declare([Evented,Stateful],{autoLoad:false,
authToken:null,basePath:".",defaultProperties:{},options:[],preventCache:false,sort:[],queryEngine:QueryEngine,url:"",_localOptions:["iconClass","dirsOnly"],_rootName:".",_reservedProp:["name","size","modified","directory","icon",C_PATH_ATTR],getFeatures:function(){return[]},constructor:function(kwArgs){this._loaded=new Deferred;this._loadInProgress=false;this._storeLoaded=false;this._mutex=new Mutex;this._childIndex={};this._primIndex={};this._data=[]},_basePathSetter:function(value){if(typeof value===
"string"){var baseSegm=value.replace(/\\/g,"/").split("/");baseSegm=baseSegm.filter(function(segment){return!!segment.length&&segment!="."});baseSegm.unshift(".");this.basePath=baseSegm.join("/")}else throw new CBTError("InvalidType","basePathSetter","basePath property must be a string");},_dataSetter:function(){throw new CBTError("InvalidAccess","_dataSetter","data property is not allowed");},_defaultPropertiesSetter:function(value){if(value&&lang.isObject(value))for(var prop in value){if(this._reservedProp.indexOf(prop)!=
-1)throw new CBTError("InvalidAccess","_defaultPropertiesSetter","No default allowed for property '"+prop+"'");}else throw new CBTError("InvalidType","_defaultPropertiesSetter","defaultProperties must be an object");},_sortSetter:function(value){value=value instanceof Array?value:[value];value.forEach(function(sortObj){if(lang.isObject(sortObj)){if(!("attribute"in sortObj))throw new CBTError("PropertyMissing","_sortSetter","[attribute] property missing in sort object");}else throw new CBTError("InvalidType",
"_sortSetter","sort property must be an Array of objects");});this.sort=value;return value},_optionsSetter:function(value){if(!(value instanceof Array))if(typeof value!=="string")throw new CBTError("InvalidType","_optionSetter","Options must be a keyword string"+" or an array of keywords.");else value=value.split(",");this.options=value.filter(function(option){if(this._localOptions.indexOf(option)!=-1){var prop="_option"+option.replace(/[a-z]/,function(c){return c.toUpperCase()});this[prop]=true;
return false}return true},this);return this.options},_urlSetter:function(value,autoLoad){var autoLoad=!!(autoLoad||this.autoLoad);if(typeof value==="string"){this._url=value;if(this._url&&autoLoad===true)this.load();return this._url}else throw new CBTError("InvalidType","_urlSetter","URL must be of type string");},_deleteFromStore:function(dataObject){var items=dataObject.items;var index=this._primIndex;var chdIdx=this._childIndex;var data=this._data;var self=this;var i;function deleteChild(id){var storeItem=
data[index[id]];var children,idx;if(storeItem)if(children=chdIdx[storeItem.parent])if((idx=children.indexOf(storeItem))!=-1)children.splice(idx,1)}function deleteItem(item){if(item.directory){if(item.children)item.children.forEach(deleteItem);item[C_ITEM_EXPANDED]=false}var id=self.getIdentity(item);deleteChild(id);delete data[index[id]];delete chdIdx[id]}if(items&&items.length)return this._mutex.aquire(function(){items.forEach(deleteItem);this._data=data.filter(function(){return true});this._primIndex=
{};for(i=0;i<this._data.length;i++)this._primIndex[this._data[i][C_PATH_ATTR]]=i;this._mutex.release(true)},this);return(new Deferred).resolve(false)},_fetchFromServer:function(path,queryOptions,deferred){var deferred=deferred||new Deferred;var options={path:path};var self=this;var promise;if(queryOptions)options.queryOptions=queryOptions;promise=this._xhrRequest("GET",this._url,options);promise.then(function(dataObject){when(self._updateFileStore(dataObject),deferred.resolve,deferred.reject)},function(err){fixException(err);
deferred.reject(err)});return deferred},_fetchFromStore:function(id){return this._data[this._primIndex[id]]},_resyncStore:function(item){var dataObject={total:1,status:200,items:[]};var parentId=item.parent;var self=this;function nestChildren(item){if(item.directory){item.children=self._childIndex[self.getIdentity(item)];item.children.forEach(function(child){nestChildren(child)})}return item}dataObject.items.push(nestChildren(item));this._deleteFromStore(dataObject);var result=this._fetchFromServer(parentId);
result.then(null,function(error){switch(error.response.status){case 404:case 410:self.remove(parentId);break}})},_updateFileStore:function(dataObject){var files=[];var self=this;function updateChildren(oldChildren,newChildren){var identity,exist;if(oldChildren)oldChildren.forEach(function(oldChild){identity=self.getIdentity(oldChild);exist=newChildren.some(function(newChild){return identity===self.getIdentity(newChild)});if(!exist)self.remove(identity,true)})}function updateFile(item,evented){var identity=
self.getIdentity(item);var oldItem=self._fetchFromStore(identity);var children=item.children;var parentId=parent(item.path);var property;var index;function addToParent(item){var siblings=self._childIndex[item.parent]||[];if(siblings.indexOf(item)==-1){siblings.push(item);self._childIndex[item.parent]=siblings}}item.parent=parentId;delete item.children;delete item.oldPath;if(oldItem){if(oldItem.directory&&item[C_ITEM_EXPANDED])updateChildren(self._childIndex[identity],children);item=lang.mixin(oldItem,
item)}else{for(property in self.defaultProperties)item[property]=item[property]||self.defaultProperties[property];if(self._optionIconClass)setIconClass(item)}if(oldItem){index=self._primIndex[identity];self._data[index]=item}else{index=self._data.push(item)-1;self._primIndex[identity]=index}addToParent(item);if(self._storeLoaded&&evented){if(!oldItem)self._data[index]=lang.delegate(item,{_placeHolder:true});self.put(item,{overwrite:true,_server:true})}if(children)children.forEach(function(child){updateFile(child,
false)});return item}if(dataObject&&dataObject.items){var items=dataObject.items;return this._mutex.aquire(function(){items.forEach(function(item){if(self.getIdentity(item))files.push(updateFile(item,true));else;});this._mutex.release(files)},this)}throw new CBTError("InvalidResponse","_updateFileStore");},_xhrRequest:function(method,url,options){var xhrOptions={method:method,preventCache:this.preventCache,handleAs:"json"};var options=lang.mixin(options,{authToken:this.authToken,basePath:this.basePath});
var queryString="";var self=this;var key,value;switch(method){case "POST":var data={basePath:this.basePath,path:options.path,newValue:options.newValue};xhrOptions.data=data;break;case "GET":options.options=this.options;case "DELETE":for(key in options)if(value=options[key]){if(value instanceof Array&&!value.length)continue;queryString+="\x26"+key+"\x3d"+json.stringify(value)}break}if(queryString.length)xhrOptions.query=queryString;var result=request(url,xhrOptions);return result},add:function(object,
options){throw new CBTError("InvalidAccess","add","operation not allowed, use get() and put() instead");},get:function(id,storeOnly){var object=this._data[this._primIndex[id]];if(!object&&!storeOnly)if(!this._loadInProgress){var result=this._fetchFromServer(id,this.options);return result.promise}else;else if(object&&object._placeHolder)return(new Deferred).reject(new CBTError("NotFound","get"));return(new Deferred).resolve(object)},getChildren:function(object,options){var objId=this.getIdentity(object);
var query={parent:objId};var self=this;var result=[];if(this.sort)if(options)options.sort=options.sort||this.sort;else options={sort:this.sort};if(objId&&object.directory){if(!object[C_ITEM_EXPANDED]){result=self._fetchFromServer(objId);return result.then(function(){return self.query(query,options,self._childIndex[objId])},function(err){switch(err.response.status){case 404:case 410:self._resyncStore(object);break;default:return err}return self.query(query,options,self._childIndex[objId])})}return self.query(query,
options,self._childIndex[objId])}return QueryResults(result)},getIdentity:function(object){return object[C_PATH_ATTR]},isItem:function(object){if(object&&typeof object=="object")return object==this.get(this.getIdentity(object));return false},load:function(options){var queryOptions={deep:options?!!options.all:false};var result=this._loaded;var self=this;if(!this._storeLoaded&&!this._loadInProgress){this._loadInProgress=true;result=this._fetchFromServer(null,queryOptions,this._loaded);result.then(function(files){self.emit("load",
{type:"load",store:self});self._loadInProgress=false;self._storeLoaded=true},function(err){self.emit("error",{type:"load",error:err,store:self})})}return result.promise},put:function(object,options){var id=this.getIdentity(object);if(id){var index=this._primIndex;var data=this._data;if(id in index)data[index[id]]=object;else if(options&&options._server===true)index[id]=data.push(object)-1;else throw new CBTError("NotFound","put");return id}throw new CBTError("InvalidObject","put");},query:function(query,
options,_dataSet){var query=query||{name:this._rootName};var data=_dataSet!=undef?_dataSet:this._data;var self=this;if(this._optionDirsOnly&&!query.directory)query.directory=true;if(this.sort)if(options)options.sort=options.sort||this.sort;else options={sort:this.sort};if(!this._storeLoaded){if(!this._loadInProgress)this.loadStore();return when(this._loaded,function(){return QueryResults(self.queryEngine(query,options)(data))})}return QueryResults(self.queryEngine(query,options)(data))},ready:function(callback,
errback){return this._loaded.then(callback,errback)},remove:function(id,_storeOnly){var deferred=new Deferred;var self=this;this.get(id).then(function(item){if(!_storeOnly)var result=self._xhrRequest("DELETE",self._url,{path:item.path});else var result=(new Deferred).resolve({total:1,status:200,items:[item]});result.then(function(data){when(self._deleteFromStore(data),deferred.resolve,deferred.reject)},function(err){switch(err.response.status){case 404:case 410:self._resyncStore(item);deferred.resolve(false);
break;default:deferred.reject(err);break}})},deferred.reject);return deferred.promise},rename:function(object,newPath){var deferred=new Deferred;var self=this;if(newPath&&typeof newPath==="string"){var itemId=this.getIdentity(object);this.get(itemId).then(function(item){var result=self._xhrRequest("POST",self._url,{path:item.path,newValue:newPath});result.then(function(data){self._updateFileStore(data);self.remove(itemId,true);deferred.resolve(newPath)},function(err){switch(err.response.status){case 404:case 410:self._resyncStore(item);
deferred.reject(new CBTError("NotFound","rename","Object nolonger exist"));break;default:deferred.reject(err);break}})},deferred.reject);return deferred.promise}return deferred.reject(new CBTError("InvalidPath","rename"))}});return FileObjectStore})},"xwordpress/views/MainView":function(){define("xwordpress/views/MainView",["dojo/_base/declare","dojo/dom-class","xfile/widgets/ActionToolbarEmbedded","xfile/views/MainView"],function(declare,domClass,ActionToolbarEmbedded,MainView){return declare("xwordpress.views.MainView",
[MainView],{cssClass:"mainView mainViewWordpress xasMain dTuned",_createToolbarEx:function(displayMode,config,container){if(displayMode=="self"){this.actionToolbar=new ActionToolbarEmbedded({delegate:this.ctx.getPanelManager(),ctx:this.ctx,config:config,useElusive:true},dojo.doc.createElement("div"));domClass.add(this.actionToolbar.domNode,"actionToolbarEmbedded");container.containerNode.appendChild(this.actionToolbar.domNode);this.actionToolbar.startup()}}})})},"xide/widgets/Button":function(){define(["dojo/_base/declare",
"dojo/_base/html","dojo/dom-class","dojo/on","xfile/types","dijit/form/Button","./_CSSMixin"],function(declare,html,domClass,on,types,Button,CSSMixin){return dojo.declare("xide.widgets.Button",[Button,CSSMixin],{currentItem:null,buttons:null,iconClass:"",title:"title",disabled:false,iconNode:null,linkNode:null,setDisabled:function(disabled){this.set("disabled",disabled)},postMixInProperties:function(){this.inherited(arguments)},startup:function(){this.inherited(arguments);domClass.remove(this.iconNode,
"dijitReset");this.setDisabled(this.disabled)}})})},"xide/widgets/_CSSMixin":function(){define(["dojo/_base/declare","dojo/dom-class","xide/utils"],function(declare,domClass,utils){return declare("xide.widgets._CSSMixin",null,{doCSSClass:function(node){if(this.cssClass)if(this.cssClass.indexOf(" ")==-1)domClass.add(node||this.containerNode||this.domNode,this.cssClass);else{var _cssNames=this.cssClass.split(" ");for(var i=0;i<_cssNames.length;i++)domClass.add(node||this.containerNode||this.domNode,
_cssNames[i])}},buildRendering:function(){this.inherited(arguments);this.doCSSClass()},doCSSOperations:function(cssOperations,startSearchNode){if(cssOperations)for(var i=0;i<cssOperations.length;i++){var cssItem=cssOperations[i];var cssOp=cssItem["op"]||"add";var cssClasses=cssItem.cssClass;var nodes=utils.find(cssItem.selector,startSearchNode||this.domNode,false);if(nodes&&nodes.length>0)for(var j=0;j<nodes.length;j++)if(cssClasses.indexOf(" ")==-1)domClass[cssOp](nodes[j],cssClasses);else{var _cssNames=
cssClasses.split(" ");for(var k=0;k<_cssNames.length;k++)domClass[cssOp](nodes[j],_cssNames[k])}}}})})},"xas/factory":function(){define(["../dojo/_base/declare"],function(declare){return declare("xas.factory",null,{})})},"url:dijit/layout/templates/_TabButton.html":'\x3cdiv role\x3d"presentation" data-dojo-attach-point\x3d"titleNode,innerDiv,tabContent" class\x3d"dijitTabInner dijitTabContent"\x3e\n\t\x3cspan role\x3d"presentation" class\x3d"dijitInline dijitIcon dijitTabButtonIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\x3e\n\t\x3cspan data-dojo-attach-point\x3d\'containerNode,focusNode\' class\x3d\'tabLabel\'\x3e\x3c/span\x3e\n\t\x3cspan class\x3d"dijitInline dijitTabCloseButton dijitTabCloseIcon" data-dojo-attach-point\x3d\'closeNode\'\n\t\t  role\x3d"presentation"\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d\'closeText\' class\x3d\'dijitTabCloseText\'\x3e[x]\x3c/span\n\t\t\t\t\x3e\x3c/span\x3e\n\x3c/div\x3e\n',
"xfile/views/FileGridViewUtils":function(){define("xfile/views/FileGridViewUtils",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","dojox/rpc/Service","dojo/_base/lang","dijit/Menu","dijit/MenuItem","dijit/layout/ContentPane","dojox/grid/DataGrid","dojo/dom-construct","dgrid/OnDemandGrid","dgrid/Selection","dgrid/Keyboard","dgrid/extensions/ColumnResizer","dgrid/editor","put-selector/put","xfile/views/ContextMenuHandler","xide/types","xide/utils","./FileView",
"xapp/factory/Events","./_KeyNavMixin"],function(array,declare,html,domClass,on,Service,lang,Menu,MenuItem,ContentPane,DataGrid,domConstruct,Grid,Selection,Keyboard,ColumnResizer,editor,put,ContextMenuHandler,types,utils,FileView,eventFactory,_KeyNavMixin){return declare("xfiles.views.FileGridViewUtils",null,{getNumberOfColumns:function(){},getCurrentItemNodes:function(startnode){var rows=utils.find(".dgrid-row",startnode||this.domNode,false);if(rows)return rows;return null},getNumberOfItems:function(startnode){var nbItems=
0;var rows=utils.find(".dgrid-row",startnode||this.domNode,false);if(rows)return rows.length;return nbItems},validateEX:function(){var grid=this.grid;var dirty=grid.dirty;var store=grid.store;var colsMap={};var cols=this.columns;for(colId in cols){var col=cols[colId];if(col.field)colsMap[col.field]={col:col,colId:colId}}var datas=grid.store.query(grid.get("query"),grid.get("queryOptions"));var isValid=true;for(var i=0;i<datas.length;i++){var data=datas[i];var id=store.getIdentity(data);for(field in colsMap){var colDef=
colsMap[field];var cell=grid.cell(id,colDef.colId);var value=grid.dirty&&grid.dirty[id]&&grid.dirty[id][field]||data[field];var column=cell.column;if(column.canEdit&&column.canEdit(data,value)){var editor=column.editorInstance;if(editor&&editor.get){var oldValue=editor.get("value");editor.set("value",value);var isCellValid=editor.validate();if(!isCellValid){grid._inValidCell(cell.element);isValid=false}editor.set("value",oldValue)}}}}return isValid},findRestoreFocusItem:function(){var currentItem=
this.selectedItem;if(this.focusedChildNode){var prev=null;try{prev=this._getPrev(this.focusedChildNode);var isBack=false;if(prev&&prev.data[this.id]&&prev.data[this.id]["isBack"]==true)isBack=true}catch(e){}if(prev&&prev.data&&prev.data.name!==".."&&prev.data!=currentItem&&!isBack)return prev;else{var next=this._getNext(this.focusedChildNode);if(next&&next.data&&next.data!=currentItem)return next}}else;},getRestoreItem:function(){var currentItem=this.activeItem;if(currentItem)if(currentItem.directory!=
null&&currentItem.directory===true)if(currentItem[this.id]&&currentItem[this.id]["isBack"]===true);else{var parent=this.store.getParents(currentItem,true)[0];if(parent)return parent}else{var parent=this.store.getParents(currentItem,true)[0];if(parent)return parent}return currentItem},pathToRegex:function(path){return path;var segm=path.split("/");var regex="(^\\.";var i;for(i=0;i<segm.length;i++)if(segm[i]!==".")regex=regex+"\\/"+segm[i];regex=regex+"\\/[^\\/]*$)";return regex},focusItem:function(item,
storeOnly){if(storeOnly){this.nextFocusItem=item;return}var row=this.grid.row(item);if(row){var focusNode=this.toFocusNode(item);if(!focusNode&&this.focusedChildNode)focusNode=this.focusedChildNode;if(focusNode){this.grid._focusNode=focusNode;this.grid.focus(focusNode);focusNode.focus()}else console.error("have no focus node")}else console.error("have no focus row")},_restoreItem:function(item){if(item){if(item.name==".."&&item.prevName!="..")item.name=item.prevName;item.isBack=false;item[this.id]=
{isBack:false};if(item[this.id].name==".."&&item[this.id].prevName!="..")item[this.id].name=item[this.id].prevName;item[this.id]["prevName"]=item.name}},toFocusNode:function(item){var row=this.grid.row(item);if(row&&row.element){var innerNode=utils.find(".dgrid-cell",row.element,true);if(innerNode)return innerNode;else return row.element}else{var innerNode=utils.find(".dgrid-row",this.grid.domNode,true);if(innerNode)return innerNode}return null}})})},"xide/mixins/ReloadMixin":function(){define(["dojo/_base/declare",
"dojo/_base/lang","xide/types","xide/utils"],function(declare,lang,types,utils){return declare("xide.mixins.ReloadMixin",null,{mergeFunctions:function(target,source){for(var i in source){var o=source[i];if(i==="constructor"||i==="inherited")continue;if(lang.isFunction(source[i]))target[i]=source[i]}},onModuleReloaded:function(evt){var newModule=evt.newModule;if(this.testCall);if(newModule.prototype&&newModule.prototype.declaredClass&&newModule.prototype.declaredClass===this.declaredClass){0&&console.log("   did replace new functions in "+
newModule.prototype.declaredClass+" in \x3d "+this.declaredClass);this.mergeFunctions(this,newModule.prototype);if(this.onReloaded)this.onReloaded(newModule)}else if(evt.module&&utils.replaceAll("//","/",evt.module)===this.declaredClass){0&&console.log("did replace functions in dcl module!");this.mergeFunctions(this,newModule.prototype)}},initReload:function(){var thiz=this;this.subscribe(types.EVENTS.ON_MODULE_RELOADED,function(evt){thiz.onModuleReloaded(evt,thiz)},this)},startup2:function(){try{this.subscribe(types.EVENTS.ON_MODULE_RELOADED,
this.onModuleReloaded,this)}catch(e){debugger}}})})},"xfile/types/Types":function(){define("xfile/types/Types",["dojo/_base/lang","xide/types","xide/types/Types"],function(lang,types){types.FIELDS={SHOW_ISDIR:1602,SHOW_OWNER:1604,SHOW_MIME:1608,SHOW_SIZE:1616,SHOW_PERMISSIONS:1632,SHOW_TIME:1633};types.FILE_PANEL_LAYOUT={TREE:1,LIST:2,THUMB:3};types.LAYOUT_PRESET={DUAL:1,SINGLE:2};types.PANEL_OPTIONS={ALLOW_NEW_TABS:true,ALLOW_MULTI_TAB:true,ALLOW_INFO_VIEW:true,ALLOW_LOG_VIEW:true,ALLOW_CONTEXT_MENU:true,
ALLOW_LAYOUT_SELECTOR:true,ALLOW_SOURCE_SELECTOR:true};types.LAYOUT_REGION={LEFT:"left",TOP:"top",CENTER:"center",BOTTOM:"bottom"};types.FILE_PANEL_OPTIONS_LEFT={LAYOUT:2,AUTO_OPEN:true};types.FILE_PANEL_OPTIONS_MAIN={LAYOUT:3,AUTO_OPEN:true};types.FILE_PANEL_OPTIONS_RIGHT={LAYOUT:3,AUTO_OPEN:true};types.FILE_GRID_COLUMNS={NAME:"name",SIZE:"size",MODIFIED:"modified"};types.ACTION_TOOLBAR_MODE={SELF:"self"};lang.mixin(types.EVENTS,{STORE_CHANGED:"storeChange",BEFORE_STORE_CHANGE:"beforeStoreChange",
STORE_REFRESHED:"storeRefreshed",ON_FILE_STORE_READY:"onFileStoreReady",ON_DID_OPEN_ITEM:"onDidOpenItem",ON_SHOW_PANEL:"onShowPanel",ITEM_SELECTED:"itemSelected",ERROR:"fileOperationError",STATUS:"fileOperationStatus",IMAGE_LOADED:"imageLoaded",IMAGE_ERROR:"imageError",RESIZE:"resize",UPLOAD_BEGIN:"uploadBegin",UPLOAD_PROGRESS:"uploadProgress",UPLOAD_FINISH:"uploadFinish",ON_CLIPBOARD_COPY:"onClipboardCopy",ON_CLIPBOARD_PASTE:"onClipboardPaste",ON_CLIPBOARD_CUT:"onClipboardCut",ON_CONTEXT_MENU_OPEN:"onContextMenuOpen",
ON_PLUGIN_LOADED:"onPluginLoaded",ON_PLUGIN_READY:"onPluginReady",ON_MAIN_VIEW_READY:"onMainViewReady2",REGISTER_EDITOR:"registerEditor",REGISTER_ACTION:"registerAction",ON_FILE_CONTENT_CHANGED:"onFileContentChanged",ON_PANEL_CLOSED:"onPanelClosed",ON_PANEL_CREATED:"onPanelCreated",ON_COPY_BEGIN:"onCopyBegin",ON_COPY_END:"onCopyEnd",ON_DELETE_BEGIN:"onDeleteBegin",ON_DELETE_END:"onDeleteEnd",ON_MOVE_BEGIN:"onMoveBegin",ON_MOVE_END:"onMoveEnd",ON_COMPRESS_BEGIN:"onCompressBegin",ON_COMPRESS_END:"onCompressEnd",
ON_SOURCE_MENU_OPEN:"onSourceMenuOpen",ON_MOUNT_DATA_READY:"onMountDataReady"});types.SELECTION_MODE={SINGLE:"single",MULTI:"multiple",EXTENDED:"extended"};types.OPERATION={COPY:"copy",MOVE:"move",RENAME:"rename",DELETE:"delete",OPEN:"open",EDIT:"edit",DOWNLOAD:"download",DOWNLOAD_TO:"downloadTo",INFO:"info",COMPRESS:"compress",RELOAD:"reload",PREVIEW:"preview",INSERT_IMAGE:"insertImage",COPY_PASTE:"copypaste",DND:"dnd",OPTIONS:"options",NEW_FILE:"mkfile",NEW_DIRECTORY:"mkdir",GET_CONTENT:"get",SET_CONTENT:"set",
FIND:"find",CUSTOM:"custom",PERMA_LINK:"permaLink"};types.OPERATION_INT={NONE:0,EDIT:1,COPY:2,MOVE:3,INFO:4,DOWNLOAD:5,COMPRESS:6,DELETE:7,RENAME:8,DND:9,COPY_PASTE:10,OPEN:11,RELOAD:12,PREVIEW:14,INSERT_IMAGE:15,NEW_FILE:16,NEW_DIRECTORY:17,UPLOAD:18,READ:19,WRITE:20,PLUGINS:21,CUSTOM:22,FIND:23,PERMA_LINK:24,ADD_MOUNT:25,REMOVE_MOUNT:26,EDIT_MOUNT:27};return types})},"xide/views/History":function(){define(["dojo/_base/declare"],function(declare){return declare("xide.views.History",null,{_history:[""],
_index:0,push:function(cmd){this._history.push(cmd);this._index=this.length()},length:function(){return this._history.length},getNext:function(){this._index+=1;var cmd=this._history[this._index]||"";this._index=Math.min(this.length(),this._index);return cmd},getPrev:function(){this._index=Math.max(0,this._index-1);return this._history[this._index]}})})},"xide/mixins/ItemActionMixin":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","xide/types","xide/utils","xide/factory"],
function(array,declare,lang,types,utils,factory){return declare("xide.mixins.ItemActionMixin",null,{hasItemActions:function(){return false},getItem:function(){return null},getItemActions:function(){return null}})})},"dojo/request/handlers":function(){define(["../json","../_base/kernel","../_base/array","../has","../selector/_loader"],function(JSON,kernel,array,has){has.add("activex",typeof ActiveXObject!=="undefined");has.add("dom-parser",function(global){return"DOMParser"in global});var handleXML;
if(has("activex")){var dp=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML.DOMDocument"];var lastParser;handleXML=function(response){var result=response.data;var text=response.text;if(result&&has("dom-qsa2.1")&&!result.querySelectorAll&&has("dom-parser"))result=(new DOMParser).parseFromString(text,"application/xml");function createDocument(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(text);result=dom;lastParser=p}catch(e){return false}return true}
if(!result||!result.documentElement)if(!lastParser||!createDocument(lastParser))array.some(dp,createDocument);return result}}var handlers={"javascript":function(response){return kernel.eval(response.text||"")},"json":function(response){return JSON.parse(response.text||null)},"xml":handleXML};function handle(response){var handler=handlers[response.options.handleAs];response.data=handler?handler(response):response.data||response.text;return response}handle.register=function(name,handler){handlers[name]=
handler};return handle})},"dojo/rpc/RpcService":function(){define(["../_base/array","../_base/declare","../_base/Deferred","../_base/kernel","../_base/lang","../_base/url","../_base/xhr"],function(array,declare,Deferred,kernel,lang,_Url,xhr){return declare("dojo.rpc.RpcService",null,{constructor:function(args){if(args)if(lang.isString(args)||args instanceof _Url){if(args instanceof _Url)var url=args+"";else url=args;var def=xhr.get({url:url,handleAs:"json-comment-optional",sync:true});def.addCallback(this,
"processSmd");def.addErrback(function(){throw new Error("Unable to load SMD from "+args);})}else if(args.smdStr)this.processSmd(kernel.eval("("+args.smdStr+")"));else{if(args.serviceUrl)this.serviceUrl=args.serviceUrl;this.timeout=args.timeout||0;if("strictArgChecks"in args)this.strictArgChecks=args.strictArgChecks;this.processSmd(args)}},strictArgChecks:true,serviceUrl:"",parseResults:function(obj){return obj},errorCallback:function(deferredRequestHandler){return function(data){deferredRequestHandler.errback(data.message)}},
resultCallback:function(deferredRequestHandler){return lang.hitch(this,function(obj){if(obj.error!=null){var err;if(typeof obj.error=="object"){err=new Error(obj.error.message);err.code=obj.error.code;err.error=obj.error.error}else err=new Error(obj.error);err.id=obj.id;err.errorObject=obj;deferredRequestHandler.errback(err)}else deferredRequestHandler.callback(this.parseResults(obj))})},generateMethod:function(method,parameters,url){return lang.hitch(this,function(){var deferredRequestHandler=new Deferred;
if(this.strictArgChecks&&parameters!=null&&arguments.length!=parameters.length)throw new Error("Invalid number of parameters for remote method.");else this.bind(method,lang._toArray(arguments),deferredRequestHandler,url);return deferredRequestHandler})},processSmd:function(object){if(object.methods)array.forEach(object.methods,function(m){if(m&&m.name){this[m.name]=this.generateMethod(m.name,m.parameters,m.url||m.serviceUrl||m.serviceURL);if(!lang.isFunction(this[m.name]))throw new Error("RpcService: Failed to create"+
m.name+"()");}},this);this.serviceUrl=object.serviceUrl||object.serviceURL;this.required=object.required;this.smd=object}})})},"dojo/io-query":function(){define(["./_base/lang"],function(lang){var backstop={};return{objectToQuery:function objectToQuery(map){var enc=encodeURIComponent,pairs=[];for(var name in map){var value=map[name];if(value!=backstop[name]){var assign=enc(name)+"\x3d";if(lang.isArray(value))for(var i=0,l=value.length;i<l;++i)pairs.push(assign+enc(value[i]));else pairs.push(assign+
enc(value))}}return pairs.join("\x26")},queryToObject:function queryToObject(str){var dec=decodeURIComponent,qp=str.split("\x26"),ret={},name,val;for(var i=0,l=qp.length,item;i<l;++i){item=qp[i];if(item.length){var s=item.indexOf("\x3d");if(s<0){name=dec(item);val=""}else{name=dec(item.slice(0,s));val=dec(item.slice(s+1))}if(typeof ret[name]=="string")ret[name]=[ret[name]];if(lang.isArray(ret[name]))ret[name].push(val);else ret[name]=val}}return ret}}})},"dijit/form/_FormMixin":function(){define("dijit/form/_FormMixin",
["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","dojo/on","dojo/window"],function(array,declare,kernel,lang,on,winUtils){return declare("dijit.form._FormMixin",null,{state:"",_getDescendantFormWidgets:function(children){var res=[];array.forEach(children||this.getChildren(),function(child){if("value"in child)res.push(child);else res=res.concat(this._getDescendantFormWidgets(child.getChildren()))},this);return res},reset:function(){array.forEach(this._getDescendantFormWidgets(),
function(widget){if(widget.reset)widget.reset()})},validate:function(){var didFocus=false;return array.every(array.map(this._getDescendantFormWidgets(),function(widget){widget._hasBeenBlurred=true;var valid=widget.disabled||!widget.validate||widget.validate();if(!valid&&!didFocus){winUtils.scrollIntoView(widget.containerNode||widget.domNode);widget.focus();didFocus=true}return valid}),function(item){return item})},setValues:function(val){kernel.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.",
"","2.0");return this.set("value",val)},_setValueAttr:function(obj){var map={};array.forEach(this._getDescendantFormWidgets(),function(widget){if(!widget.name)return;var entry=map[widget.name]||(map[widget.name]=[]);entry.push(widget)});for(var name in map){if(!map.hasOwnProperty(name))continue;var widgets=map[name],values=lang.getObject(name,false,obj);if(values===undefined)continue;values=[].concat(values);if(typeof widgets[0].checked=="boolean")array.forEach(widgets,function(w){w.set("value",array.indexOf(values,
w._get("value"))!=-1)});else if(widgets[0].multiple)widgets[0].set("value",values);else array.forEach(widgets,function(w,i){w.set("value",values[i])})}},getValues:function(){kernel.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.","","2.0");return this.get("value")},_getValueAttr:function(){var obj={};array.forEach(this._getDescendantFormWidgets(),function(widget){var name=widget.name;if(!name||widget.disabled)return;var value=widget.get("value");if(typeof widget.checked==
"boolean")if(/Radio/.test(widget.declaredClass))if(value!==false)lang.setObject(name,value,obj);else{value=lang.getObject(name,false,obj);if(value===undefined)lang.setObject(name,null,obj)}else{var ary=lang.getObject(name,false,obj);if(!ary){ary=[];lang.setObject(name,ary,obj)}if(value!==false)ary.push(value)}else{var prev=lang.getObject(name,false,obj);if(typeof prev!="undefined")if(lang.isArray(prev))prev.push(value);else lang.setObject(name,[prev,value],obj);else lang.setObject(name,value,obj)}});
return obj},isValid:function(){return this.state==""},onValidStateChange:function(){},_getState:function(){var states=array.map(this._descendants,function(w){return w.get("state")||""});return array.indexOf(states,"Error")>=0?"Error":array.indexOf(states,"Incomplete")>=0?"Incomplete":""},disconnectChildren:function(){},connectChildren:function(inStartup){this._descendants=this._getDescendantFormWidgets();array.forEach(this._descendants,function(child){if(!child._started)child.startup()});if(!inStartup)this._onChildChange()},
_onChildChange:function(attr){if(!attr||attr=="state"||attr=="disabled")this._set("state",this._getState());if(!attr||attr=="value"||attr=="disabled"||attr=="checked"){if(this._onChangeDelayTimer)this._onChangeDelayTimer.remove();this._onChangeDelayTimer=this.defer(function(){delete this._onChangeDelayTimer;this._set("value",this.get("value"))},10)}},startup:function(){this.inherited(arguments);this._descendants=this._getDescendantFormWidgets();this.value=this.get("value");this.state=this._getState();
var self=this;this.own(on(this.containerNode,"attrmodified-state, attrmodified-disabled, attrmodified-value, attrmodified-checked",function(evt){if(evt.target==self.domNode)return;self._onChildChange(evt.type.replace("attrmodified-",""))}));this.watch("state",function(attr,oldVal,newVal){this.onValidStateChange(newVal=="")})},destroy:function(){this.inherited(arguments)}})})},"xide/types/Types":function(){define(["xide/types","dojo/_base/json","dojo/_base/kernel"],function(types,json,dojo){if(types["customTypes"]==
null)types["customTypes"]={};if(types["customEnumerations"]==null)types["customEnumerations"]={};if(types["widgetMappings"]==null)types["widgetMappings"]={};types.resolveType=function(type){if(types["customTypes"][type])return types["customTypes"][type];return null};types.registerType=function(type,map){types["customTypes"][type]=map};types.registerWidgetMapping=function(type,map){types["widgetMappings"][type]=map};types.registerEnumeration=function(type,map){types["customEnumerations"][type]=map};
types.resolveEnumeration=function(type){if(types["customEnumerations"][type])return types["customEnumerations"][type];return null};types.resolveWidgetMapping=function(type){if(types["widgetMappings"][type])return types["widgetMappings"][type];return null};types.PROTOCOL={TCP:"tcp",UDP:"udp",SERIAL:"serial"};types.SOCKET_SERVER_COMMANDS={SIGNAL_MANAGER:"Manager_command",SIGNAL_DEVICE:"Device_command",SIGNAL_RESPONSE:"WebSocket_response",MANAGER_TEST:"Manager_Test",MANAGER_CLOSE_ALL:"Close_All_Connections",
MANAGER_STATUS:"status",MANAGER_START_DRIVER:"startDriver",MANAGER_STOP_DRIVER:"stopDriver",DEVICE_SEND:"Device_Send"};types.ITEM_TYPE={};types.WidgetGroup={All:0,General:1,Visual:2,Module:3,Content:4,Hidden:5,Facebook:6,Twitter:7,Google:8,Apple:9,FourSquare:10,BitLy:11,Tablet:12,Unknown:13,System:14};types.EVENTS={ON_RUN_BLOCK:"onRunBlock",ON_RUN_BLOCK_FAILED:"onRunBlockFailed",ON_RUN_BLOCK_SUCCESS:"onRunBlockSuccess",ON_BLOCK_SELECTED:"onBlockSelected",ON_BLOCK_UNSELECTED:"onBlockUnSelected",ON_FILE_CHANGED:"fileChanged",
ON_NODE_SERVICE_STORE_READY:"onNodeServiceStoreReady",ON_CREATED_MANAGER:"onCreatedManager",ON_CI_UPDATE:"onCIUpdate",ON_CREATED_WIDGET:"onWidgetCreated",ON_WIDGET_READY:"onWidgetReady",ON_MAIN_VIEW_READY:"onMainViewReady",ON_MAIN_MENU_READY:"onMainMenuReady",ON_MAIN_MENU_OPEN:"onMainMenuOpen",ON_VIEW_REMOVED:"onViewRemoved",ON_VIEW_SHOW:"onViewShow",ON_VIEW_ADDED:"onViewAdded",ON_ITEM_SELECTED:"onItemSelected",ON_ACTION_CONTEXT_CHANGED:"onActionContextChanged",ON_CONTAINER_ADDED:"onContainerAdded",
ON_CONTAINER_REMOVED:"onContainerRemoved",ON_CONTAINER_REPLACED:"onContainerReplaced",ON_CONTAINER_SPLIT:"onContainerSplit",ON_CLIPBOARD_COPY:"onClipboardCopy",ON_CLIPBOARD_PASTE:"onClipboardPaste",ON_CLIPBOARD_CUT:"onClipboardCut",ON_MODULE_RELOADED:"onModuleReloaded",RESIZE:"resize",ERROR:"onError",STATUS:"onStatus",STORE_CHANGED:"storeChange",BEFORE_STORE_CHANGE:"beforeStoreChange",STORE_REFRESHED:"storeRefreshed",ON_FILE_STORE_READY:"onFileStoreReady",ON_DID_OPEN_ITEM:"onDidOpenItem",ON_SHOW_PANEL:"onShowPanel",
ITEM_SELECTED:"itemSelected",IMAGE_LOADED:"imageLoaded",IMAGE_ERROR:"imageError",UPLOAD_BEGIN:"uploadBegin",UPLOAD_PROGRESS:"uploadProgress",UPLOAD_FINISH:"uploadFinish",ON_CONTEXT_MENU_OPEN:"onContextMenuOpen",ON_PLUGIN_LOADED:"onPluginLoaded",ON_PLUGIN_READY:"onPluginReady",REGISTER_EDITOR:"registerEditor",REGISTER_ACTION:"registerAction",ON_FILE_CONTENT_CHANGED:"onFileContentChanged",ON_PANEL_CLOSED:"onPanelClosed",ON_PANEL_CREATED:"onPanelCreated",ON_COPY_BEGIN:"onCopyBegin",ON_COPY_END:"onCopyEnd",
ON_DELETE_BEGIN:"onDeleteBegin",ON_DELETE_END:"onDeleteEnd",ON_MOVE_BEGIN:"onMoveBegin",ON_MOVE_END:"onMoveEnd",ON_CHANGED_CONTENT:"onChangedContent",ON_COMPRESS_BEGIN:"onCompressBegin",ON_COMPRESS_END:"onCompressEnd",ON_EXPRESSION_EDITOR_ADD_FUNCTIONS:"onExpressionEditorAddFunctions",WIDGET_PROPERTIES_RENDERED:"OnWidgetPropertiesRendered",WIDGET_PROPERTY_RENDERED:"OnWidgetPropertyRendered",ON_SERVER_LOG_MESSAGE:"onServerLogMessage"};types.SERVICE_STATUS={OFFLINE:"offline",ONLINE:"online",TIMEOUT:"timeout"};
types.MAIN_MENU_KEYS={VIEWS:"views"};types.WidgetGroupTitle={General:"General",Visual:"Visual",Module:"Modules",Content:"Content",Facebook:"Facebook",Twitter:"Twitter",Google:"Google",Apple:"Apple",Others:"Misc",FourSquare:"Foursquare",Bitly:"Bitly",Tablet:"Tablet",Unknown:"Unknown",System:"System"};types.ECIType={BOOL:0,BOX:1,COLOUR:2,ENUMERATION:3,FILE:4,FLAGS:5,FLOAT:6,INTEGER:7,MATRIX:8,OBJECT:9,REFERENCE:10,QUATERNION:11,RECTANGLE:12,STRING:13,UNKNOWN:-1,VECTOR:14,VECTOR2D:15,VECTOR4D:16,ICON:17,
IMAGE:18,BANNER:19,LOGO:20,STRUCTURE:21,BANNER2:22,ICON_SET:23,SCRIPT:24,EXPRESSION:25,RICHTEXT:26,ARGUMENT:27,JSON_DATA:28,EXPRESSION_EDITOR:29,END:30};dojo.fromJson=function(js){var res=null;var didFail=false;try{res=eval("("+js+")")}catch(e){didFail=true}if(didFail){js=js.substring(js.indexOf("{"),js.lastIndexOf("}")+1);try{res=eval("("+js+")")}catch(e){throw new Error(js);}}return res};return types})},"dojo/selector/lite":function(){define(["../has","../_base/kernel"],function(has,dojo){var testDiv=
document.createElement("div");var matchesSelector=testDiv.matches||testDiv.webkitMatchesSelector||testDiv.mozMatchesSelector||testDiv.msMatchesSelector||testDiv.oMatchesSelector;var querySelectorAll=testDiv.querySelectorAll;var unionSplit=/([^\s,](?:"(?:\\.|[^"])+"|'(?:\\.|[^'])+'|[^,])*)/g;has.add("dom-matches-selector",!!matchesSelector);has.add("dom-qsa",!!querySelectorAll);var liteEngine=function(selector,root){if(combine&&selector.indexOf(",")>-1)return combine(selector,root);var doc=root?root.ownerDocument||
root:dojo.doc||document,match=(querySelectorAll?/^([\w]*)#([\w\-]+$)|^(\.)([\w\-\*]+$)|^(\w+$)/:/^([\w]*)#([\w\-]+)(?:\s+(.*))?$|(?:^|(>|.+\s+))([\w\-\*]+)(\S*$)/).exec(selector);root=root||doc;if(match){if(match[2]){var found=dojo.byId?dojo.byId(match[2],doc):doc.getElementById(match[2]);if(!found||match[1]&&match[1]!=found.tagName.toLowerCase())return[];if(root!=doc){var parent=found;while(parent!=root){parent=parent.parentNode;if(!parent)return[]}}return match[3]?liteEngine(match[3],found):[found]}if(match[3]&&
root.getElementsByClassName)return root.getElementsByClassName(match[4]);var found;if(match[5]){found=root.getElementsByTagName(match[5]);if(match[4]||match[6])selector=(match[4]||"")+match[6];else return found}}if(querySelectorAll)if(root.nodeType===1&&root.nodeName.toLowerCase()!=="object")return useRoot(root,selector,root.querySelectorAll);else return root.querySelectorAll(selector);else if(!found)found=root.getElementsByTagName("*");var results=[];for(var i=0,l=found.length;i<l;i++){var node=
found[i];if(node.nodeType==1&&jsMatchesSelector(node,selector,root))results.push(node)}return results};var useRoot=function(context,query,method){var oldContext=context,old=context.getAttribute("id"),nid=old||"__dojo__",hasParent=context.parentNode,relativeHierarchySelector=/^\s*[+~]/.test(query);if(relativeHierarchySelector&&!hasParent)return[];if(!old)context.setAttribute("id",nid);else nid=nid.replace(/'/g,"\\$\x26");if(relativeHierarchySelector&&hasParent)context=context.parentNode;var selectors=
query.match(unionSplit);for(var i=0;i<selectors.length;i++)selectors[i]="[id\x3d'"+nid+"'] "+selectors[i];query=selectors.join(",");try{return method.call(context,query)}finally{if(!old)oldContext.removeAttribute("id")}};if(!has("dom-matches-selector"))var jsMatchesSelector=function(){var caseFix=testDiv.tagName=="div"?"toLowerCase":"toUpperCase";var selectorTypes={"":function(tagName){tagName=tagName[caseFix]();return function(node){return node.tagName==tagName}},".":function(className){var classNameSpaced=
" "+className+" ";return function(node){return node.className.indexOf(className)>-1&&(" "+node.className+" ").indexOf(classNameSpaced)>-1}},"#":function(id){return function(node){return node.id==id}}};var attrComparators={"^\x3d":function(attrValue,value){return attrValue.indexOf(value)==0},"*\x3d":function(attrValue,value){return attrValue.indexOf(value)>-1},"$\x3d":function(attrValue,value){return attrValue.substring(attrValue.length-value.length,attrValue.length)==value},"~\x3d":function(attrValue,
value){return(" "+attrValue+" ").indexOf(" "+value+" ")>-1},"|\x3d":function(attrValue,value){return(attrValue+"-").indexOf(value+"-")==0},"\x3d":function(attrValue,value){return attrValue==value},"":function(attrValue,value){return true}};function attr(name,value,type){var firstChar=value.charAt(0);if(firstChar=='"'||firstChar=="'")value=value.slice(1,-1);value=value.replace(/\\/g,"");var comparator=attrComparators[type||""];return function(node){var attrValue=node.getAttribute(name);return attrValue&&
comparator(attrValue,value)}}function ancestor(matcher){return function(node,root){while((node=node.parentNode)!=root)if(matcher(node,root))return true}}function parent(matcher){return function(node,root){node=node.parentNode;return matcher?node!=root&&matcher(node,root):node==root}}var cache={};function and(matcher,next){return matcher?function(node,root){return next(node)&&matcher(node,root)}:next}return function(node,selector,root){var matcher=cache[selector];if(!matcher){if(selector.replace(/(?:\s*([> ])\s*)|(#|\.)?((?:\\.|[\w-])+)|\[\s*([\w-]+)\s*(.?=)?\s*("(?:\\.|[^"])+"|'(?:\\.|[^'])+'|(?:\\.|[^\]])*)\s*\]/g,
function(t,combinator,type,value,attrName,attrType,attrValue){if(value)matcher=and(matcher,selectorTypes[type||""](value.replace(/\\/g,"")));else if(combinator)matcher=(combinator==" "?ancestor:parent)(matcher);else if(attrName)matcher=and(matcher,attr(attrName,attrValue,attrType));return""}))throw new Error("Syntax error in query");if(!matcher)return true;cache[selector]=matcher}return matcher(node,root)}}();if(!has("dom-qsa"))var combine=function(selector,root){var selectors=selector.match(unionSplit);
var indexed=[];for(var i=0;i<selectors.length;i++){selector=new String(selectors[i].replace(/\s*$/,""));selector.indexOf=escape;var results=liteEngine(selector,root);for(var j=0,l=results.length;j<l;j++){var node=results[j];indexed[node.sourceIndex]=node}}var totalResults=[];for(i in indexed)totalResults.push(indexed[i]);return totalResults};liteEngine.match=matchesSelector?function(node,selector,root){if(root&&root.nodeType!=9)return useRoot(root,selector,function(query){return matchesSelector.call(node,
query)});return matchesSelector.call(node,selector)}:jsMatchesSelector;return liteEngine})},"xide/views/GridView":function(){define(["dojo/_base/declare","dojo/_base/array","dojo/_base/lang","dojo/dom-class","xide/types","xide/factory","xide/utils","./_GridKeyNavMixin","dgrid/Keyboard","xide/views/GridKeyboardHandler"],function(declare,array,lang,domClass,types,factory,utils,GridKeyNavMixin,Keyboard,GridKeyboardHandler){return declare("xide.views.GridView",[GridKeyboardHandler],{grid:null,childSelector:".dgrid-row",
itemType:0,handleContainerClick:true,resizeHeightToParent:true,clearSelection:false,selectedItemNode:null,selectedItem:null,selectedItems:null,keyboardNavigation:false,mouseNavigation:false,openTreeOnEnter:false,dnd:true,gridParams:null,autoHeight:false,select:function(item,focus){this.grid.select(item);if(focus===true)this.focusItem(item)},expand:function(item,focus){var isExpanded=this._isExpanded(item);if(!isExpanded)this.grid.expand(item);if(focus===true)this.focusItem(item)},_isExpanded:function(item){var focusNode=
this.toFocusNode(item);if(focusNode){var innerNode=utils.find(".ui-icon-triangle-1-se",focusNode,true);if(innerNode)return true;else{innerNode=utils.find(".ui-icon-triangle-1-e",focusNode,true);if(!innerNode)return null}}return false},addGridBases:function(bases){if(this.keyboardNavigation)bases.push(Keyboard);return bases},onRight:function(evt){var row=this.grid.row(evt);if(row)this.grid.expand(row)},onLeft:function(evt){var row=this.grid.row(evt);if(row&&row.data&&row.data.parentId){var item=row.data;
var isExpanded=this._isExpanded(row.data);if(!isExpanded){var store=this.store;var parent=this.store.query({id:item.parentId});if(parent&&parent.length==1){this.select(parent[0],true);return}else if(this.blockScope){parent=this.blockScope.getBlockById(item.parentId);if(parent){this.select(parent,true);return}}}}if(row)this.grid.expand(row)},onEnter:function(evt){if(this.delegate&&this.delegate.onGridKeyEnter)this.delegate.onGridKeyEnter(evt)},focusNode:function(node){this.focusChild(node)},toFocusNode:function(item){var row=
this.grid.row(item);if(row&&row.element){var innerNode=utils.find(".dgrid-cell",row.element,true);if(innerNode)return innerNode;else return row.element}else{var innerNode=utils.find(".dgrid-row",this.grid.domNode,true);if(innerNode)return innerNode}return null},focusItem:function(item,storeOnly){if(storeOnly){this.nextFocusItem=item;return}var row=this.grid.row(item);if(row){var focusNode=this.toFocusNode(item);if(!focusNode&&this.focusedChildNode)focusNode=this.focusedChildNode;if(focusNode){this.grid._focusNode=
focusNode;if(this.grid.focus)this.grid.focus(focusNode);focusNode.focus()}else console.error("have no focus node")}else console.error("have no focus row")},getCurrentItemNodes:function(startnode){var rows=utils.find(".dgrid-row",startnode||this.domNode,false);if(rows)return rows;return null},getNumberOfItems:function(startnode){var nbItems=0;var rows=utils.find(".dgrid-row",startnode||this.domNode,false);if(rows)return rows.length;return nbItems},_onGridDataChanged:function(evt){var cell=evt.cell;
var item=null;if(cell&&cell.row&&cell.row.data)item=cell.row.data;var id=evt.rowId;var oldValue=evt.oldValue;var newValue=evt.value;var data={item:item,id:id,oldValue:oldValue,newValue:newValue,grid:this.grid,field:cell.column.field};if(this.delegate&&this.delegate.onGridDataChanged)this.delegate.onGridDataChanged(data)},_onGridEditorShow:function(evt){if(this.delegate&&this.delegate.onGridEditorShow)this.delegate.onGridEditorShow(evt)},onGridCreated:function(grid){grid=grid||this.grid;var thiz=this;
if(this.autoHeight)domClass.add(this.grid.domNode,"dgrid-autoheight");if(this.handleContainerClick)grid.on("click",function(evt){if(evt&&evt.target&&domClass.contains(evt.target,"dgrid-content"))thiz.onContainerFocus()});grid.on("dgrid-select",function(data){if(thiz.isForcedFocus)return;if(data&&data.rows&&data.rows.length==1){thiz.prevItem=data.rows[0].data;thiz.prevFocusNode=data.rows[0].element;if(!thiz.ctlrKeyDown)thiz.onItemSelected(data.rows[0].data,data.rows[0].element);else thiz.onItemSelected(data.rows);
thiz.lastSelectedRowItem=data.rows[0].data}else if(data&&data.rows&&data.rows.length>=1)thiz.onItemsSelected(data.rows)});grid.on("dgrid-datachange",function(evt){thiz._onGridDataChanged(evt)});grid.on("dgrid-error",function(evt){0&&console.warn("error on grid: ",evt.error)});grid.on("dgrid-editor-show",function(evt){thiz._onGridEditorShow(evt)});if(this.mouseNavigation)grid.on("dblclick",function(evt){thiz.onMouseDoubleClickEvent(evt)});grid.on("keydown",function(evt){thiz.onKey(evt)});grid.on("keyup",
function(evt){thiz.onKeyUp(evt)})},restoreFocus:function(){this.onContainerFocus()},onContainerFocus:function(){var thiz=this;if(this.delegate.onItemSelected)this.delegate.onItemSelected(null);if(!this.clearSelection)setTimeout(function(){thiz.onFocusRootNode()},1);else{this.grid.clearSelection();this.selectedItem=null;this.selectedItems=null;if(this.selectedItemNode)this.selectedItemNode.blur();this.selectedItemNode=null}},_getValidItem:function(nodes){for(var i=0;i<nodes.length;i++){var row=this.grid.row(nodes[i]);
if(row&&row.data&&row.data.name!==".")return row.data}return null},getFirstItem:function(){var innerNodes=utils.find(".dgrid-row",this.grid.domNode,false);if(innerNodes)if(innerNodes.length>1){var item=this._getValidItem(innerNodes);if(item)return item}return null},focusFirstItem:function(){if(this._getFirst){var first=this._getFirst();if(first){this.focusItem(first,false);this.grid._focusNode=first;this.grid.focus(first)}else console.error("focusFirstItem:failed")}},onFocusRootNode:function(){if(this.prevFocusNode){this.isForcedFocus=
true;this.focusItem(this.prevFocusNode,false);this.grid._focusNode=this.prevFocusNode;if(this.grid.focus)this.grid.focus(this.prevFocusNode);this.isForcedFocus=false}else this.focusFirstItem()},onKeyboardSearch:function(item,evt,searchString,numMatches){if(item&&item.data)this.focusItem(item.data,false)},onGridRefreshed:function(){var newRow=null;if(this.activeItem!=null)this._restoreItem(this.activeItem);try{if(this.nextFocusItemForce){this.focusItem(this.nextFocusItemForce,false);this.nextFocusItemForce=
null}else if(this.autoFocus)if(this.nextFocusItem)this.focusItem(this.nextFocusItem,false);else if(this.grid.focus&&newRow)this.grid.focus(newRow)}catch(e){console.error("onGridFreshed::focus : went wrong!")}var thiz=this;setTimeout(function(){factory.publish(types.EVENTS.IMAGE_LOADED,{},this)},100);this.grid.resize()},onSelected:function(rowIndex){var item=this.grid.getItem(rowIndex);if(item.directory)this.delegate.updateGrid(item)},onItemChanged:function(item,operation){var thiz=this;thiz.grid.refresh()},
getActiveItem:function(){return this.activeItem},onKeyEvent:function(evt){if(this.keyboardDelegate)this.keyboardDelegate.onGridKey(evt)},onMouseEvent:function(evt){if(this.mouseDelegate)this.mouseDelegate.onGridMouse(evt)},onMouseDoubleClickEvent:function(evt){if(this.delegate&&this.delegate.onGridMouseDoubleClick)this.delegate.onGridMouseDoubleClick(evt)},getCurrentSelection:function(viaCSS){if(viaCSS===true){var res=[];var rows=utils.find(".dgrid-selected",this.grid.domNode,false);if(rows==null||
rows.length==0)return null;for(var i=0;i<rows.length;i++){var row=this.grid.row(rows[i]);if(row!=null&&row.data!=null&&row.data.name!=null&&row.data.name!="."&&row.data.name!="..")res.push(row.data)}if(res.length>0)return res;else return null}return this.selectedItems},onItemsSelected:function(items,node){this.selectedItems=[];for(var i=0;i<items.length;i++){var item=items[i];var itemData=item.data;if(item&&itemData){if(item.data=="..")continue;this.selectedItems.push(itemData)}}},onItemSelected:function(item,
node){this.selectedItem=item;this.selectedItemNode=node;this.selectedItems=[item];var struct={store:this.store,item:item,owner:this,type:this.itemType};this.publish(types.EVENTS.ON_ITEM_SELECTED,struct);var innerNode=utils.find(".dgrid-cell",node,true);if(innerNode){this.focusedChildNode=innerNode;this.focusedChildNode["data"]=item}this.activeItem=item;if(this.delegate.onItemSelected)this.delegate.onItemSelected(item);if(node&&node.focus)node.focus()},onResize:function(){if(this.resizeHeightToParent)if(this.domNode&&
this.domNode.parentNode)utils.mimicNode(this.domNode,this.domNode.parentNode,false,true);if(this.domNode&&this.grid)this.grid.resize()},startup:function(){try{this.inherited(arguments);this.subscribe(types.EVENTS.RESIZE,this.onResize)}catch(e){console.error("grid view startup crash : "+e)}}})})},"dojo/domReady":function(){define(["./has"],function(has){var global=this,doc=document,readyStates={"loaded":1,"complete":1},fixReadyState=typeof doc.readyState!="string",ready=!!readyStates[doc.readyState],
readyQ=[],recursiveGuard;function domReady(callback){readyQ.push(callback);if(ready)processQ()}domReady.load=function(id,req,load){domReady(load)};domReady._Q=readyQ;domReady._onQEmpty=function(){};if(fixReadyState)doc.readyState="loading";function processQ(){if(recursiveGuard)return;recursiveGuard=true;while(readyQ.length)try{readyQ.shift()(doc)}catch(err){0&&console.log("Error on domReady callback: "+err)}recursiveGuard=false;domReady._onQEmpty()}if(!ready){var tests=[],detectReady=function(evt){evt=
evt||global.event;if(ready||evt.type=="readystatechange"&&!readyStates[doc.readyState])return;if(fixReadyState)doc.readyState="complete";ready=1;processQ()},on=function(node,event){node.addEventListener(event,detectReady,false);readyQ.push(function(){node.removeEventListener(event,detectReady,false)})};if(!has("dom-addeventlistener")){on=function(node,event){event="on"+event;node.attachEvent(event,detectReady);readyQ.push(function(){node.detachEvent(event,detectReady)})};var div=doc.createElement("div");
try{if(div.doScroll&&global.frameElement===null)tests.push(function(){try{div.doScroll("left");return 1}catch(e){}})}catch(e){}}on(doc,"DOMContentLoaded");on(global,"load");if("onreadystatechange"in doc)on(doc,"readystatechange");else if(!fixReadyState)tests.push(function(){return readyStates[doc.readyState]});if(tests.length){var poller=function(){if(ready)return;var i=tests.length;while(i--)if(tests[i]()){detectReady("poller");return}setTimeout(poller,30)};poller()}}return domReady})},"xfile/manager/RPCService":function(){define("xfile/manager/RPCService",
["dojo/_base/declare","dojo/_base/lang","xapp/utils","dojox/rpc/Service","dojo/has","dojox/encoding/digests/SHA1"],function(declare,lang,utils,Service,has,SHA1){return declare("xfile.manager.RPCService",[Service],{extraArgs:null,signatureField:"sig",signatureToken:"",_executeMethod:function(method){var args=[];var i;if(arguments.length==2&&lang.isArray(arguments[1]))args=arguments[1];else for(i=1;i<arguments.length;i++)args.push(arguments[i]);var request=this._getRequest(method,args);if(this.extraArgs){var index=
0;for(var key in this.extraArgs){request.target+=request.target.indexOf("?")!=-1?"\x26":"?";request.target+=key+"\x3d"+this.extraArgs[key]}}request.target+=request.target.indexOf("?")!=-1?"\x26":"?";var signature=SHA1._hmac(request.data,this.signatureToken,1);request.target+=this.signatureField+"\x3d"+signature;var deferred=dojox.rpc.transportRegistry.match(request.transport).fire(request);deferred.addBoth(function(results){return request._envDef.deserialize.call(this,results)});return deferred}})})},
"dgrid/extensions/ColumnResizer":function(){define(["dojo/_base/declare","dojo/on","dojo/query","dojo/_base/lang","dojo/dom","dojo/dom-geometry","dojo/has","../util/misc","put-selector/put","dojo/_base/html","xstyle/css!../css/extensions/ColumnResizer.css"],function(declare,listen,query,lang,dom,geom,has,miscUtil,put){function addRowSpan(table,span,startRow,column,id){for(var i=1;i<span;i++)table[startRow+i][column]=id}function subRowAssoc(subRows){var i=subRows.length,l=i,numCols=subRows[0].length,
table=new Array(i);while(i--)table[i]=new Array(numCols);var associations={};for(i=0;i<l;i++){var row=table[i],subRow=subRows[i];for(var j=0,js=0;j<numCols;j++){var cell=subRow[js],k;if(typeof row[j]!="undefined")continue;row[j]=cell.id;if(cell.rowSpan&&cell.rowSpan>1)addRowSpan(table,cell.rowSpan,i,j,cell.id);if(i>0&&cell.colSpan&&cell.colSpan>1)for(k=1;k<cell.colSpan;k++){row[++j]=cell.id;if(cell.rowSpan&&cell.rowSpan>1)addRowSpan(table,cell.rowSpan,i,j,cell.id)}associations[cell.id]=subRows[0][j].id;
js++}}return associations}function resizeColumnWidth(grid,colId,width,parentType,doResize){if(width<=0)return;var column=grid.columns[colId],event,rule;if(!column)return;event={grid:grid,columnId:colId,width:width,bubbles:true,cancelable:true};if(parentType)event.parentType=parentType;if(!grid._resizedColumns||listen.emit(grid.headerNode,"dgrid-columnresize",event)){if(width==="auto")delete column.width;else{column.width=width;width+="px"}rule=grid._columnSizes[colId];if(rule)rule.set("width",width);
else rule=miscUtil.addCssRule("#"+miscUtil.escapeCssIdentifier(grid.domNode.id)+" .dgrid-column-"+miscUtil.escapeCssIdentifier(colId,"-"),"width: "+width+";");grid._columnSizes[colId]=rule;if(doResize!==false)grid.resize();return true}}var resizerNode,resizableCount=0;var resizer={create:function(){resizerNode=put("div.dgrid-column-resizer")},destroy:function(){put(resizerNode,"!");resizerNode=null},show:function(grid){var pos=geom.position(grid.domNode,true);resizerNode.style.top=pos.y+"px";resizerNode.style.height=
pos.h+"px";put(document.body,resizerNode)},move:function(x){resizerNode.style.left=x+"px"},hide:function(){resizerNode.parentNode.removeChild(resizerNode)}};return declare(null,{resizeNode:null,minWidth:40,adjustLastColumn:true,_resizedColumns:false,buildRendering:function(){this.inherited(arguments);if(!resizableCount++)resizer.create()},destroy:function(){this.inherited(arguments);for(var name in this._columnSizes)this._columnSizes[name].remove();if(!--resizableCount)resizer.destroy()},resizeColumnWidth:function(colId,
width){return resizeColumnWidth(this,colId,width)},configStructure:function(){var oldSizes=this._oldColumnSizes=lang.mixin({},this._columnSizes),k;this._resizedColumns=false;this._columnSizes={};this.inherited(arguments);for(k in oldSizes)if(!(k in this._columnSizes))oldSizes[k].remove();delete this._oldColumnSizes},_configColumn:function(column){this.inherited(arguments);var colId=column.id,rule;if("width"in column){if(rule=this._oldColumnSizes[colId])rule.set("width",column.width+"px");else rule=
miscUtil.addCssRule("#"+miscUtil.escapeCssIdentifier(this.domNode.id)+" .dgrid-column-"+miscUtil.escapeCssIdentifier(colId,"-"),"width: "+column.width+"px;");this._columnSizes[colId]=rule}},renderHeader:function(){this.inherited(arguments);var grid=this;var assoc;if(this.columnSets&&this.columnSets.length){var csi=this.columnSets.length;while(csi--)assoc=lang.mixin(assoc||{},subRowAssoc(this.columnSets[csi]))}else if(this.subRows&&this.subRows.length>1)assoc=subRowAssoc(this.subRows);var colNodes=
query(".dgrid-cell",grid.headerNode),i=colNodes.length;while(i--){var colNode=colNodes[i],id=colNode.columnId,col=grid.columns[id],childNodes=colNode.childNodes,resizeHandle;if(!col||col.resizable===false)continue;var headerTextNode=put("div.dgrid-resize-header-container");colNode.contents=headerTextNode;while(childNodes.length>0)put(headerTextNode,childNodes[0]);resizeHandle=put(colNode,headerTextNode,"div.dgrid-resize-handle.resizeNode-"+miscUtil.escapeCssIdentifier(id,"-"));resizeHandle.columnId=
assoc&&assoc[id]||id}if(!grid.mouseMoveListen){listen(grid.headerNode,".dgrid-resize-handle:mousedown"+(has("touch")?",.dgrid-resize-handle:touchstart":""),function(e){grid._resizeMouseDown(e,this);grid.mouseMoveListen.resume();grid.mouseUpListen.resume()});grid._listeners.push(grid.mouseMoveListen=listen.pausable(document,"mousemove"+(has("touch")?",touchmove":""),miscUtil.throttleDelayed(function(e){grid._updateResizerPosition(e)})));grid._listeners.push(grid.mouseUpListen=listen.pausable(document,
"mouseup"+(has("touch")?",touchend":""),function(e){grid._resizeMouseUp(e);grid.mouseMoveListen.pause();grid.mouseUpListen.pause()}));grid.mouseMoveListen.pause();grid.mouseUpListen.pause()}},_resizeMouseDown:function(e,target){e.preventDefault();dom.setSelectable(this.domNode,false);this._startX=this._getResizeMouseLocation(e);this._targetCell=query(".dgrid-column-"+miscUtil.escapeCssIdentifier(target.columnId,"-"),this.headerNode)[0];this._updateResizerPosition(e);resizer.show(this)},_resizeMouseUp:function(e){var columnSizes=
this._columnSizes,colNodes,colWidths,gridWidth;if(this.adjustLastColumn)gridWidth=this.headerNode.clientWidth-1;if(!this._resizedColumns){colNodes=query(".dgrid-cell",this.headerNode);if(this.columnSets&&this.columnSets.length)colNodes=colNodes.filter(function(node){var idx=node.columnId.split("-");return idx[0]=="0"&&!(node.columnId in columnSizes)});else if(this.subRows&&this.subRows.length>1)colNodes=colNodes.filter(function(node){return node.columnId.charAt(0)=="0"&&!(node.columnId in columnSizes)});
colWidths=colNodes.map(function(colNode){return colNode.offsetWidth});colNodes.forEach(function(colNode,i){resizeColumnWidth(this,colNode.columnId,colWidths[i],null,false)},this);this._resizedColumns=true}dom.setSelectable(this.domNode,true);var cell=this._targetCell,delta=this._getResizeMouseLocation(e)-this._startX,newWidth=cell.offsetWidth+delta,obj=this._getResizedColumnWidths(),totalWidth=obj.totalWidth,lastCol=obj.lastColId,lastColWidth=query(".dgrid-column-"+miscUtil.escapeCssIdentifier(lastCol,
"-"),this.headerNode)[0].offsetWidth;if(newWidth<this.minWidth)newWidth=this.minWidth;if(resizeColumnWidth(this,cell.columnId,newWidth,e.type))if(cell.columnId!=lastCol&&this.adjustLastColumn)if(totalWidth+delta<gridWidth)resizeColumnWidth(this,lastCol,"auto",e.type);else if(lastColWidth-delta<=this.minWidth)resizeColumnWidth(this,lastCol,this.minWidth,e.type);resizer.hide();delete this._startX;delete this._targetCell},_updateResizerPosition:function(e){if(!this._targetCell)return;var mousePos=this._getResizeMouseLocation(e),
delta=mousePos-this._startX,width=this._targetCell.offsetWidth,left=mousePos;if(width+delta<this.minWidth)left=this._startX-(width-this.minWidth);resizer.move(left)},_getResizeMouseLocation:function(e){var posX=0;if(e.pageX)posX=e.pageX;else if(e.clientX)posX=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;return posX},_getResizedColumnWidths:function(){var totalWidth=0,colNodes=query(".dgrid-cell",this.headerNode);if(this.columnSets&&this.columnSets.length)colNodes=colNodes.filter(function(node){var idx=
node.columnId.split("-");return idx[1]=="0"});else if(this.subRows&&this.subRows.length>1)colNodes=colNodes.filter(function(node){return node.columnId.charAt(0)=="0"});var i=colNodes.length;if(!i)return{};var lastColId=colNodes[i-1].columnId;while(i--)totalWidth+=colNodes[i].offsetWidth;return{totalWidth:totalWidth,lastColId:lastColId}}})})},"url:dijit/templates/MenuBar.html":'\x3cdiv class\x3d"dijitMenuBar dijitMenuPassive" data-dojo-attach-point\x3d"containerNode" role\x3d"menubar" tabIndex\x3d"${tabIndex}"\n\t \x3e\x3c/div\x3e\n',
"dgrid/util/has-css3":function(){define(["dojo/has"],function(has){var cssPrefixes=["ms","O","Moz","Webkit"];function testStyle(element,property){var style=element.style,i;if(property in style)return true;property=property.slice(0,1).toUpperCase()+property.slice(1);for(i=cssPrefixes.length;i--;)if(cssPrefixes[i]+property in style)return cssPrefixes[i];return false}has.add("css-transitions",function(global,doc,element){return testStyle(element,"transitionProperty")});has.add("css-transforms",function(global,
doc,element){return testStyle(element,"transform")});has.add("css-transforms3d",function(global,doc,element){return testStyle(element,"perspective")});has.add("transitionend",function(){var tpfx=has("css-transitions");if(!tpfx)return false;if(tpfx===true)return"transitionend";return{ms:"MSTransitionEnd",O:"oTransitionEnd",Moz:"transitionend",Webkit:"webkitTransitionEnd"}[tpfx]});return has})},"dojo/data/util/filter":function(){define(["../../_base/lang"],function(lang){var filter={};lang.setObject("dojo.data.util.filter",
filter);filter.patternToRegExp=function(pattern,ignoreCase){var rxp="^";var c=null;for(var i=0;i<pattern.length;i++){c=pattern.charAt(i);switch(c){case "\\":rxp+=c;i++;rxp+=pattern.charAt(i);break;case "*":rxp+=".*";break;case "?":rxp+=".";break;case "$":case "^":case "/":case "+":case ".":case "|":case "(":case ")":case "{":case "}":case "[":case "]":rxp+="\\";default:rxp+=c}}rxp+="$";if(ignoreCase)return new RegExp(rxp,"mi");else return new RegExp(rxp,"m")};return filter})},"xide/views/KeyboardHandlerLight":function(){define(["dojo/_base/declare",
"dojo/keys","dojo/has"],function(declare,keys,has){return declare("xide.views.KeyboardHandlerLight",null,{ctlrKeyDown:false,onKeyUp:function(evt){switch(evt.keyCode){case keys.META:case keys.ALT:case keys.CTRL:this.ctlrKeyDown=false;break}},onKey:function(evt){var thiz=this;if(evt.type&&evt.type=="keyup")return this.onKeyUp(evt);if(evt.keyCode==keys.ENTER){if(evt.target&&evt.target.className&&(evt.target.className.indexOf("ace")!=-1||evt.target.className.indexOf("jsoneditor-value")!=-1||evt.target.className.indexOf("jsoneditor-field")!=
-1))return;try{if(this.onOk){evt.preventDefault();this.onOk(null)}}catch(e){console.error("maeh, onOK : triggered onOK on action-dialog enter!")}}else if(this.onNormalKey)this.onNormalKey()}})})},"dojox/mobile/EdgeToEdgeCategory":function(){define("dojox/mobile/EdgeToEdgeCategory",["dojo/_base/declare","./RoundRectCategory"],function(declare,RoundRectCategory){return declare("dojox.mobile.EdgeToEdgeCategory",RoundRectCategory,{buildRendering:function(){this.inherited(arguments);this.domNode.className=
"mblEdgeToEdgeCategory";if(this.type&&this.type=="long")this.domNode.className+=" mblEdgeToEdgeCategoryLong"}})})},"xas/factory/EditorFactory":function(){define(["dojo/_base/declare","xas/factory"],function(declare,factory){factory.createEditor=function(delegate,treeDataItem){var container=dojo.doc.createElement("div");var editor=new xas.views.EditorBase({dataItem:treeDataItem,delegate:delegate,title:xapp.utils.toString(treeDataItem.name)},container);return editor};factory.createEditorWithDataRef=
function(delegate,sourceType,dataRef,name){var container=dojo.doc.createElement("div");var editor=new xas.views.EditorBase({dataRef:dataRef,sourceType:sourceType,delegate:delegate,title:name},container);return editor};factory.createEditorWithTypeAndContent=function(delegate,sourceType,editorContent){var container=dojo.doc.createElement("div");var editor=new xas.views.EditorBase({dataRef:null,sourceType:sourceType,delegate:delegate,title:"Title",editorContent:editorContent},container);return editor};
return factory})},"dojo/Deferred":function(){define(["./has","./_base/lang","./errors/CancelError","./promise/Promise","./promise/instrumentation"],function(has,lang,CancelError,Promise,instrumentation){var PROGRESS=0,RESOLVED=1,REJECTED=2;var FULFILLED_ERROR_MESSAGE="This deferred has already been fulfilled.";var freezeObject=Object.freeze||function(){};var signalWaiting=function(waiting,type,result,rejection,deferred){if(1)if(type===REJECTED&&Deferred.instrumentRejected&&waiting.length===0)Deferred.instrumentRejected(result,
false,rejection,deferred);for(var i=0;i<waiting.length;i++)signalListener(waiting[i],type,result,rejection)};var signalListener=function(listener,type,result,rejection){var func=listener[type];var deferred=listener.deferred;if(func)try{var newResult=func(result);if(type===PROGRESS){if(typeof newResult!=="undefined")signalDeferred(deferred,type,newResult)}else{if(newResult&&typeof newResult.then==="function"){listener.cancel=newResult.cancel;newResult.then(makeDeferredSignaler(deferred,RESOLVED),makeDeferredSignaler(deferred,
REJECTED),makeDeferredSignaler(deferred,PROGRESS));return}signalDeferred(deferred,RESOLVED,newResult)}}catch(error){signalDeferred(deferred,REJECTED,error)}else signalDeferred(deferred,type,result);if(1)if(type===REJECTED&&Deferred.instrumentRejected)Deferred.instrumentRejected(result,!!func,rejection,deferred.promise)};var makeDeferredSignaler=function(deferred,type){return function(value){signalDeferred(deferred,type,value)}};var signalDeferred=function(deferred,type,result){if(!deferred.isCanceled())switch(type){case PROGRESS:deferred.progress(result);
break;case RESOLVED:deferred.resolve(result);break;case REJECTED:deferred.reject(result);break}};var Deferred=function(canceler){var promise=this.promise=new Promise;var deferred=this;var fulfilled,result,rejection;var canceled=false;var waiting=[];if(1&&Error.captureStackTrace){Error.captureStackTrace(deferred,Deferred);Error.captureStackTrace(promise,Deferred)}this.isResolved=promise.isResolved=function(){return fulfilled===RESOLVED};this.isRejected=promise.isRejected=function(){return fulfilled===
REJECTED};this.isFulfilled=promise.isFulfilled=function(){return!!fulfilled};this.isCanceled=promise.isCanceled=function(){return canceled};this.progress=function(update,strict){if(!fulfilled){signalWaiting(waiting,PROGRESS,update,null,deferred);return promise}else if(strict===true)throw new Error(FULFILLED_ERROR_MESSAGE);else return promise};this.resolve=function(value,strict){if(!fulfilled){signalWaiting(waiting,fulfilled=RESOLVED,result=value,null,deferred);waiting=null;return promise}else if(strict===
true)throw new Error(FULFILLED_ERROR_MESSAGE);else return promise};var reject=this.reject=function(error,strict){if(!fulfilled){if(1&&Error.captureStackTrace)Error.captureStackTrace(rejection={},reject);signalWaiting(waiting,fulfilled=REJECTED,result=error,rejection,deferred);waiting=null;return promise}else if(strict===true)throw new Error(FULFILLED_ERROR_MESSAGE);else return promise};this.then=promise.then=function(callback,errback,progback){var listener=[progback,callback,errback];listener.cancel=
promise.cancel;listener.deferred=new Deferred(function(reason){return listener.cancel&&listener.cancel(reason)});if(fulfilled&&!waiting)signalListener(listener,fulfilled,result,rejection);else waiting.push(listener);return listener.deferred.promise};this.cancel=promise.cancel=function(reason,strict){if(!fulfilled){if(canceler){var returnedReason=canceler(reason);reason=typeof returnedReason==="undefined"?reason:returnedReason}canceled=true;if(!fulfilled){if(typeof reason==="undefined")reason=new CancelError;
reject(reason);return reason}else if(fulfilled===REJECTED&&result===reason)return reason}else if(strict===true)throw new Error(FULFILLED_ERROR_MESSAGE);};freezeObject(promise)};Deferred.prototype.toString=function(){return"[object Deferred]"};if(instrumentation)instrumentation(Deferred);return Deferred})},"dojo/request/iframe":function(){define(["module","require","./watch","./util","./handlers","../_base/lang","../io-query","../query","../has","../dom","../dom-construct","../_base/window","../NodeList-dom"],
function(module,require,watch,util,handlers,lang,ioQuery,query,has,dom,domConstruct,win){var mid=module.id.replace(/[\/\.\-]/g,"_"),onload=mid+"_onload";if(!win.global[onload])win.global[onload]=function(){var dfd=iframe._currentDfd;if(!dfd){iframe._fireNextRequest();return}var response=dfd.response,options=response.options,formNode=dom.byId(options.form)||dfd._tmpForm;if(formNode){var toClean=dfd._contentToClean;for(var i=0;i<toClean.length;i++){var key=toClean[i];for(var j=0;j<formNode.childNodes.length;j++){var childNode=
formNode.childNodes[j];if(childNode.name===key){domConstruct.destroy(childNode);break}}}dfd._originalAction&&formNode.setAttribute("action",dfd._originalAction);if(dfd._originalMethod){formNode.setAttribute("method",dfd._originalMethod);formNode.method=dfd._originalMethod}if(dfd._originalTarget){formNode.setAttribute("target",dfd._originalTarget);formNode.target=dfd._originalTarget}}if(dfd._tmpForm){domConstruct.destroy(dfd._tmpForm);delete dfd._tmpForm}dfd._finished=true};function create(name,onloadstr,
uri){if(win.global[name])return win.global[name];if(win.global.frames[name])return win.global.frames[name];if(!uri){if(has("config-useXDomain")&&!has("config-dojoBlankHtmlUrl"))0&&console.warn("dojo/request/iframe: When using cross-domain Dojo builds,"+" please save dojo/resources/blank.html to your domain and set dojoConfig.dojoBlankHtmlUrl"+" to the path on your domain to blank.html");uri=has("config-dojoBlankHtmlUrl")||require.toUrl("dojo/resources/blank.html")}var frame=domConstruct.place('\x3ciframe id\x3d"'+
name+'" name\x3d"'+name+'" src\x3d"'+uri+'" onload\x3d"'+onloadstr+'" style\x3d"position: absolute; left: 1px; top: 1px; height: 1px; width: 1px; visibility: hidden"\x3e',win.body());win.global[name]=frame;return frame}function setSrc(_iframe,src,replace){var frame=win.global.frames[_iframe.name];if(frame.contentWindow)frame=frame.contentWindow;try{if(!replace)frame.location=src;else frame.location.replace(src)}catch(e){0&&console.log("dojo/request/iframe.setSrc: ",e)}}function doc(iframeNode){if(iframeNode.contentDocument)return iframeNode.contentDocument;
var name=iframeNode.name;if(name){var iframes=win.doc.getElementsByTagName("iframe");if(iframeNode.document&&iframes[name].contentWindow&&iframes[name].contentWindow.document)return iframes[name].contentWindow.document;else if(win.doc.frames[name]&&win.doc.frames[name].document)return win.doc.frames[name].document}return null}function createForm(){return domConstruct.create("form",{name:mid+"_form",style:{position:"absolute",top:"-1000px",left:"-1000px"}},win.body())}function fireNextRequest(){var dfd;
try{if(iframe._currentDfd||!iframe._dfdQueue.length)return;do dfd=iframe._currentDfd=iframe._dfdQueue.shift();while(dfd&&(dfd.canceled||dfd.isCanceled&&dfd.isCanceled())&&iframe._dfdQueue.length);if(!dfd||dfd.canceled||dfd.isCanceled&&dfd.isCanceled()){iframe._currentDfd=null;return}var response=dfd.response,options=response.options,c2c=dfd._contentToClean=[],formNode=dom.byId(options.form),notify=util.notify,data=options.data||null,queryStr;if(!dfd._legacy&&options.method==="POST"&&!formNode)formNode=
dfd._tmpForm=createForm();else if(options.method==="GET"&&formNode&&response.url.indexOf("?")>-1){queryStr=response.url.slice(response.url.indexOf("?")+1);data=lang.mixin(ioQuery.queryToObject(queryStr),data)}if(formNode){if(!dfd._legacy){var parentNode=formNode;do parentNode=parentNode.parentNode;while(parentNode!==win.doc.documentElement);if(!parentNode){formNode.style.position="absolute";formNode.style.left="-1000px";formNode.style.top="-1000px";win.body().appendChild(formNode)}if(!formNode.name)formNode.name=
mid+"_form"}if(data){var createInput=function(name,value){domConstruct.create("input",{type:"hidden",name:name,value:value},formNode);c2c.push(name)};for(var x in data){var val=data[x];if(lang.isArray(val)&&val.length>1)for(var i=0;i<val.length;i++)createInput(x,val[i]);else if(!formNode[x])createInput(x,val);else formNode[x].value=val}}var actionNode=formNode.getAttributeNode("action"),methodNode=formNode.getAttributeNode("method"),targetNode=formNode.getAttributeNode("target");if(response.url){dfd._originalAction=
actionNode?actionNode.value:null;if(actionNode)actionNode.value=response.url;else formNode.setAttribute("action",response.url)}if(!dfd._legacy){dfd._originalMethod=methodNode?methodNode.value:null;if(methodNode)methodNode.value=options.method;else formNode.setAttribute("method",options.method)}else if(!methodNode||!methodNode.value)if(methodNode)methodNode.value=options.method;else formNode.setAttribute("method",options.method);dfd._originalTarget=targetNode?targetNode.value:null;if(targetNode)targetNode.value=
iframe._iframeName;else formNode.setAttribute("target",iframe._iframeName);formNode.target=iframe._iframeName;notify&&notify.emit("send",response,dfd.promise.cancel);iframe._notifyStart(response);formNode.submit()}else{var extra="";if(response.options.data){extra=response.options.data;if(typeof extra!=="string")extra=ioQuery.objectToQuery(extra)}var tmpUrl=response.url+(response.url.indexOf("?")>-1?"\x26":"?")+extra;notify&&notify.emit("send",response,dfd.promise.cancel);iframe._notifyStart(response);
iframe.setSrc(iframe._frame,tmpUrl,true)}}catch(e){dfd.reject(e)}}function isValid(response){return!this.isFulfilled()}function isReady(response){return!!this._finished}function handleResponse(response,error){if(!error)try{var options=response.options,doc=iframe.doc(iframe._frame),handleAs=options.handleAs;if(handleAs!=="html"){if(handleAs==="xml")if(doc.documentElement.tagName.toLowerCase()==="html"){query("a",doc.documentElement).orphan();var xmlText=doc.documentElement.innerText;xmlText=xmlText.replace(/>\s+</g,
"\x3e\x3c");response.text=lang.trim(xmlText)}else response.data=doc;else response.text=doc.getElementsByTagName("textarea")[0].value;handlers(response)}else response.data=doc}catch(e){error=e}if(error)this.reject(error);else if(this._finished)this.resolve(response);else this.reject(new Error("Invalid dojo/request/iframe request state"))}function last(response){this._callNext()}var defaultOptions={method:"POST"};function iframe(url,options,returnDeferred){var response=util.parseArgs(url,util.deepCreate(defaultOptions,
options),true);url=response.url;options=response.options;if(options.method!=="GET"&&options.method!=="POST")throw new Error(options.method+" not supported by dojo/request/iframe");if(!iframe._frame)iframe._frame=iframe.create(iframe._iframeName,onload+"();");var dfd=util.deferred(response,null,isValid,isReady,handleResponse,last);dfd._callNext=function(){if(!this._calledNext){this._calledNext=true;iframe._currentDfd=null;iframe._fireNextRequest()}};dfd._legacy=returnDeferred;iframe._dfdQueue.push(dfd);
iframe._fireNextRequest();watch(dfd);return returnDeferred?dfd:dfd.promise}iframe.create=create;iframe.doc=doc;iframe.setSrc=setSrc;iframe._iframeName=mid+"_IoIframe";iframe._notifyStart=function(){};iframe._dfdQueue=[];iframe._currentDfd=null;iframe._fireNextRequest=fireNextRequest;util.addCommonMethods(iframe,["GET","POST"]);return iframe})},"dijit/tree/TreeStoreModel":function(){define("dijit/tree/TreeStoreModel",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/lang"],function(array,
aspect,declare,lang){return declare("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(args){lang.mixin(this,args);this.connects=[];var store=this.store;if(!store.getFeatures()["dojo.data.api.Identity"])throw new Error("dijit.tree.TreeStoreModel: store must support dojo.data.Identity");if(store.getFeatures()["dojo.data.api.Notification"])this.connects=this.connects.concat([aspect.after(store,
"onNew",lang.hitch(this,"onNewItem"),true),aspect.after(store,"onDelete",lang.hitch(this,"onDeleteItem"),true),aspect.after(store,"onSet",lang.hitch(this,"onSetItem"),true)])},destroy:function(){var h;while(h=this.connects.pop())h.remove()},getRoot:function(onItem,onError){if(this.root)onItem(this.root);else this.store.fetch({query:this.query,onComplete:lang.hitch(this,function(items){if(items.length!=1)throw new Error("dijit.tree.TreeStoreModel: root query returned "+items.length+" items, but must return exactly one");
this.root=items[0];onItem(this.root)}),onError:onError})},mayHaveChildren:function(item){return array.some(this.childrenAttrs,function(attr){return this.store.hasAttribute(item,attr)},this)},getChildren:function(parentItem,onComplete,onError){var store=this.store;if(!store.isItemLoaded(parentItem)){var getChildren=lang.hitch(this,arguments.callee);store.loadItem({item:parentItem,onItem:function(parentItem){getChildren(parentItem,onComplete,onError)},onError:onError});return}var childItems=[];for(var i=
0;i<this.childrenAttrs.length;i++){var vals=store.getValues(parentItem,this.childrenAttrs[i]);childItems=childItems.concat(vals)}var _waitCount=0;if(!this.deferItemLoadingUntilExpand)array.forEach(childItems,function(item){if(!store.isItemLoaded(item))_waitCount++});if(_waitCount==0)onComplete(childItems);else array.forEach(childItems,function(item,idx){if(!store.isItemLoaded(item))store.loadItem({item:item,onItem:function(item){childItems[idx]=item;if(--_waitCount==0)onComplete(childItems)},onError:onError})})},
isItem:function(something){return this.store.isItem(something)},fetchItemByIdentity:function(keywordArgs){this.store.fetchItemByIdentity(keywordArgs)},getIdentity:function(item){return this.store.getIdentity(item)},getLabel:function(item){if(this.labelAttr)return this.store.getValue(item,this.labelAttr);else return this.store.getLabel(item)},newItem:function(args,parent,insertIndex){var pInfo={parent:parent,attribute:this.childrenAttrs[0]},LnewItem;if(this.newItemIdAttr&&args[this.newItemIdAttr])this.fetchItemByIdentity({identity:args[this.newItemIdAttr],
scope:this,onItem:function(item){if(item)this.pasteItem(item,null,parent,true,insertIndex);else{LnewItem=this.store.newItem(args,pInfo);if(LnewItem&&insertIndex!=undefined)this.pasteItem(LnewItem,parent,parent,false,insertIndex)}}});else{LnewItem=this.store.newItem(args,pInfo);if(LnewItem&&insertIndex!=undefined)this.pasteItem(LnewItem,parent,parent,false,insertIndex)}},pasteItem:function(childItem,oldParentItem,newParentItem,bCopy,insertIndex){var store=this.store,parentAttr=this.childrenAttrs[0];
if(oldParentItem)array.forEach(this.childrenAttrs,function(attr){if(store.containsValue(oldParentItem,attr,childItem)){if(!bCopy){var values=array.filter(store.getValues(oldParentItem,attr),function(x){return x!=childItem});store.setValues(oldParentItem,attr,values)}parentAttr=attr}});if(newParentItem)if(typeof insertIndex=="number"){var childItems=store.getValues(newParentItem,parentAttr).slice();childItems.splice(insertIndex,0,childItem);store.setValues(newParentItem,parentAttr,childItems)}else store.setValues(newParentItem,
parentAttr,store.getValues(newParentItem,parentAttr).concat(childItem))},onChange:function(){},onChildrenChange:function(){},onDelete:function(){},onNewItem:function(item,parentInfo){if(!parentInfo)return;this.getChildren(parentInfo.item,lang.hitch(this,function(children){this.onChildrenChange(parentInfo.item,children)}))},onDeleteItem:function(item){this.onDelete(item)},onSetItem:function(item,attribute){if(array.indexOf(this.childrenAttrs,attribute)!=-1)this.getChildren(item,lang.hitch(this,function(children){this.onChildrenChange(item,
children)}));else this.onChange(item)}})})},"xwordpress/manager/Context":function(){define("xwordpress/manager/Context",["dojo/_base/declare","xfile/manager/Context"],function(declare,Context){return declare("xwordpress.manager.Context",[Context],{defaultNamespace:"xfile.manager.",namespace:"xwordpress.manager.",initManagers:function(){this.inherited(arguments);if(this.tooltipManager)this.tooltipManager.init();if(this.workflowManager)this.workflowManager.init();if(this.notificationManager)this.notificationManager.init();
try{if(this.settingsManager);}catch(e){console.error("failed")}},constructManagers:function(){this.inherited(arguments);if(!this.workflowManager)this.workflowManager=new xwordpress.manager.WorkflowManager({ctx:this});if(!this.fileManager)this.fileManager=new xwordpress.manager.FileManager({ctx:this});if(!this.notificationManager)this.notificationManager=new xfile.manager.NotificationManager({ctx:this})}})})},"dijit/_TemplatedMixin":function(){define("dijit/_TemplatedMixin",["dojo/cache","dojo/_base/declare",
"dojo/dom-construct","dojo/_base/lang","dojo/on","dojo/sniff","dojo/string","./_AttachMixin"],function(cache,declare,domConstruct,lang,on,has,string,_AttachMixin){var _TemplatedMixin=declare("dijit._TemplatedMixin",_AttachMixin,{templateString:null,templatePath:null,_skipNodeCache:false,searchContainerNode:true,_stringRepl:function(tmpl){var className=this.declaredClass,_this=this;return string.substitute(tmpl,this,function(value,key){if(key.charAt(0)=="!")value=lang.getObject(key.substr(1),false,
_this);if(typeof value=="undefined")throw new Error(className+" template:"+key);if(value==null)return"";return key.charAt(0)=="!"?value:value.toString().replace(/"/g,"\x26quot;")},this)},buildRendering:function(){if(!this._rendered){if(!this.templateString)this.templateString=cache(this.templatePath,{sanitize:true});var cached=_TemplatedMixin.getCachedTemplate(this.templateString,this._skipNodeCache,this.ownerDocument);var node;if(lang.isString(cached)){node=domConstruct.toDom(this._stringRepl(cached),
this.ownerDocument);if(node.nodeType!=1)throw new Error("Invalid template: "+cached);}else node=cached.cloneNode(true);this.domNode=node}this.inherited(arguments);if(!this._rendered)this._fillContent(this.srcNodeRef);this._rendered=true},_fillContent:function(source){var dest=this.containerNode;if(source&&dest)while(source.hasChildNodes())dest.appendChild(source.firstChild)}});_TemplatedMixin._templateCache={};_TemplatedMixin.getCachedTemplate=function(templateString,alwaysUseString,doc){var tmplts=
_TemplatedMixin._templateCache;var key=templateString;var cached=tmplts[key];if(cached){try{if(!cached.ownerDocument||cached.ownerDocument==(doc||document))return cached}catch(e){}domConstruct.destroy(cached)}templateString=string.trim(templateString);if(alwaysUseString||templateString.match(/\$\{([^\}]+)\}/g))return tmplts[key]=templateString;else{var node=domConstruct.toDom(templateString,doc);if(node.nodeType!=1)throw new Error("Invalid template: "+templateString);return tmplts[key]=node}};if(has("ie"))on(window,
"unload",function(){var cache=_TemplatedMixin._templateCache;for(var key in cache){var value=cache[key];if(typeof value=="object")domConstruct.destroy(value);delete cache[key]}});return _TemplatedMixin})},"dijit/tree/_dndSelector":function(){define("dijit/tree/_dndSelector",["dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/kernel","dojo/_base/lang","dojo/dom","dojo/mouse","dojo/on","dojo/touch","../a11yclick","./_dndContainer"],function(array,connect,declare,kernel,lang,dom,
mouse,on,touch,a11yclick,_dndContainer){return declare("dijit.tree._dndSelector",_dndContainer,{constructor:function(){this.selection={};this.anchor=null;this.events.push(on(this.tree.domNode,touch.press,lang.hitch(this,"onMouseDown")),on(this.tree.domNode,touch.release,lang.hitch(this,"onMouseUp")),on(this.tree.domNode,touch.move,lang.hitch(this,"onMouseMove")),on(this.tree.domNode,a11yclick.press,lang.hitch(this,"onClickPress")),on(this.tree.domNode,a11yclick.release,lang.hitch(this,"onClickRelease")))},
singular:false,getSelectedTreeNodes:function(){var nodes=[],sel=this.selection;for(var i in sel)nodes.push(sel[i]);return nodes},selectNone:function(){this.setSelection([]);return this},destroy:function(){this.inherited(arguments);this.selection=this.anchor=null},addTreeNode:function(node,isAnchor){this.setSelection(this.getSelectedTreeNodes().concat([node]));if(isAnchor)this.anchor=node;return node},removeTreeNode:function(node){var newSelection=array.filter(this.getSelectedTreeNodes(),function(selectedNode){return!dom.isDescendant(selectedNode.domNode,
node.domNode)});this.setSelection(newSelection);return node},isTreeNodeSelected:function(node){return node.id&&!!this.selection[node.id]},setSelection:function(newSelection){var oldSelection=this.getSelectedTreeNodes();array.forEach(this._setDifference(oldSelection,newSelection),lang.hitch(this,function(node){node.setSelected(false);if(this.anchor==node)delete this.anchor;delete this.selection[node.id]}));array.forEach(this._setDifference(newSelection,oldSelection),lang.hitch(this,function(node){node.setSelected(true);
this.selection[node.id]=node}));this._updateSelectionProperties()},_setDifference:function(xs,ys){array.forEach(ys,function(y){y.__exclude__=true});var ret=array.filter(xs,function(x){return!x.__exclude__});array.forEach(ys,function(y){delete y["__exclude__"]});return ret},_updateSelectionProperties:function(){var selected=this.getSelectedTreeNodes();var paths=[],nodes=[],selects=[];array.forEach(selected,function(node){var ary=node.getTreePath(),model=this.tree.model;nodes.push(node);paths.push(ary);
ary=array.map(ary,function(item){return model.getIdentity(item)},this);selects.push(ary.join("/"))},this);var items=array.map(nodes,function(node){return node.item});this.tree._set("paths",paths);this.tree._set("path",paths[0]||[]);this.tree._set("selectedNodes",nodes);this.tree._set("selectedNode",nodes[0]||null);this.tree._set("selectedItems",items);this.tree._set("selectedItem",items[0]||null)},onClickPress:function(e){if(this.current&&this.tree.isExpandoNode(e.target,this.current))return;if(mouse.isLeft(e))e.preventDefault();
var treeNode=e.type=="keydown"?this.tree.focusedChild:this.current;if(!treeNode)return;var copy=connect.isCopyKey(e),id=treeNode.id;if(!this.singular&&!e.shiftKey&&this.selection[id]){this._doDeselect=true;return}else this._doDeselect=false;this.userSelect(treeNode,copy,e.shiftKey)},onClickRelease:function(e){if(!this._doDeselect)return;this._doDeselect=false;this.userSelect(e.type=="keyup"?this.tree.focusedChild:this.current,connect.isCopyKey(e),e.shiftKey)},onMouseMove:function(){this._doDeselect=
false},onMouseDown:function(){},onMouseUp:function(){},_compareNodes:function(n1,n2){if(n1===n2)return 0;if("sourceIndex"in document.documentElement)return n1.sourceIndex-n2.sourceIndex;else if("compareDocumentPosition"in document.documentElement)return n1.compareDocumentPosition(n2)&2?1:-1;else if(document.createRange){var r1=doc.createRange();r1.setStartBefore(n1);var r2=doc.createRange();r2.setStartBefore(n2);return r1.compareBoundaryPoints(r1.END_TO_END,r2)}else throw Error("dijit.tree._compareNodes don't know how to compare two different nodes in this browser");
},userSelect:function(node,multi,range){if(this.singular)if(this.anchor==node&&multi)this.selectNone();else{this.setSelection([node]);this.anchor=node}else if(range&&this.anchor){var cr=this._compareNodes(this.anchor.rowNode,node.rowNode),begin,end,anchor=this.anchor;if(cr<0){begin=anchor;end=node}else{begin=node;end=anchor}var nodes=[];while(begin!=end){nodes.push(begin);begin=this.tree._getNext(begin)}nodes.push(end);this.setSelection(nodes)}else if(this.selection[node.id]&&multi)this.removeTreeNode(node);
else if(multi)this.addTreeNode(node,true);else{this.setSelection([node]);this.anchor=node}},getItem:function(key){var widget=this.selection[key];return{data:widget,type:["treeNode"]}},forInSelectedItems:function(f,o){o=o||kernel.global;for(var id in this.selection)f.call(o,this.getItem(id),id,this)}})})},"xide/widgets/ExpressionJavaScript":function(){define(["dojo/_base/declare"],function(declare){return declare("xide.widgets.ExpressionJavascript",null,{api:[{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date",
"title":"Date","_id":"4eea836aa4c86c4dba000001","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCreates JavaScript\x26nbsp;\x3ccode\x3eDate\x3c/code\x3e instances which let you work with dates and times.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3enew Date()\nnew Date(milliseconds)\nnew Date(dateString)\nnew Date(year, month, day [, hour, minute, second, millisecond ])\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;Note that JavaScript \x3ccode\x3eDate\x3c/code\x3e objects can only be instantiated by calling JavaScript \x3ccode\x3eDate\x3c/code\x3e as a constructor: calling it as a regular function (i.e. without the new operator) will return a string rather than a \x3ccode\x3eDate\x3c/code\x3e object; unlike other JavaScript object types, JavaScript \x3ccode\x3eDate\x3c/code\x3e objects have no literal syntax.\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3emilliseconds\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInteger value representing the number of milliseconds since 1 January 1970 00:00:00 UTC (Unix Epoch).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3edateString\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eString value representing a date. The string should be in a format recognized by the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/parse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse"\x3eparse\x3c/a\x3e method (\x3ca class \x3d "external" title \x3d "http://tools.ietf.org/html/rfc1123" rel \x3d "external" href \x3d "http://tools.ietf.org/html/rfc1123" target \x3d "_blank"\x3eIETF-compliant RFC 1123 timestamps\x3c/a\x3e).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eyear\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInteger value representing the year. For compatibility (in order to avoid the Y2K problem), you should always specify the year in full; use \x3ccode\x3e1998\x3c/code\x3e, rather than \x3ccode\x3e98\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3emonth\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInteger value representing the month, beginning with 0 for January to 11 for December.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eday\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInteger value representing the day of the month (1-31).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ehour\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInteger value representing the hour of the day (0-23).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eminute\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInteger value representing the minute segment (0-59) of a time reading.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esecond\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInteger value representing the second segment (0-59) of a time reading.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3emillisecond\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInteger value representing the millisecond segment (0-999) of a time reading.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eIf you supply no arguments, the constructor creates a JavaScript \x3ccode\x3eDate\x3c/code\x3e object for today\'s date and time according to local time. If you supply some arguments but not others, the missing arguments are set to 0. If you supply any arguments, you must supply at least the year, month, and day. You can omit the hours, minutes, seconds, and milliseconds.\x3c/p\x3e\n\x3cp\x3eThe JavaScript\x26nbsp;date is measured in milliseconds since midnight 01 January, 1970 UTC. A day holds 86,400,000 milliseconds. The JavaScript Date object range is -100,000,000 days to 100,000,000 days relative to 01 January, 1970 UTC.\x3c/p\x3e\n\x3cp\x3eThe JavaScript \x3ccode\x3eDate\x3c/code\x3e object provides uniform behavior across platforms.\x3c/p\x3e\n\x3cp\x3eThe JavaScript\x26nbsp;\x3ccode\x3eDate\x3c/code\x3e object supports a number of UTC (universal) methods, as well as local time methods. UTC, also known as Greenwich Mean Time (GMT), refers to the time as set by the World Time Standard. The local time is the time known to the computer where JavaScript is executed.\x3c/p\x3e\n\x3cp\x3eInvoking JavaScript\x26nbsp;\x3ccode\x3eDate\x3c/code\x3e in a non-constructor context (i.e., without the \x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/new_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/new"\x3enew\x3c/a\x3e operator) will return a string representing the current time.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eDate\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date#Properties_2"\x3eProperties of Date instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to a JavaScript\x26nbsp;\x3ccode\x3eDate\x3c/code\x3e object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Arity" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Arity"\x3e\x3ccode\x3earity\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Caller"\x3e\x3ccode\x3ecaller\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Length" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eDate\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date#Methods_2"\x3eMethods of Date instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/now" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/now"\x3enow\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the numeric value corresponding to the current time.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/parse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse"\x3eparse\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eParses a string representation of a JavaScript date, and returns the number of milliseconds since January 1, 1970, 00:00:00, local time.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/UTC" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/UTC"\x3eUTC\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAccepts the same parameters as the longest form of the constructor, and returns the number of milliseconds in a JavaScript\x26nbsp;\x3ccode\x3eDate\x3c/code\x3e object since January 1, 1970, 00:00:00, universal time.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Apply"\x3e\x3ccode\x3eapply\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Call"\x3e\x3ccode\x3ecall\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Date_instances"\x3e\x3c/span\x3e\x3cspan id \x3d "JavaScript.C2.A0Date_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eJavaScript\x26nbsp;\x3ccode\x3eDate\x3c/code\x3e instances\x3c/h2\x3e\n\x3cp\x3e  \x3ccode\x3eDate\x3c/code\x3e instances inherit from \x3cstrong\x3e\x3ccode\x3eDate.prototype\x3c/code\x3e\x3c/strong\x3e  . You can modify the constructor\'s prototype object to affect properties and methods inherited by JavaScript\x26nbsp;\x3ccode\x3eDate\x3c/code\x3e instances. \x3cp\x3eFor compatibility with millennium calculations (in other words, to take into account the year 2000), you should always specify the year in full; for example, use 1998, not 98. To assist you in specifying the complete year, JavaScript includes the methods \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear"\x3egetUTCFullYear\x3c/a\x3e\x3c/code\x3e, and \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear"\x3esetUTCFullYear\x3c/a\x3e\x3c/code\x3e.\x3c/p\x3e\n\t  \x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3\x3eProperties\x3c/h3\x3e  \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the function that created an instance. This is the  \x3ccode\x3eDate\x3c/code\x3e constructor by default. \x3c/dd\x3e \x3c/dl\x3e \x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e   \x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3\x3eMethods\x3c/h3\x3e  \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDate"\x3egetDate\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the day of the month (1-31) for the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getDay" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDay"\x3egetDay\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the day of the week (0-6) for the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the year (4 digits for 4-digit years) of the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getHours"\x3egetHours\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the hour (0-23) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMilliseconds"\x3egetMilliseconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the milliseconds (0-999) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMinutes"\x3egetMinutes\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the minutes (0-59) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMonth"\x3egetMonth\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the month (0-11) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getSeconds"\x3egetSeconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the seconds (0-59) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getTime" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTime"\x3egetTime\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the numeric value of the specified date as the number of milliseconds since January 1, 1970, 00:00:00 UTC (negative for prior times).\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset"\x3egetTimezoneOffset\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the time-zone offset in minutes for the current locale.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDate"\x3egetUTCDate\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the day (date) of the month (1-31) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDay" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDay"\x3egetUTCDay\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the day of the week (0-6) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear"\x3egetUTCFullYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the year (4 digits for 4-digit years) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCHours"\x3egetUTCHours\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the hours (0-23) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds"\x3egetUTCMilliseconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the milliseconds (0-999) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMinutes"\x3egetUTCMinutes\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the minutes (0-59) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMonth"\x3egetUTCMonth\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the month (0-11) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCSeconds"\x3egetUTCSeconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the seconds (0-59) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getYear"\x3egetYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n\x3c/dd\x3e \x3cdd\x3eReturns the year (usually 2-3 digits) in the specified date according to local time. Use \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e instead.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setDate"\x3esetDate\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the day of the month (1-31) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the full year (4 digits for 4-digit years) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setHours"\x3esetHours\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the hours (0-23) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMilliseconds"\x3esetMilliseconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the milliseconds (0-999) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMinutes"\x3esetMinutes\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the minutes (0-59) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMonth"\x3esetMonth\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the month (0-11) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setSeconds"\x3esetSeconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the seconds (0-59) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setTime" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setTime"\x3esetTime\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the \x3ccode\x3eDate\x3c/code\x3e object to the time represented by a number of milliseconds since January 1, 1970, 00:00:00 UTC, allowing for negative numbers for times prior.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCDate"\x3esetUTCDate\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the day of the month (1-31) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear"\x3esetUTCFullYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the full year (4 digits for 4-digit years) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCHours"\x3esetUTCHours\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the hour (0-23) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds"\x3esetUTCMilliseconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the milliseconds (0-999) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMinutes"\x3esetUTCMinutes\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the minutes (0-59) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMonth"\x3esetUTCMonth\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the month (0-11) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCSeconds"\x3esetUTCSeconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the seconds (0-59) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setYear"\x3esetYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n\x3c/dd\x3e \x3cdd\x3eSets the year (usually 2-3 digits) for a specified date according to local time. Use \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e instead.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toDateString"\x3etoDateString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the \x26quot;date\x26quot; portion of the Date as a human-readable string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toISOString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toISOString"\x3etoISOString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eConverts a date to a string following the ISO 8601 Extended Format.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Date/toJSON" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toJSON"\x3etoJSON\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns a string encapsulating the Date object in JSON\x26nbsp;format.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toGMTString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toGMTString"\x3etoGMTString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n\x3c/dd\x3e \x3cdd\x3eConverts a date to a string, using the Internet GMT conventions. Use \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toUTCString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toUTCString"\x3etoUTCString\x3c/a\x3e instead.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString"\x3etoLocaleDateString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the \x26quot;date\x26quot; portion of the Date as a string, using the current locale\'s conventions.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toLocaleFormat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleFormat"\x3etoLocaleFormat\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eConverts a date to a string, using a format string.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eConverts a date to a string, using the current locale\'s conventions. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toLocaleString"\x3eObject.toLocaleString\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString"\x3etoLocaleTimeString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the \x26quot;time\x26quot; portion of the Date as a string, using the current locale\'s conventions.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eReturns a string representing the source for an equivalent \x3ccode\x3eDate\x3c/code\x3e object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified \x3ccode\x3eDate\x3c/code\x3e object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toTimeString"\x3etoTimeString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the \x26quot;time\x26quot; portion of the Date as a human-readable string.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toUTCString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toUTCString"\x3etoUTCString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eConverts a date to a string, using the universal time convention.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/valueOf"\x3evalueOf\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of a \x3ccode\x3eDate\x3c/code\x3e object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.prototype.valueOf\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Several_ways_to_assign_dates"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Several ways to assign dates\x3c/h3\x3e\n\x3cp\x3eThe following examples show several ways to assign JavaScript\x26nbsp;dates:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etoday \x3d new Date();\nbirthday \x3d new Date(\x26quot;December 17, 1995 03:24:00\x26quot;);\nbirthday \x3d new Date(1995,11,17);\nbirthday \x3d new Date(1995,11,17,3,24,0);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example:_Calculating_elapsed_time"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Calculating elapsed time\x3c/h3\x3e\n\x3cp\x3eThe following examples show how to determine the elapsed time between two JavaScript\x26nbsp;dates:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// using static methods\nvar start \x3d Date.now();\n// the event you\'d like to time goes here:\ndoSomethingForALongTime();\nvar end \x3d Date.now();\nvar elapsed \x3d end - start; // time in milliseconds\x3c/pre\x3e\r\n        \n\x3cpre\x3e// if you have Date objects\nvar start \x3d new Date();\n// the event you\'d like to time goes here:\ndoSomethingForALongTime();\nvar end \x3d new Date();\nvar elapsed \x3d end.getTime() - start.getTime(); // time in milliseconds\n\x3c/pre\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// if you want to test a function and get back its return\nfunction printElapsedTime (fTest) {\n\tvar nStartTime \x3d Date.now(), vReturn \x3d fTest(), nEndTime \x3d Date.now();\n\talert(\x26quot;Elapsed time: \x26quot; + String(nEndTime - nStartTime) + \x26quot; milliseconds\x26quot;);\n\treturn vReturn;\n}\n\nyourFunctionReturn \x3d printElapsedTime(yourFunction);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_ISO_8601_formatted_dates"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: ISO 8601 formatted dates\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toISOString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toISOString"\x3e\x3ccode\x3eDate.toISOString()\x3c/code\x3e\x3c/a\x3e is now supported, so you can use that.\x3c/p\x3e\n\x3cp\x3eThe following example demonstrates how to manually format a JavaScript date, in an ISO 8601 format using UTC:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e/* use a function for the exact format desired... */\nfunction ISODateString(d){\n  function pad(n){return n\x26lt;10 ? \'0\'+n : n}\n  return d.getUTCFullYear()+\'-\'\n      + pad(d.getUTCMonth()+1)+\'-\'\n      + pad(d.getUTCDate())+\'T\'\n      + pad(d.getUTCHours())+\':\'\n      + pad(d.getUTCMinutes())+\':\'\n      + pad(d.getUTCSeconds())+\'Z\'\n}\n\nvar d \x3d new Date();\n0 \x26\x26 console.log(ISODateString(d)); // prints something like 2009-09-28T19:03:12Z\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Several_ways_to_assign_dates"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Several ways to assign dates\x3c/h3\x3e\n\x3cp\x3eThe following examples show several ways to assign JavaScript\x26nbsp;dates:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etoday \x3d new Date();\nbirthday \x3d new Date(\x26quot;December 17, 1995 03:24:00\x26quot;);\nbirthday \x3d new Date(1995,11,17);\nbirthday \x3d new Date(1995,11,17,3,24,0);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example:_Calculating_elapsed_time"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Calculating elapsed time\x3c/h3\x3e\n\x3cp\x3eThe following examples show how to determine the elapsed time between two JavaScript\x26nbsp;dates:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// using static methods\nvar start \x3d Date.now();\n// the event you\'d like to time goes here:\ndoSomethingForALongTime();\nvar end \x3d Date.now();\nvar elapsed \x3d end - start; // time in milliseconds\x3c/pre\x3e\r\n        \n\x3cpre\x3e// if you have Date objects\nvar start \x3d new Date();\n// the event you\'d like to time goes here:\ndoSomethingForALongTime();\nvar end \x3d new Date();\nvar elapsed \x3d end.getTime() - start.getTime(); // time in milliseconds\n\x3c/pre\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// if you want to test a function and get back its return\nfunction printElapsedTime (fTest) {\n\tvar nStartTime \x3d Date.now(), vReturn \x3d fTest(), nEndTime \x3d Date.now();\n\talert(\x26quot;Elapsed time: \x26quot; + String(nEndTime - nStartTime) + \x26quot; milliseconds\x26quot;);\n\treturn vReturn;\n}\n\nyourFunctionReturn \x3d printElapsedTime(yourFunction);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_ISO_8601_formatted_dates"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: ISO 8601 formatted dates\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toISOString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toISOString"\x3e\x3ccode\x3eDate.toISOString()\x3c/code\x3e\x3c/a\x3e is now supported, so you can use that.\x3c/p\x3e\n\x3cp\x3eThe following example demonstrates how to manually format a JavaScript date, in an ISO 8601 format using UTC:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e/* use a function for the exact format desired... */\nfunction ISODateString(d){\n  function pad(n){return n\x26lt;10 ? \'0\'+n : n}\n  return d.getUTCFullYear()+\'-\'\n      + pad(d.getUTCMonth()+1)+\'-\'\n      + pad(d.getUTCDate())+\'T\'\n      + pad(d.getUTCHours())+\':\'\n      + pad(d.getUTCMinutes())+\':\'\n      + pad(d.getUTCSeconds())+\'Z\'\n}\n\nvar d \x3d new Date();\n0 \x26\x26 console.log(ISODateString(d)); // prints something like 2009-09-28T19:03:12Z\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Browser_Compatibility"\x3e\x3c/span\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari (WebKit)\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eIE\x26nbsp;Phone\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Properties","Methods","JavaScript\x26nbsp;Date instances","Examples","Example: Several ways to assign dates","Example: Calculating elapsed time","Example: ISO 8601 formatted dates","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean","title":"Boolean","_id":"4eea836ba4c86c4dba000002","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3eBoolean\x3c/code\x3e object is an object wrapper for a boolean value.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3enew Boolean(value)\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evalue\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe initial value of the \x3ccode\x3eBoolean\x3c/code\x3e object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe value passed as the first parameter is converted to a boolean value, if necessary. If value is omitted or is 0, -0, null, false, \x3ccode\x3eNaN\x3c/code\x3e, undefined, or the empty string (\x26quot;\x26quot;), the object has an initial value of false. All other values, including any object or the string \x3ccode\x3e\x26quot;false\x26quot;\x3c/code\x3e, create an object with an initial value of true.\x3c/p\x3e\n\x3cp\x3eDo not confuse the primitive Boolean values true and false with the true and false values of the Boolean object.\x3c/p\x3e\n\x3cp\x3eAny object whose value is not \x3ccode\x3eundefined\x3c/code\x3e or \x3ccode\x3enull\x3c/code\x3e, including a Boolean object whose value is false, evaluates to true when passed to a conditional statement. For example, the condition in the following if statement evaluates to true:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ex \x3d new Boolean(false);\nif (x) {\n  // . . . this code is executed\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThis behavior does not apply to Boolean primitives. For example, the condition in the following if statement evaluates to \x3ccode\x3efalse\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ex \x3d false;\nif (x) {\n  // . . . this code is not executed\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eDo not use a \x3ccode\x3eBoolean\x3c/code\x3e object to convert a non-boolean value to a boolean value. Instead, use Boolean as a function to perform this task:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ex \x3d Boolean(expression);     // preferred\nx \x3d new Boolean(expression); // don\'t use\x3c/pre\x3e\r\n        \n\x3cp\x3eIf you specify any object, including a Boolean object whose value is false, as the initial value of a Boolean object, the new Boolean object has a value of true.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3emyFalse \x3d new Boolean(false);   // initial value of false\ng \x3d new Boolean(myFalse);       // initial value of true\nmyString \x3d new String(\x26quot;Hello\x26quot;); // string object\ns \x3d new Boolean(myString);      // initial value of true\x3c/pre\x3e\r\n        \n\x3cp\x3eDo not use a Boolean object in place of a Boolean primitive.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eBoolean\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean#Properties_2"\x3eProperties of Boolean instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/prototype"\x3eprototype\x3c/a\x3e: Defines a property that is shared by all Boolean objects.\x3c/p\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Arity" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Arity"\x3e\x3ccode\x3earity\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Caller"\x3e\x3ccode\x3ecaller\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Length" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eBoolean\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean#Methods_2"\x3eMethods of Boolean instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe global \x3ccode\x3eBoolean\x3c/code\x3e object contains no methods of its own, however, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Apply"\x3e\x3ccode\x3eapply\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Call"\x3e\x3ccode\x3ecall\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Boolean_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x3ccode\x3eBoolean\x3c/code\x3e instances\x3c/h2\x3e\n\x3cp\x3eAll \x3ccode\x3eBoolean\x3c/code\x3e instances inherit from \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/prototype"\x3e\x3ccode\x3eBoolean.prototype\x3c/code\x3e\x3c/a\x3e. As with all constructors, the prototype object dictates instances\' inherited properties and methods.\x3c/p\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the function that created an instance\'s prototype. This is the \x3cstrong\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/strong\x3e function by default.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string containing the source of the \x3cstrong\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/strong\x3e object; you can use this string to create an equivalent object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string of either \x26quot;true\x26quot; or \x26quot;false\x26quot; depending upon the value of the object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3emethod.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/valueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the \x3cstrong\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/strong\x3e object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3e\x3ccode\x3eObject.prototype.valueOf\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the function that created an instance\'s prototype. This is the \x3cstrong\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/strong\x3e function by default.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string containing the source of the \x3cstrong\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/strong\x3e object; you can use this string to create an equivalent object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string of either \x26quot;true\x26quot; or \x26quot;false\x26quot; depending upon the value of the object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3emethod.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/valueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the \x3cstrong\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/strong\x3e object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3e\x3ccode\x3eObject.prototype.valueOf\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Creating_Boolean_objects_with_an_initial_value_of_false"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCreating \x3ccode\x3eBoolean\x3c/code\x3e objects with an initial value of false\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ebNoParam \x3d new Boolean();\nbZero \x3d new Boolean(0);\nbNull \x3d new Boolean(null);\nbEmptyString \x3d new Boolean(\x26quot;\x26quot;);\nbfalse \x3d new Boolean(false);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Creating_Boolean_objects_with_an_initial_value_of_true"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCreating \x3ccode\x3eBoolean\x3c/code\x3e objects with an initial value of true\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ebtrue \x3d new Boolean(true);\nbtrueString \x3d new Boolean(\x26quot;true\x26quot;);\nbfalseString \x3d new Boolean(\x26quot;false\x26quot;);\nbSuLin \x3d new Boolean(\x26quot;Su Lin\x26quot;);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Creating_Boolean_objects_with_an_initial_value_of_false"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCreating \x3ccode\x3eBoolean\x3c/code\x3e objects with an initial value of false\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ebNoParam \x3d new Boolean();\nbZero \x3d new Boolean(0);\nbNull \x3d new Boolean(null);\nbEmptyString \x3d new Boolean(\x26quot;\x26quot;);\nbfalse \x3d new Boolean(false);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Creating_Boolean_objects_with_an_initial_value_of_true"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCreating \x3ccode\x3eBoolean\x3c/code\x3e objects with an initial value of true\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ebtrue \x3d new Boolean(true);\nbtrueString \x3d new Boolean(\x26quot;true\x26quot;);\nbfalseString \x3d new Boolean(\x26quot;false\x26quot;);\nbSuLin \x3d new Boolean(\x26quot;Su Lin\x26quot;);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Browser_Compatibility"\x3e\x3c/span\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari (WebKit)\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eIE\x26nbsp;Phone\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/prototype"\x3eBoolean.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Properties",
"Methods","Boolean instances","Properties","Methods","Examples","Creating Boolean objects with an initial value of false","Creating Boolean objects with an initial value of true","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects","title":"Global Objects","_id":"4eea836ca4c86c4dba000003","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Standard_global_objects_(by_category)"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eStandard global objects (by category)\x3c/h2\x3e \x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "General-purpose_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eGeneral-purpose constructors\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3eBoolean\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Iterator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Iterator" class \x3d "new "\x3eIterator\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number"\x3eNumber\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3eRegExp\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3eString\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Typed_array_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eTyped array constructors\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Float32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array"\x3eFloat32Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Float64Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array"\x3eFloat64Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Int16Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array"\x3eInt16Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Int32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array"\x3eInt32Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Int8Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array"\x3eInt8Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/int16Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array"\x3eUint16Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Uint32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array"\x3eUint32Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/int8Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array"\x3eUint8Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Uint8ClampedArray" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8ClampedArray" class \x3d "new "\x3eUint8ClampedArray\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Error_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eError constructors\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError"\x3eEvalError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/InternalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/InternalError" class \x3d "new "\x3eInternalError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError"\x3eReferenceError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/StopIteration" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/StopIteration" class \x3d "new "\x3eStopIteration\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError"\x3eSyntaxError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError"\x3eURIError\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Non-constructor_functions"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eNon-constructor functions\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/decodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURI"\x3edecodeURI\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/decodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURIComponent"\x3edecodeURIComponent\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI"\x3eencodeURI\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent"\x3eencodeURIComponent\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isFinite" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isFinite"\x3eisFinite\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/parseFloat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat"\x3eparseFloat\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/parseInt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt"\x3eparseInt\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/uneval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/uneval" class \x3d "new "\x3euneval\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Other"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eOther\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3eInfinity\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/JSON" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON"\x3eJSON\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math"\x3eMath\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN"\x3eNaN\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3eundefined\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "General-purpose_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eGeneral-purpose constructors\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3eBoolean\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Iterator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Iterator" class \x3d "new "\x3eIterator\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number"\x3eNumber\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3eRegExp\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3eString\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Typed_array_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eTyped array constructors\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Float32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array"\x3eFloat32Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Float64Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array"\x3eFloat64Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Int16Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array"\x3eInt16Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Int32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array"\x3eInt32Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Int8Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array"\x3eInt8Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/int16Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array"\x3eUint16Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Uint32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array"\x3eUint32Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/int8Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array"\x3eUint8Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Uint8ClampedArray" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8ClampedArray" class \x3d "new "\x3eUint8ClampedArray\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Error_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eError constructors\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError"\x3eEvalError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/InternalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/InternalError" class \x3d "new "\x3eInternalError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError"\x3eReferenceError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/StopIteration" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/StopIteration" class \x3d "new "\x3eStopIteration\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError"\x3eSyntaxError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError"\x3eURIError\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Non-constructor_functions"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eNon-constructor functions\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/decodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURI"\x3edecodeURI\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/decodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURIComponent"\x3edecodeURIComponent\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI"\x3eencodeURI\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent"\x3eencodeURIComponent\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isFinite" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isFinite"\x3eisFinite\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/parseFloat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat"\x3eparseFloat\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/parseInt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt"\x3eparseInt\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/uneval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/uneval" class \x3d "new "\x3euneval\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Other"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eOther\x3c/h3\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3eInfinity\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/JSON" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON"\x3eJSON\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math"\x3eMath\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN"\x3eNaN\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3eundefined\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Standard_global_objects_(alphabetically)"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eStandard global objects (alphabetically)\x3c/h2\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3eBoolean\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/decodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURI"\x3edecodeURI\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/decodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURIComponent"\x3edecodeURIComponent\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI"\x3eencodeURI\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent"\x3eencodeURIComponent\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError"\x3eEvalError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Float32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array"\x3eFloat32Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Float64Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array"\x3eFloat64Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3eInfinity\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Int16Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array"\x3eInt16Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Int32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array"\x3eInt32Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Int8Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array"\x3eInt8Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isFinite" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isFinite"\x3eisFinite\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Iterator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Iterator" class \x3d "new "\x3eIterator\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/JSON" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON"\x3eJSON\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math"\x3eMath\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN"\x3eNaN\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number"\x3eNumber\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/parseFloat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat"\x3eparseFloat\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/parseInt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt"\x3eparseInt\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError"\x3eReferenceError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3eRegExp\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/StopIteration" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/StopIteration" class \x3d "new "\x3eStopIteration\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3eString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError"\x3eSyntaxError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Uint16Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array"\x3eUint16Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Uint32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array"\x3eUint32Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Uint8Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array"\x3eUint8Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays/Uint8ClampedArray" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8ClampedArray" class \x3d "new "\x3eUint8ClampedArray\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3eundefined\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/uneval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/uneval" class \x3d "new "\x3euneval\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError"\x3eURIError\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3cp\x3eOther objects in the global scope are either \x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Working_with_Objects#Creating_New_Objects" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects#Creating_New_Objects"\x3ecreated by the user script\x3c/a\x3e or provided by the host application. The host objects available in \x3ca title \x3d "en/Gecko" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Gecko"\x3eGecko\x3c/a\x3e-based browsers are documented in the \x3ca title \x3d "en/Gecko_DOM_Reference" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Gecko_DOM_Reference"\x3eGecko DOM Reference\x3c/a\x3e.\x3c/p\x3e \x3cp\x3eFor more information about the distinction between the \x3ca title \x3d "en/DOM" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/DOM"\x3eDOM\x3c/a\x3e and core \x3ca title \x3d "en/JavaScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript"\x3eJavaScript\x3c/a\x3e, see \x3ca title \x3d "en/The_DOM_and_JavaScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_technologies_overview"\x3eThe DOM and JavaScript\x3c/a\x3e article.\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Standard global objects (by category)","General-purpose constructors","Typed array constructors","Error constructors","Non-constructor functions","Other","Standard global objects (alphabetically)"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array","title":"Array","_id":"4eea836da4c86c4dba000004","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe JavaScript\x26nbsp;\x3ccode\x3eArray\x3c/code\x3e global object is a constructor for arrays, which are high-level, list-like objects.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cdiv style \x3d "width: auto;"\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e[element0, element1, ..., elementN]\nnew Array(element0, element1, ..., elementN)\nnew Array(arrayLength)\x3c/pre\x3e\r\n        \n\x3c/div\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3cvar\x3eelement0\x3c/var\x3e, \x3cvar\x3eelement1\x3c/var\x3e, ..., \x3cvar\x3eelementN\x3c/var\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA JavaScript array is initialized with the given elements, except in the case where a single argument is passed to the\x26nbsp;\x3ccode\x3eArray\x3c/code\x3e constructor and that argument is a number. (See below.) Note that this special case only applies to JavaScript arrays created with the\x26nbsp;\x3ccode\x3eArray\x3c/code\x3e constructor, not with array literals created with the bracket syntax.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3cvar\x3earrayLength\x3c/var\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eIf the first argument passed to the\x26nbsp;\x3ccode\x3eArray\x3c/code\x3e constructor is an integer between 0 and 2\x3csup\x3e32\x3c/sup\x3e-1 (inclusive), a new JavaScript array is created with that number of elements. If the argument is any other number, a \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e\x3c/code\x3e exception is thrown.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eArrays are list-like objects that come with a several built-in methods to perform traversal and mutation operations. Neither the size of a JavaScript array nor the types of its elements are fixed.\x26nbsp; Since an array\'s size can grow or shrink at any time, JavaScript arrays are not guaranteed to be dense.\x26nbsp; In general, these are convenient characteristics, but if these are desirable things to have for your use case, you might consider using WebGL typed arrays.\x3c/p\x3e\n\x3cp\x3eNote that \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful/" title \x3d "http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful/" target \x3d "_blank"\x3eyou shouldn\'t use an array as an associative array\x3c/a\x3e. You can use plain \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eobjects\x3c/a\x3e instead, although doing so comes with its own caveats. See the post \x3ca class \x3d "external" title \x3d "http://monogatari.doukut.su/2010/12/lightweight-javascript-dictionaries.html" rel \x3d "external" href \x3d "http://monogatari.doukut.su/2010/12/lightweight-javascript-dictionaries.html" target \x3d "_blank"\x3eLightweight JavaScript dictionaries with arbitrary keys\x3c/a\x3e as an example.\x3c/p\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Accessing_array_elements"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAccessing array elements\x3c/h3\x3e\n\x3cp\x3eJavaScript arrays are zero-indexed; the first element of an array is actually at index \x3ccode\x3e0\x3c/code\x3e, and the last element is at the index one less than the value of the array\'s \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e property.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar arr \x3d [\x26quot;this is the first element\x26quot;, \x26quot;this is the second element\x26quot;];\n0 \x26\x26 console.log(arr[0]);              // prints \x26quot;this is the first element\x26quot;\n0 \x26\x26 console.log(arr[1]);              // prints \x26quot;this is the second element\x26quot;\n0 \x26\x26 console.log(arr[arr.length - 1]); // prints \x26quot;this is the second element\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eArray elements are just object properties, in the way that \x3ccode\x3e\x3ca title \x3d "en/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e is a property. However, note that trying to access the first element of an array as follows will throw a syntax error:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e0 \x26\x26 console.log(arr.0);\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that there is nothing unique about JavaScript arrays and their properties that causes this. JavaScript properties that begin with a digit cannot be referenced with the dot notation.\x26nbsp; They must be accessed using bracket notation.\x26nbsp; For example, if you had an object with a property \x26quot;3d\x26quot;, it would not be possible to access it using dot notation, either. It, too, would have to be referenced using bracket notation.\x26nbsp; This similarity is exhibited in the following two code samples:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar years \x3d [1950, 1960, 1970, 1980, 1990, 2000, 2010];\ntry {\n  0 \x26\x26 console.log(years.0);\n}\ncatch (ex) {\n  0 \x26\x26 console.log(\x26quot;Using bracket notation\x26quot;);\n  0 \x26\x26 console.log(years[0]);\n}\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n  renderer.3d.setTexture(model, \x26quot;character.png\x26quot;);\n}\ncatch (ex) {\n  0 \x26\x26 console.log(\x26quot;Using bracket notation\x26quot;);\n  renderer[\x26quot;3d\x26quot;].setTexture(model, \x26quot;character.png\x26quot;);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that in the \x3ccode\x3e3d\x3c/code\x3e example, \x26quot;\x3ccode\x3e3d\x3c/code\x3e\x26quot; had to be quoted.\x26nbsp; It\'s possible to quote the JavaScript array indexes as well (e.g., \x3ccode\x3eyears[\x26quot;2\x26quot;]\x3c/code\x3e instead of \x3ccode\x3eyears[2]\x3c/code\x3e), though it\'s not necessary.\x26nbsp; The 2 in \x3ccode\x3eyears[2]\x3c/code\x3e eventually gets coerced into a string by the JavaScript engine anyway, through an implicit \x3ccode\x3etoString\x3c/code\x3e conversion.\x26nbsp; It is for this reason that \x26quot;2\x26quot; and \x26quot;02\x26quot; would refer to two different slots on the \x3ccode\x3eyears\x3c/code\x3e object and the following example logs \x3ccode\x3etrue\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e0 \x26\x26 console.log(years[\x26quot;2\x26quot;] !\x3d years[\x26quot;02\x26quot;]);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Relationship_between_length_and_numerical_properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eRelationship between \x3ccode\x3elength\x3c/code\x3e and numerical properties\x3c/h3\x3e\n\x3cp\x3eA JavaScript array\'s \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3elength\x3c/a\x3e\x3c/code\x3e property and numerical properties are connected.\x26nbsp; Several of the built-in array methods (e.g., \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice"\x3eslice\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e\x3c/code\x3e, etc.) take into account the value of an array\'s \x3ccode\x3elength\x3c/code\x3e property when they\'re called.\x26nbsp; Other methods (e.g., \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/splice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice"\x3esplice\x3c/a\x3e\x3c/code\x3e, etc.) also result in updates to an array\'s \x3ccode\x3elength\x3c/code\x3e property.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar fruits \x3d [];\nfruits.push(\x26quot;banana\x26quot;, \x26quot;apple\x26quot;, \x26quot;peach\x26quot;);\n\n0 \x26\x26 console.log(fruits.length); // logs 3\x3c/pre\x3e\r\n        \n\x3cp\x3eWhen setting a property on a JavaScript array when the property is a valid array index and that index is outside the current bounds of the array, the array will grow to a size large enough to accommodate an element at that index, and the engine will update the array\'s \x3ccode\x3elength\x3c/code\x3e property accordingly:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efruits[3] \x3d \x26quot;mango\x26quot;;\n0 \x26\x26 console.log(fruits[3]);\n0 \x26\x26 console.log(fruits.length); // logs 4\x3c/pre\x3e\r\n        \n\x3cp\x3eSetting the \x3ccode\x3elength\x3c/code\x3e property directly also results in special behavior.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efruits.length \x3d 10;\n0 \x26\x26 console.log(fruits);        // The array gets padded with undefined\n0 \x26\x26 console.log(fruits.length); // 10\x3c/pre\x3e\r\n        \n\x3cp\x3eThis is explained further on the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e page.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Creating_an_array_using_the_result_of_a_match"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCreating an array using the result of a match\x3c/h3\x3e\n\x3cp\x3eThe result of a match between a regular expression and a string can create a JavaScript array. This array has properties and elements that provide information about the match. An array is the return value of RegExp.exec, String.match, and String.replace. To help explain these properties and elements, look at the following example and then refer to the table below:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Match one d followed by one or more b\'s followed by one d\n// Remember matched b\'s and the following d\n// Ignore case\n\nvar myRe \x3d /d(b+)(d)/i;\nvar myArray \x3d myRe.exec(\x26quot;cdbBdbsbz\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eThe properties and elements returned from this match are as follows:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eProperty/Element\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3ctd class \x3d "header"\x3eExample\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3einput\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eA read-only property that reflects the original string against which the regular expression was matched.\x3c/td\x3e \x3ctd\x3ecdbBdbsbz\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eindex\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eA read-only property that is the zero-based index of the match in the string.\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[0]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eA read-only element that specifies the last matched characters.\x3c/td\x3e \x3ctd\x3edbBd\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[1], ...[n]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eRead-only elements that specify the parenthesized substring matches, if included in the regular expression. The number of possible parenthesized substrings is unlimited.\x3c/td\x3e \x3ctd\x3e[1]: bB\x3cbr/\x3e [2]: d\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Accessing_array_elements"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAccessing array elements\x3c/h3\x3e\n\x3cp\x3eJavaScript arrays are zero-indexed; the first element of an array is actually at index \x3ccode\x3e0\x3c/code\x3e, and the last element is at the index one less than the value of the array\'s \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e property.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar arr \x3d [\x26quot;this is the first element\x26quot;, \x26quot;this is the second element\x26quot;];\n0 \x26\x26 console.log(arr[0]);              // prints \x26quot;this is the first element\x26quot;\n0 \x26\x26 console.log(arr[1]);              // prints \x26quot;this is the second element\x26quot;\n0 \x26\x26 console.log(arr[arr.length - 1]); // prints \x26quot;this is the second element\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eArray elements are just object properties, in the way that \x3ccode\x3e\x3ca title \x3d "en/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e is a property. However, note that trying to access the first element of an array as follows will throw a syntax error:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e0 \x26\x26 console.log(arr.0);\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that there is nothing unique about JavaScript arrays and their properties that causes this. JavaScript properties that begin with a digit cannot be referenced with the dot notation.\x26nbsp; They must be accessed using bracket notation.\x26nbsp; For example, if you had an object with a property \x26quot;3d\x26quot;, it would not be possible to access it using dot notation, either. It, too, would have to be referenced using bracket notation.\x26nbsp; This similarity is exhibited in the following two code samples:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar years \x3d [1950, 1960, 1970, 1980, 1990, 2000, 2010];\ntry {\n  0 \x26\x26 console.log(years.0);\n}\ncatch (ex) {\n  0 \x26\x26 console.log(\x26quot;Using bracket notation\x26quot;);\n  0 \x26\x26 console.log(years[0]);\n}\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n  renderer.3d.setTexture(model, \x26quot;character.png\x26quot;);\n}\ncatch (ex) {\n  0 \x26\x26 console.log(\x26quot;Using bracket notation\x26quot;);\n  renderer[\x26quot;3d\x26quot;].setTexture(model, \x26quot;character.png\x26quot;);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that in the \x3ccode\x3e3d\x3c/code\x3e example, \x26quot;\x3ccode\x3e3d\x3c/code\x3e\x26quot; had to be quoted.\x26nbsp; It\'s possible to quote the JavaScript array indexes as well (e.g., \x3ccode\x3eyears[\x26quot;2\x26quot;]\x3c/code\x3e instead of \x3ccode\x3eyears[2]\x3c/code\x3e), though it\'s not necessary.\x26nbsp; The 2 in \x3ccode\x3eyears[2]\x3c/code\x3e eventually gets coerced into a string by the JavaScript engine anyway, through an implicit \x3ccode\x3etoString\x3c/code\x3e conversion.\x26nbsp; It is for this reason that \x26quot;2\x26quot; and \x26quot;02\x26quot; would refer to two different slots on the \x3ccode\x3eyears\x3c/code\x3e object and the following example logs \x3ccode\x3etrue\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e0 \x26\x26 console.log(years[\x26quot;2\x26quot;] !\x3d years[\x26quot;02\x26quot;]);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Relationship_between_length_and_numerical_properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eRelationship between \x3ccode\x3elength\x3c/code\x3e and numerical properties\x3c/h3\x3e\n\x3cp\x3eA JavaScript array\'s \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3elength\x3c/a\x3e\x3c/code\x3e property and numerical properties are connected.\x26nbsp; Several of the built-in array methods (e.g., \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice"\x3eslice\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e\x3c/code\x3e, etc.) take into account the value of an array\'s \x3ccode\x3elength\x3c/code\x3e property when they\'re called.\x26nbsp; Other methods (e.g., \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/splice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice"\x3esplice\x3c/a\x3e\x3c/code\x3e, etc.) also result in updates to an array\'s \x3ccode\x3elength\x3c/code\x3e property.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar fruits \x3d [];\nfruits.push(\x26quot;banana\x26quot;, \x26quot;apple\x26quot;, \x26quot;peach\x26quot;);\n\n0 \x26\x26 console.log(fruits.length); // logs 3\x3c/pre\x3e\r\n        \n\x3cp\x3eWhen setting a property on a JavaScript array when the property is a valid array index and that index is outside the current bounds of the array, the array will grow to a size large enough to accommodate an element at that index, and the engine will update the array\'s \x3ccode\x3elength\x3c/code\x3e property accordingly:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efruits[3] \x3d \x26quot;mango\x26quot;;\n0 \x26\x26 console.log(fruits[3]);\n0 \x26\x26 console.log(fruits.length); // logs 4\x3c/pre\x3e\r\n        \n\x3cp\x3eSetting the \x3ccode\x3elength\x3c/code\x3e property directly also results in special behavior.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efruits.length \x3d 10;\n0 \x26\x26 console.log(fruits);        // The array gets padded with undefined\n0 \x26\x26 console.log(fruits.length); // 10\x3c/pre\x3e\r\n        \n\x3cp\x3eThis is explained further on the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e page.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Creating_an_array_using_the_result_of_a_match"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCreating an array using the result of a match\x3c/h3\x3e\n\x3cp\x3eThe result of a match between a regular expression and a string can create a JavaScript array. This array has properties and elements that provide information about the match. An array is the return value of RegExp.exec, String.match, and String.replace. To help explain these properties and elements, look at the following example and then refer to the table below:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Match one d followed by one or more b\'s followed by one d\n// Remember matched b\'s and the following d\n// Ignore case\n\nvar myRe \x3d /d(b+)(d)/i;\nvar myArray \x3d myRe.exec(\x26quot;cdbBdbsbz\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eThe properties and elements returned from this match are as follows:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eProperty/Element\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3ctd class \x3d "header"\x3eExample\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3einput\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eA read-only property that reflects the original string against which the regular expression was matched.\x3c/td\x3e \x3ctd\x3ecdbBdbsbz\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eindex\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eA read-only property that is the zero-based index of the match in the string.\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[0]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eA read-only element that specifies the last matched characters.\x3c/td\x3e \x3ctd\x3edbBd\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[1], ...[n]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eRead-only elements that specify the parenthesized substring matches, if included in the regular expression. The number of possible parenthesized substrings is unlimited.\x3c/td\x3e \x3ctd\x3e[1]: bB\x3cbr/\x3e [2]: d\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eArray\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array#Properties_2"\x3eProperties of Array instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdd\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to all objects.\x3c/dd\x3e \x3c/dl\x3e \x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Arity" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Arity"\x3e\x3ccode\x3earity\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Caller"\x3e\x3ccode\x3ecaller\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Length" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eArray\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array#Methods_2"\x3eMethods of Array instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Array/isArray" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray"\x3eisArray\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e \x3cp\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Return true if a variable is an array, if not false.\x3c/p\x3e \x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Array_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x3ccode\x3eArray\x3c/code\x3e instances\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eArray\x3c/code\x3e\x26nbsp;instances inherit from\x3cspan style \x3d "font-family: monospace;"\x3e \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/prototype"\x3eArray.prototype\x3c/a\x3e\x3c/span\x3e. As with all constructors, you can change the constructor\'s prototype object to make changes to all JavaScript\x26nbsp;\x3ccode\x3eArray\x3c/code\x3e instances.\x3c/p\x3e\n\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3cspan\x3eProperties\x3c/span\x3e\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3elength\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReflects the number of elements in an array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3cspan\x3eMethods\x3c/span\x3e\x3c/h3\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Mutator_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3cspan\x3eMutator methods\x3c/span\x3e\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3eThese methods modify the array:\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the last element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the end of an array and returns the new length of the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReverses the order of the elements of an array -- the first becomes the last, and the last becomes the first.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the first element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/sort" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort"\x3esort\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSorts the elements of an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/splice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice"\x3esplice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds and/or removes elements from an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the front of an array and returns the new length of the array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Accessor_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3cspan\x3eAccessor methods\x3c/span\x3e\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3e\x3c/p\x3e\n\x3cp\x3eThese methods do not modify the array and return some representation of the array.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat"\x3econcat\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a new array comprised of this array joined with other array(s) and/or value(s).\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eJoins all elements of an array into a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice"\x3eslice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExtracts a section of an array and returns a new array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dt\x3e \x3cdd\x3eReturns an array literal representing the specified array; you can use this value to create a new array. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the array and its elements. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the first (least) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf"\x3elastIndexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "Iteration_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3cspan\x3eIteration methods\x3c/span\x3e\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3eSeveral methods take as arguments functions to be called back while processing the array. When these methods are called, the \x3ccode\x3elength\x3c/code\x3e of the array is sampled, and any element added beyond this length from within the callback is not visited. Other changes to the array (setting the value of or deleting an element) may affect the results of the operation if the method visits the changed element afterwards. While the specific behavior of these methods in such cases is well-defined, you should not rely upon it so as not to confuse others who might read your code. If you must mutate the array, copy into a new array instead.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/filter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter"\x3efilter\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with all of the elements of this array for which the provided filtering function returns true.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/forEach" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"\x3eforEach\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCalls a function for each element in the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/every" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every"\x3eevery\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if every element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/map" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map"\x3emap\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with the results of calling a provided function on every element in this array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/some" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some"\x3esome\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if at least one element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduce" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/Reduce"\x3ereduce\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from left-to-right) as to reduce it to a single value.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduceRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/ReduceRight"\x3ereduceRight\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3cspan\x3eProperties\x3c/span\x3e\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3elength\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReflects the number of elements in an array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3cspan\x3eMethods\x3c/span\x3e\x3c/h3\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Mutator_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3cspan\x3eMutator methods\x3c/span\x3e\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3eThese methods modify the array:\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the last element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the end of an array and returns the new length of the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReverses the order of the elements of an array -- the first becomes the last, and the last becomes the first.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the first element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/sort" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort"\x3esort\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSorts the elements of an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/splice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice"\x3esplice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds and/or removes elements from an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the front of an array and returns the new length of the array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Accessor_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3cspan\x3eAccessor methods\x3c/span\x3e\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3e\x3c/p\x3e\n\x3cp\x3eThese methods do not modify the array and return some representation of the array.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat"\x3econcat\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a new array comprised of this array joined with other array(s) and/or value(s).\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eJoins all elements of an array into a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice"\x3eslice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExtracts a section of an array and returns a new array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dt\x3e \x3cdd\x3eReturns an array literal representing the specified array; you can use this value to create a new array. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the array and its elements. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the first (least) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf"\x3elastIndexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "Iteration_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3cspan\x3eIteration methods\x3c/span\x3e\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3eSeveral methods take as arguments functions to be called back while processing the array. When these methods are called, the \x3ccode\x3elength\x3c/code\x3e of the array is sampled, and any element added beyond this length from within the callback is not visited. Other changes to the array (setting the value of or deleting an element) may affect the results of the operation if the method visits the changed element afterwards. While the specific behavior of these methods in such cases is well-defined, you should not rely upon it so as not to confuse others who might read your code. If you must mutate the array, copy into a new array instead.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/filter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter"\x3efilter\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with all of the elements of this array for which the provided filtering function returns true.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/forEach" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"\x3eforEach\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCalls a function for each element in the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/every" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every"\x3eevery\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if every element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/map" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map"\x3emap\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with the results of calling a provided function on every element in this array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/some" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some"\x3esome\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if at least one element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduce" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/Reduce"\x3ereduce\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from left-to-right) as to reduce it to a single value.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduceRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/ReduceRight"\x3ereduceRight\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Mutator_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3cspan\x3eMutator methods\x3c/span\x3e\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3eThese methods modify the array:\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the last element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the end of an array and returns the new length of the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReverses the order of the elements of an array -- the first becomes the last, and the last becomes the first.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the first element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/sort" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort"\x3esort\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSorts the elements of an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/splice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice"\x3esplice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds and/or removes elements from an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the front of an array and returns the new length of the array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Accessor_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3cspan\x3eAccessor methods\x3c/span\x3e\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3e\x3c/p\x3e\n\x3cp\x3eThese methods do not modify the array and return some representation of the array.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat"\x3econcat\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a new array comprised of this array joined with other array(s) and/or value(s).\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eJoins all elements of an array into a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice"\x3eslice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExtracts a section of an array and returns a new array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dt\x3e \x3cdd\x3eReturns an array literal representing the specified array; you can use this value to create a new array. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the array and its elements. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the first (least) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf"\x3elastIndexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "Iteration_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3cspan\x3eIteration methods\x3c/span\x3e\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3eSeveral methods take as arguments functions to be called back while processing the array. When these methods are called, the \x3ccode\x3elength\x3c/code\x3e of the array is sampled, and any element added beyond this length from within the callback is not visited. Other changes to the array (setting the value of or deleting an element) may affect the results of the operation if the method visits the changed element afterwards. While the specific behavior of these methods in such cases is well-defined, you should not rely upon it so as not to confuse others who might read your code. If you must mutate the array, copy into a new array instead.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/filter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter"\x3efilter\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with all of the elements of this array for which the provided filtering function returns true.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/forEach" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"\x3eforEach\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCalls a function for each element in the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/every" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every"\x3eevery\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if every element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/map" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map"\x3emap\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with the results of calling a provided function on every element in this array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/some" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some"\x3esome\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if at least one element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduce" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/Reduce"\x3ereduce\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from left-to-right) as to reduce it to a single value.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduceRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/ReduceRight"\x3ereduceRight\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_15\"\x3e\x3cspan id \x3d \"Examples\"\x3e\x3c/span\x3e\x3ch2 class \x3d \"editable\"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d \"section_16\"\x3e\x3cspan id \x3d \"Example:_Creating_an_Array\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eExample: Creating an Array\x3c/h3\x3e\n\x3cp\x3eThe following example creates an array, \x3ccode\x3emsgArray\x3c/code\x3e, with a length of 0, then assigns values to \x3ccode\x3emsgArray[0]\x3c/code\x3e and \x3ccode\x3emsgArray[99]\x3c/code\x3e, changing the length of the array to 100.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar msgArray \x3d new Array();\nmsgArray[0] \x3d \x26quot;Hello\x26quot;;\nmsgArray[99] \x3d \x26quot;world\x26quot;;\n\nif (msgArray.length \x3d\x3d 100)\n   print(\x26quot;The length is 100.\x26quot;);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d \"section_17\"\x3e\x3cspan id \x3d \"Example:_Creating_a_Two-dimensional_Array\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eExample: Creating a Two-dimensional Array\x3c/h3\x3e\n\x3cp\x3eThe following creates chess board as a two dimensional array of strings. The first move is made by copying the 'P' in 6,4 to 4,4. The position 4,4 is left blank.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar board \x3d \n[ ['R','N','B','Q','K','B','N','R'],\n  ['P','P','P','P','P','P','P','P'],\n  [' ',' ',' ',' ',' ',' ',' ',' '],\n  [' ',' ',' ',' ',' ',' ',' ',' '],\n  [' ',' ',' ',' ',' ',' ',' ',' '],\n  [' ',' ',' ',' ',' ',' ',' ',' '],\n  ['p','p','p','p','p','p','p','p'],\n  ['r','n','b','q','k','b','n','r']];\nprint(board.join('\\n') + '\\n\\n');\n\n// Move King's Pawn forward 2\nboard[4][4] \x3d board[6][4];\nboard[6][4] \x3d ' ';\nprint(board.join('\\n'));\x3c/pre\x3e\r\n        \n\x3cp\x3eHere is the output:\x3c/p\x3e\n\x3cpre class \x3d \"eval\"\x3eR,N,B,Q,K,B,N,R\nP,P,P,P,P,P,P,P\n , , , , , , , \n , , , , , , , \n , , , , , , , \n , , , , , , , \np,p,p,p,p,p,p,p\nr,n,b,q,k,b,n,r\n\nR,N,B,Q,K,B,N,R\nP,P,P,P,P,P,P,P\n , , , , , , , \n , , , , , , , \n , , , ,p, , , \n , , , , , , , \np,p,p,p, ,p,p,p\nr,n,b,q,k,b,n,r\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e",
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Example:_Creating_an_Array"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Creating an Array\x3c/h3\x3e\n\x3cp\x3eThe following example creates an array, \x3ccode\x3emsgArray\x3c/code\x3e, with a length of 0, then assigns values to \x3ccode\x3emsgArray[0]\x3c/code\x3e and \x3ccode\x3emsgArray[99]\x3c/code\x3e, changing the length of the array to 100.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar msgArray \x3d new Array();\nmsgArray[0] \x3d \x26quot;Hello\x26quot;;\nmsgArray[99] \x3d \x26quot;world\x26quot;;\n\nif (msgArray.length \x3d\x3d 100)\n   print(\x26quot;The length is 100.\x26quot;);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_17\"\x3e\x3cspan id \x3d \"Example:_Creating_a_Two-dimensional_Array\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eExample: Creating a Two-dimensional Array\x3c/h3\x3e\n\x3cp\x3eThe following creates chess board as a two dimensional array of strings. The first move is made by copying the 'P' in 6,4 to 4,4. The position 4,4 is left blank.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar board \x3d \n[ ['R','N','B','Q','K','B','N','R'],\n  ['P','P','P','P','P','P','P','P'],\n  [' ',' ',' ',' ',' ',' ',' ',' '],\n  [' ',' ',' ',' ',' ',' ',' ',' '],\n  [' ',' ',' ',' ',' ',' ',' ',' '],\n  [' ',' ',' ',' ',' ',' ',' ',' '],\n  ['p','p','p','p','p','p','p','p'],\n  ['r','n','b','q','k','b','n','r']];\nprint(board.join('\\n') + '\\n\\n');\n\n// Move King's Pawn forward 2\nboard[4][4] \x3d board[6][4];\nboard[6][4] \x3d ' ';\nprint(board.join('\\n'));\x3c/pre\x3e\r\n        \n\x3cp\x3eHere is the output:\x3c/p\x3e\n\x3cpre class \x3d \"eval\"\x3eR,N,B,Q,K,B,N,R\nP,P,P,P,P,P,P,P\n , , , , , , , \n , , , , , , , \n , , , , , , , \n , , , , , , , \np,p,p,p,p,p,p,p\nr,n,b,q,k,b,n,r\n\nR,N,B,Q,K,B,N,R\nP,P,P,P,P,P,P,P\n , , , , , , , \n , , , , , , , \n , , , ,p, , , \n , , , , , , , \np,p,p,p, ,p,p,p\nr,n,b,q,k,b,n,r\n\x3c/pre\x3e\n\x3c/div\x3e",
'\x3cdiv id \x3d "section_18"\x3e\x3cspan id \x3d "Browser_Compatibility"\x3e\x3c/span\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari (WebKit)\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eIE\x26nbsp;Phone\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_19"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee Also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Working_with_Objects#Indexing_Object_Properties" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects#Indexing_Object_Properties"\x3eIndexing Object Properties in Core JavaScript 1.5 Guide:Working with Object\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/New_in_JavaScript_1.7#Array_comprehensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.7#Array_comprehensions"\x3eNew in JavaScript 1.7: Array comprehensions\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/New_in_JavaScript_1.6#Array_extras" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6#Array_extras"\x3eNew in JavaScript 1.6: Array extras\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript_typed_arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eDraft: Typed Arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","Accessing array elements","Relationship between length and numerical properties","Creating an array using the result of a match","Properties","Methods","Array instances","Properties","Methods","Mutator methods","Accessor methods","Iteration methods","Examples","Example: Creating an Array","Example: Creating a Two-dimensional Array","Browser compatibility","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function",
"title":"Function","_id":"4eea836da4c86c4dba000005","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eEvery function in JavaScript is actually a \x3ccode\x3eFunction\x3c/code\x3e object.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3enew Function ([\x3cem\x3earg1\x3c/em\x3e[, \x3cem\x3earg2\x3c/em\x3e[, ... \x3cem\x3eargN\x3c/em\x3e]],] \x3cem\x3efunctionBody\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earg1, arg2, ... arg\x3cem\x3eN\x3c/em\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eNames to be used by the function as formal argument names. Each must be a string that corresponds to a valid JavaScript identifier or a list of such strings separated with a comma; for example \x26quot;\x3ccode\x3ex\x3c/code\x3e\x26quot;, \x26quot;\x3ccode\x3etheValue\x3c/code\x3e\x26quot;, or \x26quot;\x3ccode\x3ea,b\x3c/code\x3e\x26quot;.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efunctionBody\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA string containing the JavaScript statements comprising the function definition.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eFunction\x3c/code\x3e objects created with the \x3ccode\x3eFunction\x3c/code\x3e constructor are parsed when the function is created. This is less efficient than declaring a function and calling it within your code, because functions declared with the function statement are parsed with the rest of the code.\x3c/p\x3e\n\x3cp\x3eAll arguments passed to the function are treated as the names of the identifiers of the parameters in the function to be created, in the order in which they are passed.\x3c/p\x3e\n\x3cp\x3eInvoking the \x3ccode\x3eFunction\x3c/code\x3e constructor as a function (without using the \x3ccode\x3enew\x3c/code\x3e operator) has the same effect as invoking it as a constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eFunction\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function#Properties_2"\x3eProperties of Function instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the extension of all \x3ccode\x3eFunction\x3c/code\x3e objects.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3cstrong\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/strong\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Arity" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Arity"\x3e\x3ccode\x3earity\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Caller"\x3e\x3ccode\x3ecaller\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Length" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eFunction\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function#Methods_2"\x3eMethods of Function instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eFunction\x3c/code\x3e object does not provide any methods of its own, it does inherit methods through the prototype chain.\x3c/p\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3cstrong\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/strong\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Apply"\x3e\x3ccode\x3eapply\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Call"\x3e\x3ccode\x3ecall\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Function_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x3ccode\x3eFunction\x3c/code\x3e instances\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eFunction\x3c/code\x3e instances inherit from \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3e\x3ccode\x3eFunction.prototype\x3c/code\x3e\x3c/a\x3e. As with all constructors, you can change the constructor\'s prototype object to make changes to all \x3ccode\x3eFunction\x3c/code\x3e instances.\x3c/p\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arguments"\x3earguments\x3c/a\x3e\n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n\x3c/dt\x3e \x3cdd\x3eAn array corresponding to the arguments passed to a function. This is deprecated as property of \x3ccode\x3eFunction\x3c/code\x3e, use the \x3ca title \x3d "en/JavaScript/Reference/Functions/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments"\x3earguments\x3c/a\x3e object available within the function instead.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/arity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arity"\x3earity\x3c/a\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since JavaScript 1.8.6\x3c/span\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the number of arguments expected by the function. Use the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length"\x3elength\x3c/a\x3e property instead.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/caller" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/caller"\x3ecaller\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eSpecifies the function that invoked the currently executing function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length"\x3elength\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the number of arguments expected by the function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/name"\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eApplies the method of another object in the context of a different object (the calling object); arguments can be passed as an Array object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/bind" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind"\x3ebind\x3c/a\x3e\x3c/code\x3e\x26nbsp;\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new function which, when called, itself calls this function in the context of the provided value, with a given sequence of arguments preceding any provided when the new function was called.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eCalls (executes) a method of another object in the context of a different object (the calling object); arguments can be passed as they are.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function/isGenerator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/isGenerator"\x3e\x3ccode\x3eisGenerator\x3c/code\x3e\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires JavaScript 1.8.6\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns \x3ccode\x3etrue\x3c/code\x3e if the function is a \x3ca title \x3d "en/Core JavaScript 1.5 Guide/Iterators and Generators#Generators.3a a better way to build Iterators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Iterators_and_Generators#Generators.3a_a_better_way_to_build_Iterators"\x3egenerator\x3c/a\x3e; otherwise returns \x3ccode\x3efalse\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toSource"\x3etoSource\x3c/a\x3e\x3c/code\x3e\x26nbsp;\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dt\x3e \x3cdd\x3eReturns a string representing the source code of the function. Overrides the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.toSource\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the source code of the function. Overrides the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arguments"\x3earguments\x3c/a\x3e\n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n\x3c/dt\x3e \x3cdd\x3eAn array corresponding to the arguments passed to a function. This is deprecated as property of \x3ccode\x3eFunction\x3c/code\x3e, use the \x3ca title \x3d "en/JavaScript/Reference/Functions/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments"\x3earguments\x3c/a\x3e object available within the function instead.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/arity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arity"\x3earity\x3c/a\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since JavaScript 1.8.6\x3c/span\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the number of arguments expected by the function. Use the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length"\x3elength\x3c/a\x3e property instead.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/caller" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/caller"\x3ecaller\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eSpecifies the function that invoked the currently executing function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length"\x3elength\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the number of arguments expected by the function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/name"\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eApplies the method of another object in the context of a different object (the calling object); arguments can be passed as an Array object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/bind" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind"\x3ebind\x3c/a\x3e\x3c/code\x3e\x26nbsp;\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new function which, when called, itself calls this function in the context of the provided value, with a given sequence of arguments preceding any provided when the new function was called.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eCalls (executes) a method of another object in the context of a different object (the calling object); arguments can be passed as they are.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function/isGenerator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/isGenerator"\x3e\x3ccode\x3eisGenerator\x3c/code\x3e\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires JavaScript 1.8.6\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns \x3ccode\x3etrue\x3c/code\x3e if the function is a \x3ca title \x3d "en/Core JavaScript 1.5 Guide/Iterators and Generators#Generators.3a a better way to build Iterators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Iterators_and_Generators#Generators.3a_a_better_way_to_build_Iterators"\x3egenerator\x3c/a\x3e; otherwise returns \x3ccode\x3efalse\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toSource"\x3etoSource\x3c/a\x3e\x3c/code\x3e\x26nbsp;\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dt\x3e \x3cdd\x3eReturns a string representing the source code of the function. Overrides the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.toSource\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the source code of the function. Overrides the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example:_Specifying_arguments_with_the_Function_constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample: Specifying arguments with the \x3ccode\x3eFunction\x3c/code\x3e constructor\x3c/h2\x3e\n\x3cp\x3eThe following code creates a \x3ccode\x3eFunction\x3c/code\x3e object that takes two arguments.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Example can be run directly in your JavaScript console\n\n// Create a function that takes two arguments and returns the sum of those arguments\nvar adder \x3d new Function(\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;return a + b\x26quot;);\n\n// Call the function\nadder(2, 6);\n// \x26gt; 8\x3c/pre\x3e\r\n        \n\x3cp\x3eThe arguments \x26quot;\x3ccode\x3ea\x3c/code\x3e\x26quot; and \x26quot;\x3ccode\x3eb\x3c/code\x3e\x26quot; are formal argument names that are used in the function body, \x26quot;\x3ccode\x3ereturn a + b\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Browser_Compatibility"\x3e\x3c/span\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari (WebKit)\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eIE\x26nbsp;Phone\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/function_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/function"\x3efunction Operator\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/function"\x3efunction Statement\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Functions_and_function_scope" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope"\x3eFunctions\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Properties","Methods","Function instances","Properties","Methods","Example: Specifying arguments with the Function constructor","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number","title":"Number","_id":"4eea8374a4c86c4dba000006","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCreates a wrapper object to allow you to work with numerical values.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3enew Number(\x3cem\x3evalue\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evalue\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe numeric value of the object being created.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe primary uses for the \x3ccode\x3eNumber\x3c/code\x3e object are:\x3c/p\x3e\n\x3cp\x3eIf the argument cannot be converted into a number, it returns \x3ccode\x3eNaN\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eIn a non-constructor context (i.e., without the \x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/new_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/new"\x3enew\x3c/a\x3e operator), \x3ccode\x3eNumber\x3c/code\x3e can be used to perform a type conversion.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eNumber\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number#Properties_2"\x3eProperties of Number instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe largest positive representable number.\x26nbsp; The largest negative representable number is \x3ccode\x3e-MAX_VALUE.\x3c/code\x3e\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/MAX_VALUE" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/MAX_VALUE"\x3eMAX_VALUE\x3c/a\x3e\x3c/dt\x3e\n\x3c/dl\x3e\n\x3cp\x3eThe smallest positive representable number -- that is, the positive number closest to zero (without actually being zero).\x26nbsp; The smallest negative representable number is \x3ccode\x3e-MIN_VALUE.\x3c/code\x3e\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/MIN_VALUE" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/MIN_VALUE"\x3eMIN_VALUE\x3c/a\x3e\x3c/dt\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/NaN"\x3eNaN\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecial \x26quot;not a number\x26quot; value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY"\x3eNEGATIVE_INFINITY\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecial value representing negative infinity; returned on overflow.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY"\x3ePOSITIVE_INFINITY\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecial value representing infinity; returned on overflow.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to a Number object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Arity" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Arity"\x3e\x3ccode\x3earity\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Caller"\x3e\x3ccode\x3ecaller\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Length" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eNumber\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number#Methods_2"\x3eMethods of Number instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eNumber\x3c/code\x3e object contains no methods of its own, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Apply"\x3e\x3ccode\x3eapply\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Call"\x3e\x3ccode\x3ecall\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Number_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x3ccode\x3eNumber\x3c/code\x3e instances\x3c/h2\x3e\n\x3cp\x3eAll \x3ccode\x3eNumber\x3c/code\x3e instances inherit from \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/prototype"\x3eNumber.prototype\x3c/a\x3e. The prototype object of the \x3ccode\x3eNumber\x3c/code\x3e constructor can be modified to affect all \x3ccode\x3eNumber\x3c/code\x3e instances.\x3c/p\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the function that created this object\'s instance. By default this is the \x3ccode\x3eNumber\x3c/code\x3e object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toExponential" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toExponential"\x3etoExponential\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the number in exponential notation.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3etoFixed\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the number in fixed-point notation.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/ToLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a human readable string representing the number using the locale of the environment. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toLocaleString"\x3eObject.prototype.toLocaleString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toPrecision" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision"\x3etoPrecision\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the number to a specified precision in fixed-point or exponential notation.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eReturns an object literal representing the specified Number object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/valueOf"\x3evalueOf\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.prototype.valueOf\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the function that created this object\'s instance. By default this is the \x3ccode\x3eNumber\x3c/code\x3e object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toExponential" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toExponential"\x3etoExponential\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the number in exponential notation.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3etoFixed\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the number in fixed-point notation.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/ToLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a human readable string representing the number using the locale of the environment. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toLocaleString"\x3eObject.prototype.toLocaleString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toPrecision" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision"\x3etoPrecision\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the number to a specified precision in fixed-point or exponential notation.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eReturns an object literal representing the specified Number object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/valueOf"\x3evalueOf\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.prototype.valueOf\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_Using_the_Number_object_to_assign_values_to_numeric_variables"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using the \x3ccode\x3eNumber\x3c/code\x3e object to assign values to numeric variables\x3c/h3\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3eNumber\x3c/code\x3e object\'s properties to assign values to several numeric variables:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ebiggestNum \x3d Number.MAX_VALUE;\nsmallestNum \x3d Number.MIN_VALUE;\ninfiniteNum \x3d Number.POSITIVE_INFINITY;\nnegInfiniteNum \x3d Number.NEGATIVE_INFINITY;\nnotANum \x3d Number.NaN;\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Using_Number_to_convert_a_Date_object"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3eNumber\x3c/code\x3e to convert a \x3ccode\x3eDate\x3c/code\x3e object\x3c/h3\x3e\n\x3cp\x3eThe following example converts the \x3ccode\x3eDate\x3c/code\x3e object to a numerical value using \x3ccode\x3eNumber\x3c/code\x3e as a function:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar d \x3d new Date(\x26quot;December 17, 1995 03:24:00\x26quot;);\nprint(Number(d));\x3c/pre\x3e\r\n        \n\x3cp\x3eThis displays \x26quot;819199440000\x26quot;.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_Using_the_Number_object_to_assign_values_to_numeric_variables"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using the \x3ccode\x3eNumber\x3c/code\x3e object to assign values to numeric variables\x3c/h3\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3eNumber\x3c/code\x3e object\'s properties to assign values to several numeric variables:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ebiggestNum \x3d Number.MAX_VALUE;\nsmallestNum \x3d Number.MIN_VALUE;\ninfiniteNum \x3d Number.POSITIVE_INFINITY;\nnegInfiniteNum \x3d Number.NEGATIVE_INFINITY;\nnotANum \x3d Number.NaN;\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Using_Number_to_convert_a_Date_object"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3eNumber\x3c/code\x3e to convert a \x3ccode\x3eDate\x3c/code\x3e object\x3c/h3\x3e\n\x3cp\x3eThe following example converts the \x3ccode\x3eDate\x3c/code\x3e object to a numerical value using \x3ccode\x3eNumber\x3c/code\x3e as a function:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar d \x3d new Date(\x26quot;December 17, 1995 03:24:00\x26quot;);\nprint(Number(d));\x3c/pre\x3e\r\n        \n\x3cp\x3eThis displays \x26quot;819199440000\x26quot;.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Browser_Compatibility"\x3e\x3c/span\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari (WebKit)\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eIE\x26nbsp;Phone\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN"\x3eNaN\x3c/a\x3e\x3c/li\x3e \x3cli\x3eThe \x3ca title \x3d "Math" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math"\x3eMath\x3c/a\x3e global object\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Properties","Methods","Number instances","Properties","Methods","Examples","Example: Using the Number object to assign values to numeric variables","Example: Using Number to convert a Date object","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object","title":"Object","_id":"4eea8378a4c86c4dba000007","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCreates an object wrapper.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3enew Object( \x3cem\x3e[ value ]\x3c/em\x3e )\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3evalue\x3c/dt\x3e \x3cdd\x3eAny value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3eObject\x3c/code\x3e constructor creates an object wrapper for the given value. If the value is \x3ccode\x3enull\x3c/code\x3e or \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Properties/undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3eundefined\x3c/a\x3e\x3c/code\x3e, it will create and return an empty object, otherwise, it will return an object of a type that corresponds to the given value.\x3c/p\x3e\n\x3cp\x3eWhen called in a non-constructor context, \x3ccode\x3eObject\x3c/code\x3e behaves identically.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eObject\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object#Properties_2"\x3eProperties of Object instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to all objects of type Object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Arity" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Arity"\x3e\x3ccode\x3earity\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Caller"\x3e\x3ccode\x3ecaller\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Length" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eObject\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object#Methods_2"\x3eMethods of Object instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca class \x3d "internal" title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/Object/Create" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create"\x3ecreate\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Creates a new object with the specified prototype object and properties.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca class \x3d "internal" title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/Object/DefineProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty"\x3edefineProperty\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Adds the named property described by a given descriptor to an object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca class \x3d "internal" title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/Object/DefineProperties" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperties"\x3edefineProperties\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Adds the named properties described by the given descriptors to an object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca class \x3d "internal" title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/Object/GetOwnPropertyDescriptor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor"\x3egetOwnPropertyDescriptor\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Returns a property descriptor for a named property on an object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/keys" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys"\x3e\x3ccode\x3ekeys\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Returns an array containing the names of all of the given object\'s \x3cstrong\x3eown\x3c/strong\x3e enumerable properties.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/getOwnPropertyNames" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames"\x3e\x3ccode\x3egetOwnPropertyNames\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Returns an array containing the names of all of the given object\'s \x3cstrong\x3eown\x3c/strong\x3e enumerable and non-enumerable properties.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/Object/getPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf"\x3egetPrototypeOf\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Returns the prototype of the specified object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/preventExtensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions"\x3e\x3ccode\x3epreventExtensions\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Prevents any extensions of an object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3e\x3ccode\x3eisExtensible\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Determine if extending of an object is allowed.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3eseal\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Prevents other code from deleting properties of an object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isSealed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed"\x3e\x3ccode\x3eisSealed\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Determine if an object is sealed.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/freezed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze"\x3e\x3ccode\x3efreeze\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Freezes an object: other code can\'t delete or change any properties.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isFrozen" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen"\x3e\x3ccode\x3eisFrozen\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Determine if an object was frozen.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Apply"\x3e\x3ccode\x3eapply\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Call"\x3e\x3ccode\x3ecall\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Object_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x3ccode\x3eObject\x3c/code\x3e instances\x3c/h2\x3e\n\x3cp\x3eAll objects in JavaScript are descended from \x3ccode\x3eObject\x3c/code\x3e; all objects inherit methods and properties from \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/prototype"\x3eObject.prototype\x3c/a\x3e\x3c/code\x3e, although they may be overridden. For example, other constructors\' prototypes override the \x3ccode\x3econstructor\x3c/code\x3e property and provide their own \x3ccode\x3etoString\x3c/code\x3e methods. Changes to the \x3ccode\x3eObject\x3c/code\x3e prototype object are propagated to all objects unless the properties and methods subject to those changes are overridden further along the prototype chain.\x3c/p\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/count" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/count" class \x3d "new "\x3e\x3ccode\x3e__count__\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since \x3ca rel \x3d "custom" href \x3d "/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\x3cbr/\x3e Returns the number of enumerable properties directly on a user-defined object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/parent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since \x3ca rel \x3d "custom" href \x3d "/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\x3cbr/\x3e Points to an object\'s context.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/proto" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Points to the object which was used as prototype when the object was instantiated.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Associates a function with a property that, when accessed, executes that function and returns its return value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Associates a function with a property that, when set, executes that function which modifies the property.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/eval"\x3eeval\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since \x3ca rel \x3d "custom" href \x3d "/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\x3cbr/\x3e \x3c/span\x3eEvaluates a string of JavaScript code in the context of the specified object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a boolean indicating whether an object contains the specified property as a direct property of that object and not inherited through the prototype chain.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf"\x3eisPrototypeOf\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a boolean indication whether the specified object is in the prototype chain of the object this method is called upon.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupGetter"\x3e__lookupGetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns the function associated with the specified property by the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupSetter"\x3e__lookupSetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns the function associated with the specified property by the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/noSuchMethod" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/noSuchMethod"\x3e__noSuchMethod__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Allows a function to be defined that will be executed when an undefined object member is called as a method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable"\x3epropertyIsEnumerable\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a boolean indicating if the internal \x3ca title \x3d "en/ECMAScript_DontEnum_attribute" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute"\x3eECMAScript DontEnum attribute\x3c/a\x3e is set.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3etoSource\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns string containing the source of an object literal representing the object that this method is called upon; you can use this value to create a new object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eCalls \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representation of the object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/unwatch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch"\x3eunwatch\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Removes a watchpoint from a property of the object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3evalueOf\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/watch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch"\x3ewatch\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Adds a watchpoint to a property of the object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/count" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/count" class \x3d "new "\x3e\x3ccode\x3e__count__\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since \x3ca rel \x3d "custom" href \x3d "/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\x3cbr/\x3e Returns the number of enumerable properties directly on a user-defined object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/parent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since \x3ca rel \x3d "custom" href \x3d "/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\x3cbr/\x3e Points to an object\'s context.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/proto" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Points to the object which was used as prototype when the object was instantiated.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Associates a function with a property that, when accessed, executes that function and returns its return value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Associates a function with a property that, when set, executes that function which modifies the property.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/eval"\x3eeval\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since \x3ca rel \x3d "custom" href \x3d "/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\x3cbr/\x3e \x3c/span\x3eEvaluates a string of JavaScript code in the context of the specified object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a boolean indicating whether an object contains the specified property as a direct property of that object and not inherited through the prototype chain.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf"\x3eisPrototypeOf\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a boolean indication whether the specified object is in the prototype chain of the object this method is called upon.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupGetter"\x3e__lookupGetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns the function associated with the specified property by the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupSetter"\x3e__lookupSetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns the function associated with the specified property by the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/noSuchMethod" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/noSuchMethod"\x3e__noSuchMethod__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Allows a function to be defined that will be executed when an undefined object member is called as a method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable"\x3epropertyIsEnumerable\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a boolean indicating if the internal \x3ca title \x3d "en/ECMAScript_DontEnum_attribute" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute"\x3eECMAScript DontEnum attribute\x3c/a\x3e is set.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3etoSource\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns string containing the source of an object literal representing the object that this method is called upon; you can use this value to create a new object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eCalls \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representation of the object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/unwatch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch"\x3eunwatch\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Removes a watchpoint from a property of the object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3evalueOf\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/watch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch"\x3ewatch\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Adds a watchpoint to a property of the object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_Using_Object_given_undefined_and_null_types"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3eObject\x3c/code\x3e given \x3ccode\x3eundefined\x3c/code\x3e and \x3ccode\x3enull\x3c/code\x3e types\x3c/h3\x3e\n\x3cp\x3eThe following examples store an empty \x3ccode\x3eObject\x3c/code\x3e object in \x3ccode\x3eo\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d new Object();\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d new Object(undefined);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d new Object(null);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Using_Object_to_create_Boolean_objects"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3eObject\x3c/code\x3e to create \x3ccode\x3eBoolean\x3c/code\x3e objects\x3c/h3\x3e\n\x3cp\x3eThe following examples store \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3eBoolean\x3c/a\x3e\x3c/code\x3e objects in \x3ccode\x3eo\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// equivalent to o \x3d new Boolean(true);\nvar o \x3d new Object(true);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// equivalent to o \x3d new Boolean(false);\nvar o \x3d new Object(Boolean());\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_Using_Object_given_undefined_and_null_types"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3eObject\x3c/code\x3e given \x3ccode\x3eundefined\x3c/code\x3e and \x3ccode\x3enull\x3c/code\x3e types\x3c/h3\x3e\n\x3cp\x3eThe following examples store an empty \x3ccode\x3eObject\x3c/code\x3e object in \x3ccode\x3eo\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d new Object();\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d new Object(undefined);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d new Object(null);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Using_Object_to_create_Boolean_objects"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3eObject\x3c/code\x3e to create \x3ccode\x3eBoolean\x3c/code\x3e objects\x3c/h3\x3e\n\x3cp\x3eThe following examples store \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3eBoolean\x3c/a\x3e\x3c/code\x3e objects in \x3ccode\x3eo\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// equivalent to o \x3d new Boolean(true);\nvar o \x3d new Object(true);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// equivalent to o \x3d new Boolean(false);\nvar o \x3d new Object(Boolean());\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Browser_Compatibility"\x3e\x3c/span\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari (WebKit)\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eIE\x26nbsp;Phone\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Properties","Methods","Object instances","Properties","Methods","Examples","Example: Using Object given undefined and null types","Example: Using Object to create Boolean objects","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp","title":"RegExp","_id":"4eea837aa4c86c4dba000008","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCreates a regular expression object for matching text with a pattern.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eRegExp(\x3cem\x3epattern\x3c/em\x3e \x3cem\x3e[, flags]\x3c/em\x3e)\x3c/code\x3e\x3cbr/\x3e \x3ccode\x3e/\x3cem\x3epattern\x3c/em\x3e/\x3cem\x3eflags\x3c/em\x3e\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3epattern\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe text of the regular expression.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eflags\x3c/code\x3e\x3c/dt\x3e\n\x3c/dl\x3e\n\x3cp\x3eIf specified, flags can have any combination of the following values:\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eg\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eglobal match\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ei\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eignore case\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3em\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eTreat beginning and end characters (^ and $) as working over multiple lines (i.e., match the beginning or end of \x3cem\x3eeach\x3c/em\x3e line (delimited by \\n or \\r), not only the very beginning or end of the whole input string)\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ey\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding:0px 2px;"\x3eNew in \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/Firefox_3_for_developers"\x3eFirefox 3\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e sticky; matches only from the index indicated by the \x3ccode\x3elastIndex\x3c/code\x3e property of this regular expression in the target string (and does not attempt to match from any later indexes). This allows the match-only-at-start capabilities of the character \x26quot;^\x26quot; to effectively be used at any location in a string by changing the value of the \x3ccode\x3elastIndex\x3c/code\x3e property.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_4\"\x3e\x3cspan id \x3d \"Description\"\x3e\x3c/span\x3e\x3ch2 class \x3d \"editable\"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eWhen using the constructor function, the normal string escape rules (preceding special characters with \\ when included in a string) are necessary. For example, the following are equivalent:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar re \x3d new RegExp(\x26quot;\\\\w+\x26quot;);\nvar re \x3d /\\w+/;\x3c/pre\x3e\r\n        \n\x3cp\x3eNotice that the parameters to the literal format do not use quotation marks to indicate strings, while the parameters to the constructor function do use quotation marks. So the following expressions create the same regular expression:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3e/ab+c/i;\nnew RegExp(\x26quot;ab+c\x26quot;, \x26quot;i\x26quot;);\x3c/pre\x3e\r\n        \n\x3cdiv id \x3d \"section_5\"\x3e\x3cspan id \x3d \"Special_characters_in_regular_expressions\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eSpecial characters in regular expressions\x3c/h3\x3e\n\x3ctable class \x3d \"fullwidth-table\"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d \"header\"\x3eCharacter\x3c/td\x3e \x3ctd class \x3d \"header\"\x3eMeaning\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eFor characters that are usually treated literally, indicates that the next character is special and not to be interpreted literally.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/b/\x3c/code\x3e matches the character 'b'. By placing a backslash in front of b, that is by using \x3ccode\x3e/\\b/\x3c/code\x3e, the character becomes special to mean match a word boundary.\x3c/p\x3e \x3cp\x3e\x3cem\x3eor\x3c/em\x3e\x3c/p\x3e \x3cp\x3eFor characters that are usually treated specially, indicates that the next character is not special and should be interpreted literally.\x3c/p\x3e \x3cp\x3eFor example, * is a special character that means 0 or more occurrences of the preceding character should be matched; for example, \x3ccode\x3e/a*/\x3c/code\x3e means match 0 or more \x26quot;a\x26quot;s. To match \x3ccode\x3e*\x3c/code\x3e literally, precede it with a backslash; for example, \x3ccode\x3e/a\\*/\x3c/code\x3e matches 'a*'.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e^\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches beginning of input. If the multiline flag is set to true, also matches immediately after a line break character.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/^A/\x3c/code\x3e does not match the 'A' in \x26quot;an A\x26quot;, but does match the first 'A' in \x26quot;An A.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches end of input. If the multiline flag is set to true, also matches immediately before a line break character.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/t$/\x3c/code\x3e does not match the 't' in \x26quot;eater\x26quot;, but does match it in \x26quot;eat\x26quot;.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e*\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the preceding item 0 or more times.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/bo*/\x3c/code\x3e matches 'boooo' in \x26quot;A ghost booooed\x26quot; and 'b' in \x26quot;A bird warbled\x26quot;, but nothing in \x26quot;A goat grunted\x26quot;.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e+\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the preceding item 1 or more times. Equivalent to \x3ccode\x3e{1,}\x3c/code\x3e.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/a+/\x3c/code\x3e matches the 'a' in \x26quot;candy\x26quot; and all the a's in \x26quot;caaaaaaandy\x26quot;.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e?\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the preceding item 0 or 1 time.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/e?le?/\x3c/code\x3e matches the 'el' in \x26quot;angel\x26quot; and the 'le' in \x26quot;angle.\x26quot;\x3c/p\x3e \x3cp\x3eIf used immediately after any of the quantifiers \x3ccode\x3e*\x3c/code\x3e, \x3ccode\x3e+\x3c/code\x3e, \x3ccode\x3e?\x3c/code\x3e, or \x3ccode\x3e{}\x3c/code\x3e, makes the quantifier non-greedy (matching the minimum number of times), as opposed to the default, which is greedy (matching the maximum number of times).\x3c/p\x3e \x3cp\x3eAlso used in lookahead assertions, described under \x3ccode\x3e(?\x3d)\x3c/code\x3e, \x3ccode\x3e(?!)\x3c/code\x3e, and \x3ccode\x3e(?:)\x3c/code\x3e in this table.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e.\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3e(The decimal point) matches any single character except the newline characters: \\n \\r \\u2028 or \\u2029. (\x3ccode\x3e[\\s\\S]\x3c/code\x3e can be used to match any character including newlines.)\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/.n/\x3c/code\x3e matches 'an' and 'on' in \x26quot;nay, an apple is on the tree\x26quot;, but not 'nay'.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e(\x3cem\x3ex\x3c/em\x3e)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e and remembers the match. These are called capturing parentheses.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/(foo)/\x3c/code\x3e matches and remembers 'foo' in \x26quot;foo bar.\x26quot; The matched substring can be recalled from the resulting array's elements \x3ccode\x3e[1], ..., [n]\x3c/code\x3e or from the predefined \x3ccode\x3eRegExp\x3c/code\x3e object's properties \x3ccode\x3e$1, ..., $9\x3c/code\x3e.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e(?:\x3cem\x3ex\x3c/em\x3e)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e but does not remember the match. These are called non-capturing parentheses. The matched substring can not be recalled from the resulting array's elements \x3ccode\x3e[1], ..., [n]\x3c/code\x3e or from the predefined \x3ccode\x3eRegExp\x3c/code\x3e object's properties \x3ccode\x3e$1, ..., $9\x3c/code\x3e.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3ex\x3c/em\x3e(?\x3d\x3cem\x3ey\x3c/em\x3e)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e only if \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e is followed by \x3ccode\x3e\x3cem\x3ey\x3c/em\x3e\x3c/code\x3e. For example, \x3ccode\x3e/Jack(?\x3dSprat)/\x3c/code\x3e matches 'Jack' only if it is followed by 'Sprat'. \x3ccode\x3e/Jack(?\x3dSprat|Frost)/\x3c/code\x3e matches 'Jack' only if it is followed by 'Sprat' or 'Frost'. However, neither 'Sprat' nor 'Frost' is part of the match results.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3ex\x3c/em\x3e(?!\x3cem\x3ey\x3c/em\x3e)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e only if \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e is not followed by \x3ccode\x3e\x3cem\x3ey\x3c/em\x3e\x3c/code\x3e. For example, \x3ccode\x3e/\\d+(?!\\.)/\x3c/code\x3e matches a number only if it is not followed by a decimal point.\x3c/p\x3e \x3cp\x3e\x3ccode\x3e/\\d+(?!\\.)/.exec(\x26quot;3.141\x26quot;)\x3c/code\x3e matches 141 but not 3.141.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3ex\x3c/em\x3e|\x3cem\x3ey\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches either \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e or \x3ccode\x3e\x3cem\x3ey\x3c/em\x3e\x3c/code\x3e.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/green|red/\x3c/code\x3e matches 'green' in \x26quot;green apple\x26quot; and 'red' in \x26quot;red apple.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e{\x3cem\x3en\x3c/em\x3e}\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e is a positive integer. Matches exactly \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e occurrences of the preceding item.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/a{2}/\x3c/code\x3e doesn't match the 'a' in \x26quot;candy,\x26quot; but it matches all of the a's in \x26quot;caandy,\x26quot; and the first two a's in \x26quot;caaandy.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e{\x3cem\x3en\x3c/em\x3e,}\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e is a positive integer. Matches at least \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e occurrences of the preceding item.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/a{2,}/\x3c/code\x3e doesn't match the 'a' in \x26quot;candy\x26quot;, but matches all of the a's in \x26quot;caandy\x26quot; and in \x26quot;caaaaaaandy.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e{\x3cem\x3en\x3c/em\x3e,\x3cem\x3em\x3c/em\x3e}\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e and \x3ccode\x3e\x3cem\x3em\x3c/em\x3e\x3c/code\x3e are positive integers. Matches at least \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e and at most \x3ccode\x3e\x3cem\x3em\x3c/em\x3e\x3c/code\x3e occurrences of the preceding item.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/a{1,3}/\x3c/code\x3e matches nothing in \x26quot;cndy\x26quot;, the 'a' in \x26quot;candy,\x26quot; the first two a's in \x26quot;caandy,\x26quot; and the first three a's in \x26quot;caaaaaaandy\x26quot;. Notice that when matching \x26quot;caaaaaaandy\x26quot;, the match is \x26quot;aaa\x26quot;, even though the original string had more a's in it.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[xyz]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eA character set. Matches any one of the enclosed characters. You can specify a range of characters by using a hyphen.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e[abcd]\x3c/code\x3e is the same as \x3ccode\x3e[a-d]\x3c/code\x3e. They match the 'b' in \x26quot;brisket\x26quot; and the 'c' in \x26quot;chop\x26quot;.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[^xyz]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eA negated or complemented character set. That is, it matches anything that is not enclosed in the brackets. You can specify a range of characters by using a hyphen.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e[^abc]\x3c/code\x3e is the same as \x3ccode\x3e[^a-c]\x3c/code\x3e. They initially match 'r' in \x26quot;brisket\x26quot; and 'h' in \x26quot;chop.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[\\b]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a backspace. (Not to be confused with \x3ccode\x3e\\b\x3c/code\x3e.)\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\b\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a word boundary, such as a space. (Not to be confused with \x3ccode\x3e[\\b]\x3c/code\x3e.)\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\bn\\w/\x3c/code\x3e matches the 'no' in \x26quot;noonday\x26quot;; \x3ccode\x3e/\\wy\\b/\x3c/code\x3e matches the 'ly' in \x26quot;possibly yesterday.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\B\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a non-word boundary.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\w\\Bn/\x3c/code\x3e matches 'on' in \x26quot;noonday\x26quot;, and \x3ccode\x3e/y\\B\\w/\x3c/code\x3e matches 'ye' in \x26quot;possibly yesterday.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\c\x3cem\x3eX\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3eX\x3c/em\x3e\x3c/code\x3e is a letter from A - Z. Matches a control character in a string.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\cM/\x3c/code\x3e matches control-M in a string.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\d\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a digit character in the basic Latin alphabet. Equivalent to \x3ccode\x3e[0-9]\x3c/code\x3e.\x3c/p\x3e \x3cp\x3e\x3cstrong\x3eNote\x3c/strong\x3e: In Firefox 2 and earlier, matches a digit character from any alphabet. (\n\x3ca rel \x3d \"external\" href \x3d \"https://bugzilla.mozilla.org/show_bug.cgi?id\x3d378738\" class \x3d \"external\" title \x3d \"VERIFIED FIXED - \\d pattern matches characters other than the decimal digits 0-9 (ecma_3/RegExp/15.10.2.12.js)\"\x3e\nbug 378738\x3c/a\x3e\n)\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\d/\x3c/code\x3e or \x3ccode\x3e/[0-9]/\x3c/code\x3e matches '2' in \x26quot;B2 is the suite number.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\D\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches any character that is not a digit in the basic Latin alphabet. Equivalent to \x3ccode\x3e[^0-9]\x3c/code\x3e.\x3c/p\x3e \x3cp\x3e\x3cstrong\x3eNote\x3c/strong\x3e: In Firefox 2 and earlier, excludes digit characters from all alphabets. (\n\x3ca rel \x3d \"external\" href \x3d \"https://bugzilla.mozilla.org/show_bug.cgi?id\x3d378738\" class \x3d \"external\" title \x3d \"VERIFIED FIXED - \\d pattern matches characters other than the decimal digits 0-9 (ecma_3/RegExp/15.10.2.12.js)\"\x3e\nbug 378738\x3c/a\x3e\n)\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\D/\x3c/code\x3e or \x3ccode\x3e/[^0-9]/\x3c/code\x3e matches 'B' in \x26quot;B2 is the suite number.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\f\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a form-feed.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\n\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a linefeed.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\r\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a carriage return.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\s\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a single white space character, including space, tab, form feed, line feed and other unicode spaces.\n\x3csup id \x3d \"ref_equivalent_s\" class \x3d \"reference plainlinksneverexpand\"\x3e\x3ca rel \x3d \"custom\" href \x3d \"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#endnote_equivalent_s\"\x3e[equivalent_s]\x3c/a\x3e\x3c/sup\x3e\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\s\\w*/\x3c/code\x3e matches ' bar' in \x26quot;foo bar.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\S\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a single character other than white space.\n\x3csup id \x3d \"ref_equivalent_S\" class \x3d \"reference plainlinksneverexpand\"\x3e\x3ca rel \x3d \"custom\" href \x3d \"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#endnote_equivalent_S\"\x3e[equivalent_S]\x3c/a\x3e\x3c/sup\x3e\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\S\\w*/\x3c/code\x3e matches 'foo' in \x26quot;foo bar.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\t\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a tab.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\v\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a vertical tab.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\w\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches any alphanumeric character from the basic Latin alphabet, including the underscore. Equivalent to \x3ccode\x3e[A-Za-z0-9_]\x3c/code\x3e.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\w/\x3c/code\x3e matches 'a' in \x26quot;apple,\x26quot; '5' in \x26quot;$5.28,\x26quot; and '3' in \x26quot;3D.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\W\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches any character that is not a word character from the basic Latin alphabet. Equivalent to \x3ccode\x3e[^A-Za-z0-9_]\x3c/code\x3e.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\W/\x3c/code\x3e or \x3ccode\x3e/[^A-Za-z0-9_]/\x3c/code\x3e matches '%' in \x26quot;50%.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\\x3cem\x3en\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e is a positive integer. A back reference to the last substring matching the n parenthetical in the regular expression (counting left parentheses).\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/apple(,)\\sorange\\1/\x3c/code\x3e matches 'apple, orange,' in \x26quot;apple, orange, cherry, peach.\x26quot; A more complete example follows this table.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\0\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a NUL character. Do not follow this with another digit.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\x\x3cem\x3ehh\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the character with the code \x3ccode\x3e\x3cem\x3ehh\x3c/em\x3e\x3c/code\x3e (two hexadecimal digits)\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\u\x3cem\x3ehhhh\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the character with the Unicode value \x3ccode\x3e\x3cem\x3ehhhh\x3c/em\x3e\x3c/code\x3e (four hexadecimal digits).\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eThe literal notation provides compilation of the regular expression when the expression is evaluated. Use literal notation when the regular expression will remain constant. For example, if you use literal notation to construct a regular expression used in a loop, the regular expression won't be recompiled on each iteration.\x3c/p\x3e\n\x3cp\x3eThe constructor of the regular expression object, for example, \x3ccode\x3enew RegExp(\x26quot;ab+c\x26quot;)\x3c/code\x3e, provides runtime compilation of the regular expression. Use the constructor function when you know the regular expression pattern will be changing, or you don't know the pattern and are getting it from another source, such as user input.\x3c/p\x3e\n\x3col\x3e \x3cli\x3e\n\x3cspan id \x3d \"endnote_equivalent_s\"\x3e\x3cstrong\x3e\x3ca rel \x3d \"custom\" href \x3d \"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#ref_equivalent_s\"\x3e^\x3c/a\x3e\x3c/strong\x3e\x3c/span\x3eEquivalent to: \x3cp\x3e\x3ccode\x3e[\\t\\n\\v\\f\\r \\u00a0\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u200b\\u2028\\u2029\\u3000]\x3c/code\x3e\x3c/p\x3e \x3c/li\x3e \x3cli\x3e\n\x3cspan id \x3d \"endnote_equivalent_S\"\x3e\x3cstrong\x3e\x3ca rel \x3d \"custom\" href \x3d \"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#ref_equivalent_S\"\x3e^\x3c/a\x3e\x3c/strong\x3e\x3c/span\x3eEquivalent to:\n\x3cp\x3e\x3ccode\x3e[^\\t\\n\\v\\f\\r \\u00a0\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u200b\\u2028\\u2029\\u3000]\x3c/code\x3e\x3c/p\x3e\x3c/li\x3e\n\x3c/ol\x3e\x3c/div\x3e\x3c/div\x3e",
"\x3cdiv id \x3d \"section_5\"\x3e\x3cspan id \x3d \"Special_characters_in_regular_expressions\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eSpecial characters in regular expressions\x3c/h3\x3e\n\x3ctable class \x3d \"fullwidth-table\"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d \"header\"\x3eCharacter\x3c/td\x3e \x3ctd class \x3d \"header\"\x3eMeaning\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eFor characters that are usually treated literally, indicates that the next character is special and not to be interpreted literally.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/b/\x3c/code\x3e matches the character 'b'. By placing a backslash in front of b, that is by using \x3ccode\x3e/\\b/\x3c/code\x3e, the character becomes special to mean match a word boundary.\x3c/p\x3e \x3cp\x3e\x3cem\x3eor\x3c/em\x3e\x3c/p\x3e \x3cp\x3eFor characters that are usually treated specially, indicates that the next character is not special and should be interpreted literally.\x3c/p\x3e \x3cp\x3eFor example, * is a special character that means 0 or more occurrences of the preceding character should be matched; for example, \x3ccode\x3e/a*/\x3c/code\x3e means match 0 or more \x26quot;a\x26quot;s. To match \x3ccode\x3e*\x3c/code\x3e literally, precede it with a backslash; for example, \x3ccode\x3e/a\\*/\x3c/code\x3e matches 'a*'.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e^\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches beginning of input. If the multiline flag is set to true, also matches immediately after a line break character.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/^A/\x3c/code\x3e does not match the 'A' in \x26quot;an A\x26quot;, but does match the first 'A' in \x26quot;An A.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches end of input. If the multiline flag is set to true, also matches immediately before a line break character.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/t$/\x3c/code\x3e does not match the 't' in \x26quot;eater\x26quot;, but does match it in \x26quot;eat\x26quot;.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e*\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the preceding item 0 or more times.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/bo*/\x3c/code\x3e matches 'boooo' in \x26quot;A ghost booooed\x26quot; and 'b' in \x26quot;A bird warbled\x26quot;, but nothing in \x26quot;A goat grunted\x26quot;.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e+\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the preceding item 1 or more times. Equivalent to \x3ccode\x3e{1,}\x3c/code\x3e.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/a+/\x3c/code\x3e matches the 'a' in \x26quot;candy\x26quot; and all the a's in \x26quot;caaaaaaandy\x26quot;.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e?\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the preceding item 0 or 1 time.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/e?le?/\x3c/code\x3e matches the 'el' in \x26quot;angel\x26quot; and the 'le' in \x26quot;angle.\x26quot;\x3c/p\x3e \x3cp\x3eIf used immediately after any of the quantifiers \x3ccode\x3e*\x3c/code\x3e, \x3ccode\x3e+\x3c/code\x3e, \x3ccode\x3e?\x3c/code\x3e, or \x3ccode\x3e{}\x3c/code\x3e, makes the quantifier non-greedy (matching the minimum number of times), as opposed to the default, which is greedy (matching the maximum number of times).\x3c/p\x3e \x3cp\x3eAlso used in lookahead assertions, described under \x3ccode\x3e(?\x3d)\x3c/code\x3e, \x3ccode\x3e(?!)\x3c/code\x3e, and \x3ccode\x3e(?:)\x3c/code\x3e in this table.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e.\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3e(The decimal point) matches any single character except the newline characters: \\n \\r \\u2028 or \\u2029. (\x3ccode\x3e[\\s\\S]\x3c/code\x3e can be used to match any character including newlines.)\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/.n/\x3c/code\x3e matches 'an' and 'on' in \x26quot;nay, an apple is on the tree\x26quot;, but not 'nay'.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e(\x3cem\x3ex\x3c/em\x3e)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e and remembers the match. These are called capturing parentheses.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/(foo)/\x3c/code\x3e matches and remembers 'foo' in \x26quot;foo bar.\x26quot; The matched substring can be recalled from the resulting array's elements \x3ccode\x3e[1], ..., [n]\x3c/code\x3e or from the predefined \x3ccode\x3eRegExp\x3c/code\x3e object's properties \x3ccode\x3e$1, ..., $9\x3c/code\x3e.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e(?:\x3cem\x3ex\x3c/em\x3e)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e but does not remember the match. These are called non-capturing parentheses. The matched substring can not be recalled from the resulting array's elements \x3ccode\x3e[1], ..., [n]\x3c/code\x3e or from the predefined \x3ccode\x3eRegExp\x3c/code\x3e object's properties \x3ccode\x3e$1, ..., $9\x3c/code\x3e.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3ex\x3c/em\x3e(?\x3d\x3cem\x3ey\x3c/em\x3e)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e only if \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e is followed by \x3ccode\x3e\x3cem\x3ey\x3c/em\x3e\x3c/code\x3e. For example, \x3ccode\x3e/Jack(?\x3dSprat)/\x3c/code\x3e matches 'Jack' only if it is followed by 'Sprat'. \x3ccode\x3e/Jack(?\x3dSprat|Frost)/\x3c/code\x3e matches 'Jack' only if it is followed by 'Sprat' or 'Frost'. However, neither 'Sprat' nor 'Frost' is part of the match results.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3ex\x3c/em\x3e(?!\x3cem\x3ey\x3c/em\x3e)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e only if \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e is not followed by \x3ccode\x3e\x3cem\x3ey\x3c/em\x3e\x3c/code\x3e. For example, \x3ccode\x3e/\\d+(?!\\.)/\x3c/code\x3e matches a number only if it is not followed by a decimal point.\x3c/p\x3e \x3cp\x3e\x3ccode\x3e/\\d+(?!\\.)/.exec(\x26quot;3.141\x26quot;)\x3c/code\x3e matches 141 but not 3.141.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3ex\x3c/em\x3e|\x3cem\x3ey\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches either \x3ccode\x3e\x3cem\x3ex\x3c/em\x3e\x3c/code\x3e or \x3ccode\x3e\x3cem\x3ey\x3c/em\x3e\x3c/code\x3e.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/green|red/\x3c/code\x3e matches 'green' in \x26quot;green apple\x26quot; and 'red' in \x26quot;red apple.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e{\x3cem\x3en\x3c/em\x3e}\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e is a positive integer. Matches exactly \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e occurrences of the preceding item.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/a{2}/\x3c/code\x3e doesn't match the 'a' in \x26quot;candy,\x26quot; but it matches all of the a's in \x26quot;caandy,\x26quot; and the first two a's in \x26quot;caaandy.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e{\x3cem\x3en\x3c/em\x3e,}\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e is a positive integer. Matches at least \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e occurrences of the preceding item.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/a{2,}/\x3c/code\x3e doesn't match the 'a' in \x26quot;candy\x26quot;, but matches all of the a's in \x26quot;caandy\x26quot; and in \x26quot;caaaaaaandy.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e{\x3cem\x3en\x3c/em\x3e,\x3cem\x3em\x3c/em\x3e}\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e and \x3ccode\x3e\x3cem\x3em\x3c/em\x3e\x3c/code\x3e are positive integers. Matches at least \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e and at most \x3ccode\x3e\x3cem\x3em\x3c/em\x3e\x3c/code\x3e occurrences of the preceding item.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/a{1,3}/\x3c/code\x3e matches nothing in \x26quot;cndy\x26quot;, the 'a' in \x26quot;candy,\x26quot; the first two a's in \x26quot;caandy,\x26quot; and the first three a's in \x26quot;caaaaaaandy\x26quot;. Notice that when matching \x26quot;caaaaaaandy\x26quot;, the match is \x26quot;aaa\x26quot;, even though the original string had more a's in it.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[xyz]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eA character set. Matches any one of the enclosed characters. You can specify a range of characters by using a hyphen.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e[abcd]\x3c/code\x3e is the same as \x3ccode\x3e[a-d]\x3c/code\x3e. They match the 'b' in \x26quot;brisket\x26quot; and the 'c' in \x26quot;chop\x26quot;.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[^xyz]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eA negated or complemented character set. That is, it matches anything that is not enclosed in the brackets. You can specify a range of characters by using a hyphen.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e[^abc]\x3c/code\x3e is the same as \x3ccode\x3e[^a-c]\x3c/code\x3e. They initially match 'r' in \x26quot;brisket\x26quot; and 'h' in \x26quot;chop.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[\\b]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a backspace. (Not to be confused with \x3ccode\x3e\\b\x3c/code\x3e.)\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\b\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a word boundary, such as a space. (Not to be confused with \x3ccode\x3e[\\b]\x3c/code\x3e.)\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\bn\\w/\x3c/code\x3e matches the 'no' in \x26quot;noonday\x26quot;; \x3ccode\x3e/\\wy\\b/\x3c/code\x3e matches the 'ly' in \x26quot;possibly yesterday.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\B\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a non-word boundary.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\w\\Bn/\x3c/code\x3e matches 'on' in \x26quot;noonday\x26quot;, and \x3ccode\x3e/y\\B\\w/\x3c/code\x3e matches 'ye' in \x26quot;possibly yesterday.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\c\x3cem\x3eX\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3eX\x3c/em\x3e\x3c/code\x3e is a letter from A - Z. Matches a control character in a string.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\cM/\x3c/code\x3e matches control-M in a string.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\d\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a digit character in the basic Latin alphabet. Equivalent to \x3ccode\x3e[0-9]\x3c/code\x3e.\x3c/p\x3e \x3cp\x3e\x3cstrong\x3eNote\x3c/strong\x3e: In Firefox 2 and earlier, matches a digit character from any alphabet. (\n\x3ca rel \x3d \"external\" href \x3d \"https://bugzilla.mozilla.org/show_bug.cgi?id\x3d378738\" class \x3d \"external\" title \x3d \"VERIFIED FIXED - \\d pattern matches characters other than the decimal digits 0-9 (ecma_3/RegExp/15.10.2.12.js)\"\x3e\nbug 378738\x3c/a\x3e\n)\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\d/\x3c/code\x3e or \x3ccode\x3e/[0-9]/\x3c/code\x3e matches '2' in \x26quot;B2 is the suite number.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\D\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches any character that is not a digit in the basic Latin alphabet. Equivalent to \x3ccode\x3e[^0-9]\x3c/code\x3e.\x3c/p\x3e \x3cp\x3e\x3cstrong\x3eNote\x3c/strong\x3e: In Firefox 2 and earlier, excludes digit characters from all alphabets. (\n\x3ca rel \x3d \"external\" href \x3d \"https://bugzilla.mozilla.org/show_bug.cgi?id\x3d378738\" class \x3d \"external\" title \x3d \"VERIFIED FIXED - \\d pattern matches characters other than the decimal digits 0-9 (ecma_3/RegExp/15.10.2.12.js)\"\x3e\nbug 378738\x3c/a\x3e\n)\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\D/\x3c/code\x3e or \x3ccode\x3e/[^0-9]/\x3c/code\x3e matches 'B' in \x26quot;B2 is the suite number.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\f\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a form-feed.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\n\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a linefeed.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\r\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a carriage return.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\s\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a single white space character, including space, tab, form feed, line feed and other unicode spaces.\n\x3csup id \x3d \"ref_equivalent_s\" class \x3d \"reference plainlinksneverexpand\"\x3e\x3ca rel \x3d \"custom\" href \x3d \"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#endnote_equivalent_s\"\x3e[equivalent_s]\x3c/a\x3e\x3c/sup\x3e\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\s\\w*/\x3c/code\x3e matches ' bar' in \x26quot;foo bar.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\S\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a single character other than white space.\n\x3csup id \x3d \"ref_equivalent_S\" class \x3d \"reference plainlinksneverexpand\"\x3e\x3ca rel \x3d \"custom\" href \x3d \"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#endnote_equivalent_S\"\x3e[equivalent_S]\x3c/a\x3e\x3c/sup\x3e\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\S\\w*/\x3c/code\x3e matches 'foo' in \x26quot;foo bar.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\t\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a tab.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\v\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a vertical tab.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\w\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches any alphanumeric character from the basic Latin alphabet, including the underscore. Equivalent to \x3ccode\x3e[A-Za-z0-9_]\x3c/code\x3e.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\w/\x3c/code\x3e matches 'a' in \x26quot;apple,\x26quot; '5' in \x26quot;$5.28,\x26quot; and '3' in \x26quot;3D.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\W\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches any character that is not a word character from the basic Latin alphabet. Equivalent to \x3ccode\x3e[^A-Za-z0-9_]\x3c/code\x3e.\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/\\W/\x3c/code\x3e or \x3ccode\x3e/[^A-Za-z0-9_]/\x3c/code\x3e matches '%' in \x26quot;50%.\x26quot;\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\\x3cem\x3en\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e is a positive integer. A back reference to the last substring matching the n parenthetical in the regular expression (counting left parentheses).\x3c/p\x3e \x3cp\x3eFor example, \x3ccode\x3e/apple(,)\\sorange\\1/\x3c/code\x3e matches 'apple, orange,' in \x26quot;apple, orange, cherry, peach.\x26quot; A more complete example follows this table.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\0\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches a NUL character. Do not follow this with another digit.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\x\x3cem\x3ehh\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the character with the code \x3ccode\x3e\x3cem\x3ehh\x3c/em\x3e\x3c/code\x3e (two hexadecimal digits)\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\\u\x3cem\x3ehhhh\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eMatches the character with the Unicode value \x3ccode\x3e\x3cem\x3ehhhh\x3c/em\x3e\x3c/code\x3e (four hexadecimal digits).\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eThe literal notation provides compilation of the regular expression when the expression is evaluated. Use literal notation when the regular expression will remain constant. For example, if you use literal notation to construct a regular expression used in a loop, the regular expression won't be recompiled on each iteration.\x3c/p\x3e\n\x3cp\x3eThe constructor of the regular expression object, for example, \x3ccode\x3enew RegExp(\x26quot;ab+c\x26quot;)\x3c/code\x3e, provides runtime compilation of the regular expression. Use the constructor function when you know the regular expression pattern will be changing, or you don't know the pattern and are getting it from another source, such as user input.\x3c/p\x3e\n\x3col\x3e \x3cli\x3e\n\x3cspan id \x3d \"endnote_equivalent_s\"\x3e\x3cstrong\x3e\x3ca rel \x3d \"custom\" href \x3d \"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#ref_equivalent_s\"\x3e^\x3c/a\x3e\x3c/strong\x3e\x3c/span\x3eEquivalent to: \x3cp\x3e\x3ccode\x3e[\\t\\n\\v\\f\\r \\u00a0\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u200b\\u2028\\u2029\\u3000]\x3c/code\x3e\x3c/p\x3e \x3c/li\x3e \x3cli\x3e\n\x3cspan id \x3d \"endnote_equivalent_S\"\x3e\x3cstrong\x3e\x3ca rel \x3d \"custom\" href \x3d \"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#ref_equivalent_S\"\x3e^\x3c/a\x3e\x3c/strong\x3e\x3c/span\x3eEquivalent to:\n\x3cp\x3e\x3ccode\x3e[^\\t\\n\\v\\f\\r \\u00a0\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u200b\\u2028\\u2029\\u3000]\x3c/code\x3e\x3c/p\x3e\x3c/li\x3e\n\x3c/ol\x3e\x3c/div\x3e",
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eRegExp\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#Properties_2"\x3eProperties of RegExp instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to all objects.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Arity" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Arity"\x3e\x3ccode\x3earity\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Caller"\x3e\x3ccode\x3ecaller\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Length" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eRegExp\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#Methods_2"\x3eMethods of RegExp instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe global \x3ccode\x3eRegExp\x3c/code\x3e object has no methods of its own, however, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Apply"\x3e\x3ccode\x3eapply\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Call"\x3e\x3ccode\x3ecall\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "RegExp_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x3ccode\x3eRegExp\x3c/code\x3e instances\x3c/h2\x3e\n\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cp\x3eSee also \x3ca title \x3d "en/JavaScript/Reference/Deprecated_Features#RegExp_Properties" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Deprecated_Features#RegExp_Properties"\x3eDeprecated RegExp Properties\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3eNote that several of the \x3ccode\x3eRegExp\x3c/code\x3e properties have both long and short (Perl-like) names. Both names always refer to the same value. Perl is the programming language from which JavaScript modeled its regular expressions.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/global" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/global"\x3e\x3ccode\x3eglobal\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eWhether to test the regular expression against all possible matches in a string, or only against the first.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/ignoreCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/ignoreCase"\x3e\x3ccode\x3eignoreCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eWhether to ignore case while attempting a match in a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/lastIndex" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/lastIndex"\x3e\x3ccode\x3elastIndex\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe index at which to start the next match.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/multiline" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/multiline"\x3e\x3ccode\x3emultiline\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eWhether or not to search in strings across multiple lines.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/source" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/source"\x3e\x3ccode\x3esource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe text of the pattern.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/sticky" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/sticky" class \x3d "new "\x3esticky\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding:0px 2px;"\x3eNew in \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/Firefox_3_for_developers"\x3eFirefox 3\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eWhether or not the search is sticky.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3c/dt\x3e See also \x3ca title \x3d "en/JavaScript/Reference/Deprecated_Features#RegExp_Methods" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Deprecated_Features#RegExp_Methods"\x3eDeprecated RegExp Methods\x3c/a\x3e\x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/exec" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec"\x3e\x3ccode\x3eexec\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExecutes a search for a match in its string parameter.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/test" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test"\x3e\x3ccode\x3etest\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eTests for a match in its string parameter.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns an object literal representing the specified object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e \x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cp\x3eSee also \x3ca title \x3d "en/JavaScript/Reference/Deprecated_Features#RegExp_Properties" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Deprecated_Features#RegExp_Properties"\x3eDeprecated RegExp Properties\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3eNote that several of the \x3ccode\x3eRegExp\x3c/code\x3e properties have both long and short (Perl-like) names. Both names always refer to the same value. Perl is the programming language from which JavaScript modeled its regular expressions.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/global" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/global"\x3e\x3ccode\x3eglobal\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eWhether to test the regular expression against all possible matches in a string, or only against the first.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/ignoreCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/ignoreCase"\x3e\x3ccode\x3eignoreCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eWhether to ignore case while attempting a match in a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/lastIndex" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/lastIndex"\x3e\x3ccode\x3elastIndex\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe index at which to start the next match.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/multiline" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/multiline"\x3e\x3ccode\x3emultiline\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eWhether or not to search in strings across multiple lines.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/source" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/source"\x3e\x3ccode\x3esource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe text of the pattern.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/sticky" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/sticky" class \x3d "new "\x3esticky\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding:0px 2px;"\x3eNew in \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/Firefox_3_for_developers"\x3eFirefox 3\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eWhether or not the search is sticky.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3c/dt\x3e See also \x3ca title \x3d "en/JavaScript/Reference/Deprecated_Features#RegExp_Methods" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Deprecated_Features#RegExp_Methods"\x3eDeprecated RegExp Methods\x3c/a\x3e\x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/exec" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec"\x3e\x3ccode\x3eexec\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExecutes a search for a match in its string parameter.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/test" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test"\x3e\x3ccode\x3etest\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eTests for a match in its string parameter.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns an object literal representing the specified object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e \x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Using_a_regular_expression_to_change_data_format"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using a regular expression to change data format\x3c/h3\x3e\n\x3cp\x3eThe following script uses the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/replace" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace"\x3ereplace\x3c/a\x3e method inherited by the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3eString\x3c/a\x3e instance to match a name in the format \x3cem\x3efirst last\x3c/em\x3e and output it in the format \x3cem\x3elast\x3c/em\x3e, \x3cem\x3efirst\x3c/em\x3e. In the replacement text, the script uses \x3ccode\x3e$1\x3c/code\x3e and \x3ccode\x3e$2\x3c/code\x3e to indicate the results of the corresponding matching parentheses in the regular expression pattern.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar re \x3d /(\\w+)\\s(\\w+)/;\nvar str \x3d \x26quot;John Smith\x26quot;;\nvar newstr \x3d str.replace(re, \x26quot;$2, $1\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis displays \x26quot;Smith, John\x26quot;.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Example:_Using_a_regular_expression_with_the_.22sticky.22_flag"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using a regular expression with the \x26quot;sticky\x26quot; flag\x3c/h3\x3e\n\x3cp\x3eThis example demonstrates how one could use the sticky flag on regular expressions to match individual lines of multiline input.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar text \x3d \x26quot;First line\\nsecond line\x26quot;;\nvar regex \x3d /(\\S+) line\\n?/y;\n\nvar match \x3d regex.exec(text);\nprint(match[1]);  // prints \x26quot;First\x26quot;\nprint(regex.lastIndex); // prints 11\n\nvar match2 \x3d regex.exec(text);\nprint(match2[1]); // prints \x26quot;Second\x26quot;\nprint(regex.lastIndex); // prints \x26quot;22\x26quot;\n\nvar match3 \x3d regex.exec(text);\nprint(match3 \x3d\x3d\x3d null); // prints \x26quot;true\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eOne can test at run-time whether the sticky flag is supported, using \x3ccode\x3etry\x26nbsp;{\x26nbsp;\x26hellip;\x26nbsp;} catch\x26nbsp;{\x26nbsp;\x26hellip;\x26nbsp;}\x3c/code\x3e. For this, either an \x3ccode\x3eeval(\x26hellip;)\x3c/code\x3e expression or the \x3ccode\x3eRegExp(\x3cvar\x3eregex-string\x3c/var\x3e,\x26nbsp;\x3cvar\x3eflags-string\x3c/var\x3e)\x3c/code\x3e syntax must be used (since the \x3ccode\x3e/\x3cvar\x3eregex\x3c/var\x3e/\x3cvar\x3eflags\x3c/var\x3e\x3c/code\x3e notation is processed at compile-time, so throws an exception before the \x3ccode\x3ecatch\x3c/code\x3e block is encountered). For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar supports_sticky;\ntry { RegExp(\'\',\'y\'); supports_sticky \x3d true; }\ncatch(e) { supports_sticky \x3d false; }\nalert(supports_sticky); // alerts \x26quot;false\x26quot; in Firefox 2, \x26quot;true\x26quot; in Firefox 3+\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Using_a_regular_expression_to_change_data_format"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using a regular expression to change data format\x3c/h3\x3e\n\x3cp\x3eThe following script uses the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/replace" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace"\x3ereplace\x3c/a\x3e method inherited by the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3eString\x3c/a\x3e instance to match a name in the format \x3cem\x3efirst last\x3c/em\x3e and output it in the format \x3cem\x3elast\x3c/em\x3e, \x3cem\x3efirst\x3c/em\x3e. In the replacement text, the script uses \x3ccode\x3e$1\x3c/code\x3e and \x3ccode\x3e$2\x3c/code\x3e to indicate the results of the corresponding matching parentheses in the regular expression pattern.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar re \x3d /(\\w+)\\s(\\w+)/;\nvar str \x3d \x26quot;John Smith\x26quot;;\nvar newstr \x3d str.replace(re, \x26quot;$2, $1\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis displays \x26quot;Smith, John\x26quot;.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Example:_Using_a_regular_expression_with_the_.22sticky.22_flag"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using a regular expression with the \x26quot;sticky\x26quot; flag\x3c/h3\x3e\n\x3cp\x3eThis example demonstrates how one could use the sticky flag on regular expressions to match individual lines of multiline input.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar text \x3d \x26quot;First line\\nsecond line\x26quot;;\nvar regex \x3d /(\\S+) line\\n?/y;\n\nvar match \x3d regex.exec(text);\nprint(match[1]);  // prints \x26quot;First\x26quot;\nprint(regex.lastIndex); // prints 11\n\nvar match2 \x3d regex.exec(text);\nprint(match2[1]); // prints \x26quot;Second\x26quot;\nprint(regex.lastIndex); // prints \x26quot;22\x26quot;\n\nvar match3 \x3d regex.exec(text);\nprint(match3 \x3d\x3d\x3d null); // prints \x26quot;true\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eOne can test at run-time whether the sticky flag is supported, using \x3ccode\x3etry\x26nbsp;{\x26nbsp;\x26hellip;\x26nbsp;} catch\x26nbsp;{\x26nbsp;\x26hellip;\x26nbsp;}\x3c/code\x3e. For this, either an \x3ccode\x3eeval(\x26hellip;)\x3c/code\x3e expression or the \x3ccode\x3eRegExp(\x3cvar\x3eregex-string\x3c/var\x3e,\x26nbsp;\x3cvar\x3eflags-string\x3c/var\x3e)\x3c/code\x3e syntax must be used (since the \x3ccode\x3e/\x3cvar\x3eregex\x3c/var\x3e/\x3cvar\x3eflags\x3c/var\x3e\x3c/code\x3e notation is processed at compile-time, so throws an exception before the \x3ccode\x3ecatch\x3c/code\x3e block is encountered). For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar supports_sticky;\ntry { RegExp(\'\',\'y\'); supports_sticky \x3d true; }\ncatch(e) { supports_sticky \x3d false; }\nalert(supports_sticky); // alerts \x26quot;false\x26quot; in Firefox 2, \x26quot;true\x26quot; in Firefox 3+\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "Browser_Compatibility"\x3e\x3c/span\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari (WebKit)\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eIE\x26nbsp;Phone\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Regular_Expressions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions"\x3eRegular Expressions\x3c/a\x3e chapter in the \x3ca title \x3d "en/Core_JavaScript_1.5_Guide" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide"\x3eJavaScript Guide\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Special characters in regular expressions","Properties","Methods","RegExp instances","Properties","Methods","Examples","Example: Using a regular expression to change data format","Example: Using a regular expression with the \x26quot;sticky\x26quot; flag","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String","title":"String","_id":"4eea837ba4c86c4dba000009","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3eString\x3c/code\x3e global object is a constructor for strings, or a sequence of characters.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3eString literals take the forms:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e\'string text\'\n\x26quot;string text\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eOr, using the \x3ccode\x3eString\x3c/code\x3e global object directly:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eString(thing)\nnew String(thing)\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ething\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAnything to be converted to a string.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eStrings are useful for holding data that can be represented in text form. Some of the most-used operations on strings are to check their \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/length"\x3elength\x3c/a\x3e\x3c/code\x3e, to build and concatenate them using the \x3ca title \x3d "en/JavaScript/Reference/Operators/String_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/String_Operators"\x3e+ and +\x3d string operators\x3c/a\x3e, and checking for the existence or location of substrings with the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substring" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring"\x3esubstring\x3c/a\x3e\x3c/code\x3e and \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substr" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr"\x3esubstr\x3c/a\x3e\x3c/code\x3e methods.\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Character_access"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCharacter access\x3c/h3\x3e\n\x3cp\x3eThere are two ways to access an individual character in a string. The first is the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3e\x3ccode\x3echarAt\x3c/code\x3e\x3c/a\x3e method:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ereturn \'cat\'.charAt(1); // returns \x26quot;a\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eThe other way is to treat the string as an array-like object, where individual characters correspond to a numerical index:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ereturn \'cat\'[1]; // returns \x26quot;a\x26quot;\x3c/pre\x3e\r\n        \n\x3cdiv class \x3d "note"\x3eArray-like character access (the second way above) is not part of ECMAScript 3. It is a JavaScript and ECMAScript 5 feature.\x3c/div\x3e\n\x3cp\x3eFor character access using bracket notation, attempting to delete or assign a value to these properties will not succeed. The properties involved are neither writable nor configurable. (See \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty"\x3eObject.defineProperty\x3c/a\x3e\x3c/code\x3e for more information.)\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Comparing_strings"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eComparing strings\x3c/h3\x3e\n\x3cp\x3eC developers have the \x3ccode\x3estrcmp()\x3c/code\x3e function for comparing strings. In JavaScript, you just use the \x3ca title \x3d "en/JavaScript/Reference/Operators/Comparison_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators"\x3eless-than and greater-than operators\x3c/a\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d \x26quot;a\x26quot;;\nvar b \x3d \x26quot;b\x26quot;;\nif (a \x26lt; b) // true\n  print(a + \x26quot; is less than \x26quot; + b);\nelse if (a \x26gt; b)\n  print(a + \x26quot; is greater than \x26quot; + b);\nelse\n  print(a + \x26quot; and \x26quot; + b + \x26quot; are equal.\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eA similar result can be achieved using the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/localeCompare" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/localeCompare"\x3e\x3ccode\x3elocaleCompare\x3c/code\x3e\x3c/a\x3e method inherited by \x3ccode\x3eString\x3c/code\x3e instances.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Distinction_between_string_primitives_and_String_objects"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDistinction between string primitives and \x3ccode\x3eString\x3c/code\x3e objects\x3c/h3\x3e\n\x3cp\x3eNote that JavaScript distinguishes between \x3ccode\x3eString\x3c/code\x3e objects and primitive string values. (The same is true of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3ebooleans\x3c/a\x3e and \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects"\x3enumbers\x3c/a\x3e.)\x3c/p\x3e\n\x3cp\x3eString literals (denoted by double or single quotes) and strings returned from \x3ccode\x3eString\x3c/code\x3e calls in a non-constructor context (i.e., without using the \x3ca title \x3d "en/JavaScript/Reference/Operators/Special/new" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/new"\x3e\x3ccode\x3enew\x3c/code\x3e keyword\x3c/a\x3e) are primitive strings. JavaScript automatically converts primitives and \x3ccode\x3eString\x3c/code\x3e objects, so that it\'s possible to use \x3ccode\x3eString\x3c/code\x3e object methods for primitive strings. In contexts where a method is to be invoked on a primitive string or a property lookup occurs, JavaScript will automatically wrap the string primitive and call the method or perform the property lookup.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar s_prim \x3d \x26quot;foo\x26quot;;\nvar s_obj \x3d new String(s_prim);\n\n0 \x26\x26 console.log(typeof s_prim); // Logs \x26quot;string\x26quot;\n0 \x26\x26 console.log(typeof s_obj);  // Logs \x26quot;object\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eString primitives and \x3ccode\x3eString\x3c/code\x3e objects also give different results when using \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e\x3c/code\x3e. Primitives passed to \x3ccode\x3eeval\x3c/code\x3e are treated as source code; \x3ccode\x3eString\x3c/code\x3e objects are treated as all other objects are, by returning the object. For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3es1 \x3d \x26quot;2 + 2\x26quot;;               // creates a string primitive\ns2 \x3d new String(\x26quot;2 + 2\x26quot;);   // creates a String object\n0 \x26\x26 console.log(eval(s1));      // returns the number 4\n0 \x26\x26 console.log(eval(s2));      // returns the string \x26quot;2 + 2\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eFor these reasons, code may break when it encounters \x3ccode\x3eString\x3c/code\x3e objects when it expects a primitive string instead, although generally authors need not worry about the distinction.\x3c/p\x3e\n\x3cp\x3eA \x3ccode\x3eString\x3c/code\x3e object can always be converted to its primitive counterpart with the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/valueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e method.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e0 \x26\x26 console.log(eval(s2.valueOf())); // returns the number 4\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Character_access"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCharacter access\x3c/h3\x3e\n\x3cp\x3eThere are two ways to access an individual character in a string. The first is the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3e\x3ccode\x3echarAt\x3c/code\x3e\x3c/a\x3e method:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ereturn \'cat\'.charAt(1); // returns \x26quot;a\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eThe other way is to treat the string as an array-like object, where individual characters correspond to a numerical index:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ereturn \'cat\'[1]; // returns \x26quot;a\x26quot;\x3c/pre\x3e\r\n        \n\x3cdiv class \x3d "note"\x3eArray-like character access (the second way above) is not part of ECMAScript 3. It is a JavaScript and ECMAScript 5 feature.\x3c/div\x3e\n\x3cp\x3eFor character access using bracket notation, attempting to delete or assign a value to these properties will not succeed. The properties involved are neither writable nor configurable. (See \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty"\x3eObject.defineProperty\x3c/a\x3e\x3c/code\x3e for more information.)\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Comparing_strings"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eComparing strings\x3c/h3\x3e\n\x3cp\x3eC developers have the \x3ccode\x3estrcmp()\x3c/code\x3e function for comparing strings. In JavaScript, you just use the \x3ca title \x3d "en/JavaScript/Reference/Operators/Comparison_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators"\x3eless-than and greater-than operators\x3c/a\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d \x26quot;a\x26quot;;\nvar b \x3d \x26quot;b\x26quot;;\nif (a \x26lt; b) // true\n  print(a + \x26quot; is less than \x26quot; + b);\nelse if (a \x26gt; b)\n  print(a + \x26quot; is greater than \x26quot; + b);\nelse\n  print(a + \x26quot; and \x26quot; + b + \x26quot; are equal.\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eA similar result can be achieved using the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/localeCompare" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/localeCompare"\x3e\x3ccode\x3elocaleCompare\x3c/code\x3e\x3c/a\x3e method inherited by \x3ccode\x3eString\x3c/code\x3e instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Distinction_between_string_primitives_and_String_objects"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDistinction between string primitives and \x3ccode\x3eString\x3c/code\x3e objects\x3c/h3\x3e\n\x3cp\x3eNote that JavaScript distinguishes between \x3ccode\x3eString\x3c/code\x3e objects and primitive string values. (The same is true of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3ebooleans\x3c/a\x3e and \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects"\x3enumbers\x3c/a\x3e.)\x3c/p\x3e\n\x3cp\x3eString literals (denoted by double or single quotes) and strings returned from \x3ccode\x3eString\x3c/code\x3e calls in a non-constructor context (i.e., without using the \x3ca title \x3d "en/JavaScript/Reference/Operators/Special/new" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/new"\x3e\x3ccode\x3enew\x3c/code\x3e keyword\x3c/a\x3e) are primitive strings. JavaScript automatically converts primitives and \x3ccode\x3eString\x3c/code\x3e objects, so that it\'s possible to use \x3ccode\x3eString\x3c/code\x3e object methods for primitive strings. In contexts where a method is to be invoked on a primitive string or a property lookup occurs, JavaScript will automatically wrap the string primitive and call the method or perform the property lookup.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar s_prim \x3d \x26quot;foo\x26quot;;\nvar s_obj \x3d new String(s_prim);\n\n0 \x26\x26 console.log(typeof s_prim); // Logs \x26quot;string\x26quot;\n0 \x26\x26 console.log(typeof s_obj);  // Logs \x26quot;object\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eString primitives and \x3ccode\x3eString\x3c/code\x3e objects also give different results when using \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e\x3c/code\x3e. Primitives passed to \x3ccode\x3eeval\x3c/code\x3e are treated as source code; \x3ccode\x3eString\x3c/code\x3e objects are treated as all other objects are, by returning the object. For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3es1 \x3d \x26quot;2 + 2\x26quot;;               // creates a string primitive\ns2 \x3d new String(\x26quot;2 + 2\x26quot;);   // creates a String object\n0 \x26\x26 console.log(eval(s1));      // returns the number 4\n0 \x26\x26 console.log(eval(s2));      // returns the string \x26quot;2 + 2\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eFor these reasons, code may break when it encounters \x3ccode\x3eString\x3c/code\x3e objects when it expects a primitive string instead, although generally authors need not worry about the distinction.\x3c/p\x3e\n\x3cp\x3eA \x3ccode\x3eString\x3c/code\x3e object can always be converted to its primitive counterpart with the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/valueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e method.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e0 \x26\x26 console.log(eval(s2.valueOf())); // returns the number 4\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eString\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String#Properties_2"\x3eProperties of String instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/prototype"\x3e\x3ccode\x3eprototype\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to a String object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Arity" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Arity"\x3e\x3ccode\x3earity\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Caller"\x3e\x3ccode\x3ecaller\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Length" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eString\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String#Methods_2"\x3eMethods of String instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fromCharCode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fromCharCode"\x3e\x3ccode\x3efromCharCode\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string created by using the specified sequence of Unicode values.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Apply"\x3e\x3ccode\x3eapply\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call" title \x3d "en/JavaScript/Reference/Global_Objects/Function/Call"\x3e\x3ccode\x3ecall\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Function/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "String_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x3ccode\x3eString\x3c/code\x3e instances\x3c/h2\x3e\n\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReflects the length of the string.\x3c/dd\x3e \x3cdt\x3e\x3cem\x3eN\x3c/em\x3e\x3c/dt\x3e \x3cdd\x3eUsed to access the character in the \x3cem\x3eN\x3c/em\x3eth position where \x3cem\x3eN\x3c/em\x3e is a positive integer between 0 and one less than the value of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e. These properties are read-only.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\n \x3cspan id \x3d "Methods_unrelated_to_HTML"\x3e\x3c/span\x3e\x3cspan id \x3d "Methods_unrelated_to_HTML"\x3e\x3c/span\x3e\x3ch4\x3eMethods unrelated to HTML\x3c/h4\x3e\n\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3e\x3ccode\x3echarAt\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the character at the specified index.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charCodeAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charCodeAt"\x3e\x3ccode\x3echarCodeAt\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a number indicating the Unicode value of the character at the given index.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/concat"\x3e\x3ccode\x3econcat\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCombines the text of two strings and returns a new string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf"\x3e\x3ccode\x3eindexOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the index within the calling String object of the first occurrence of the specified value, or -1 if not found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/lastIndexOf"\x3e\x3ccode\x3elastIndexOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the index within the calling String object of the last occurrence of the specified value, or -1 if not found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/localeCompare" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/localeCompare"\x3e\x3ccode\x3elocaleCompare\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/match" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match"\x3e\x3ccode\x3ematch\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eUsed to match a regular expression against a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/quote" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/quote"\x3e\x3ccode\x3equote\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Wraps the string in double quotes (\x26quot;\x3ccode\x3e\x26quot;\x3c/code\x3e\x26quot;).\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/replace" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace"\x3e\x3ccode\x3ereplace\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eUsed to find a match between a regular expression and a string, and to replace the matched substring with a new substring.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/search" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/search"\x3e\x3ccode\x3esearch\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExecutes the search for a match between a regular expression and a specified string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/slice"\x3e\x3ccode\x3eslice\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExtracts a section of a string and returns a new string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/split" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split"\x3e\x3ccode\x3esplit\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSplits a String object into an array of strings by separating the string into substrings.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substr" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr"\x3e\x3ccode\x3esubstr\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the characters in a string beginning at the specified location through the specified number of characters.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substring" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring"\x3e\x3ccode\x3esubstring\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the characters in a string between two indexes into the string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase"\x3e\x3ccode\x3etoLocaleLowerCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe characters within a string are converted to lower case while respecting the current locale. For most languages, this will return the same as \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3e\x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase"\x3e\x3ccode\x3etoLocaleUpperCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe characters within a string are converted to upper case while respecting the current locale. For most languages, this will return the same as \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3e\x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3e\x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the calling string value converted to lower case.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns an object literal representing the specified object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3e\x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the calling string value converted to uppercase.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trim" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim"\x3e\x3ccode\x3etrim\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Trims whitespace from the beginning and end of the string. Part of the ECMAScript 5 standard.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trimLeft" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimLeft"\x3e\x3ccode\x3etrimLeft\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Trims whitespace from the left side of the string.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trimRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight"\x3e\x3ccode\x3etrimRight\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Trims whitespace from the right side of the string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/valueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3e\x3ccode\x3eObject.prototype.valueOf\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\n \x3cspan id \x3d "HTML_wrapper_methods"\x3e\x3c/span\x3e\x3cspan id \x3d "HTML_wrapper_methods"\x3e\x3c/span\x3e\x3ch4\x3eHTML wrapper methods\x3c/h4\x3e\n\n\x3cp\x3e\n\n\x3cdiv style \x3d "overflow:hidden; border: 1px solid #FFB752; background-color: #FEE3BC; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\x3cp style \x3d "margin: 4px 0px 4px 0px;"\x3eNon-standard\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cp\x3e Each of the following methods returns a copy of the string wrapped inside the appropriate HTML tag.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/anchor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/anchor"\x3e\x3ccode\x3eanchor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;a name\x3d\x26quot;\x3cem\x3ename\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/a\x3e (hypertext target)\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/big" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/big"\x3e\x3ccode\x3ebig\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;big\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/blink" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/blink"\x3e\x3ccode\x3eblink\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;blink\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/bold" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/bold"\x3e\x3ccode\x3ebold\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;b\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fixed"\x3e\x3ccode\x3efixed\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;tt\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontcolor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontcolor"\x3e\x3ccode\x3efontcolor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;font color\x3d\x26quot;\x3cem\x3ecolor\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontsize" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontsize"\x3e\x3ccode\x3efontsize\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;font size\x3d\x26quot;\x3cem\x3esize\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/italics" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/italics"\x3e\x3ccode\x3eitalics\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;i\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/link" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/link"\x3e\x3ccode\x3elink\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;a href\x3d\x26quot;\x3cem\x3eurl\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/a\x3e (link to URL)\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/small" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/small"\x3e\x3ccode\x3esmall\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;small\x26gt;\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/strike" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/strike"\x3e\x3ccode\x3estrike\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;strike\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sub" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sub"\x3e\x3ccode\x3esub\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;sub\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sup" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sup"\x3e\x3ccode\x3esup\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;sup\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3eThese methods are of limited use, as they provide only a subset of the available HTML tags and attributes.\x3c/p\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\x3cp\x3eIt\'s possible to use \x3ccode\x3eString\x3c/code\x3e as a \x26quot;safer\x26quot; \x3ccode\x3e\x3ca title \x3d "en/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e alternative, as although it still normally calls the underlying \x3ccode\x3etoString\x3c/code\x3e, it also works for \x3ccode\x3enull\x3c/code\x3e and \x3ccode\x3eundefined\x3c/code\x3e. For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar outputStrings \x3d [];\nfor (let i \x3d 0, n \x3d inputValues.length; i \x26lt; n; ++i) {\n  outputStrings.push(String(inputValues[i]));\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReflects the length of the string.\x3c/dd\x3e \x3cdt\x3e\x3cem\x3eN\x3c/em\x3e\x3c/dt\x3e \x3cdd\x3eUsed to access the character in the \x3cem\x3eN\x3c/em\x3eth position where \x3cem\x3eN\x3c/em\x3e is a positive integer between 0 and one less than the value of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e. These properties are read-only.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\n \x3cspan id \x3d "Methods_unrelated_to_HTML"\x3e\x3c/span\x3e\x3cspan id \x3d "Methods_unrelated_to_HTML"\x3e\x3c/span\x3e\x3ch4\x3eMethods unrelated to HTML\x3c/h4\x3e\n\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3e\x3ccode\x3echarAt\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the character at the specified index.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charCodeAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charCodeAt"\x3e\x3ccode\x3echarCodeAt\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a number indicating the Unicode value of the character at the given index.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/concat"\x3e\x3ccode\x3econcat\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCombines the text of two strings and returns a new string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf"\x3e\x3ccode\x3eindexOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the index within the calling String object of the first occurrence of the specified value, or -1 if not found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/lastIndexOf"\x3e\x3ccode\x3elastIndexOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the index within the calling String object of the last occurrence of the specified value, or -1 if not found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/localeCompare" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/localeCompare"\x3e\x3ccode\x3elocaleCompare\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/match" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match"\x3e\x3ccode\x3ematch\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eUsed to match a regular expression against a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/quote" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/quote"\x3e\x3ccode\x3equote\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Wraps the string in double quotes (\x26quot;\x3ccode\x3e\x26quot;\x3c/code\x3e\x26quot;).\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/replace" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace"\x3e\x3ccode\x3ereplace\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eUsed to find a match between a regular expression and a string, and to replace the matched substring with a new substring.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/search" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/search"\x3e\x3ccode\x3esearch\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExecutes the search for a match between a regular expression and a specified string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/slice"\x3e\x3ccode\x3eslice\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExtracts a section of a string and returns a new string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/split" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split"\x3e\x3ccode\x3esplit\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSplits a String object into an array of strings by separating the string into substrings.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substr" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr"\x3e\x3ccode\x3esubstr\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the characters in a string beginning at the specified location through the specified number of characters.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substring" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring"\x3e\x3ccode\x3esubstring\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the characters in a string between two indexes into the string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase"\x3e\x3ccode\x3etoLocaleLowerCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe characters within a string are converted to lower case while respecting the current locale. For most languages, this will return the same as \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3e\x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase"\x3e\x3ccode\x3etoLocaleUpperCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe characters within a string are converted to upper case while respecting the current locale. For most languages, this will return the same as \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3e\x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3e\x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the calling string value converted to lower case.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns an object literal representing the specified object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3e\x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the calling string value converted to uppercase.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trim" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim"\x3e\x3ccode\x3etrim\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Trims whitespace from the beginning and end of the string. Part of the ECMAScript 5 standard.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trimLeft" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimLeft"\x3e\x3ccode\x3etrimLeft\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Trims whitespace from the left side of the string.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trimRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight"\x3e\x3ccode\x3etrimRight\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Trims whitespace from the right side of the string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/valueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3e\x3ccode\x3eObject.prototype.valueOf\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\n \x3cspan id \x3d "HTML_wrapper_methods"\x3e\x3c/span\x3e\x3cspan id \x3d "HTML_wrapper_methods"\x3e\x3c/span\x3e\x3ch4\x3eHTML wrapper methods\x3c/h4\x3e\n\n\x3cp\x3e\n\n\x3cdiv style \x3d "overflow:hidden; border: 1px solid #FFB752; background-color: #FEE3BC; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\x3cp style \x3d "margin: 4px 0px 4px 0px;"\x3eNon-standard\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cp\x3e Each of the following methods returns a copy of the string wrapped inside the appropriate HTML tag.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/anchor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/anchor"\x3e\x3ccode\x3eanchor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;a name\x3d\x26quot;\x3cem\x3ename\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/a\x3e (hypertext target)\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/big" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/big"\x3e\x3ccode\x3ebig\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;big\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/blink" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/blink"\x3e\x3ccode\x3eblink\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;blink\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/bold" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/bold"\x3e\x3ccode\x3ebold\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;b\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fixed"\x3e\x3ccode\x3efixed\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;tt\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontcolor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontcolor"\x3e\x3ccode\x3efontcolor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;font color\x3d\x26quot;\x3cem\x3ecolor\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontsize" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontsize"\x3e\x3ccode\x3efontsize\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;font size\x3d\x26quot;\x3cem\x3esize\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/italics" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/italics"\x3e\x3ccode\x3eitalics\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;i\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/link" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/link"\x3e\x3ccode\x3elink\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;a href\x3d\x26quot;\x3cem\x3eurl\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/a\x3e (link to URL)\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/small" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/small"\x3e\x3ccode\x3esmall\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;small\x26gt;\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/strike" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/strike"\x3e\x3ccode\x3estrike\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;strike\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sub" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sub"\x3e\x3ccode\x3esub\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;sub\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sup" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sup"\x3e\x3ccode\x3esup\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;sup\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3eThese methods are of limited use, as they provide only a subset of the available HTML tags and attributes.\x3c/p\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\x3cp\x3eIt\'s possible to use \x3ccode\x3eString\x3c/code\x3e as a \x26quot;safer\x26quot; \x3ccode\x3e\x3ca title \x3d "en/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e alternative, as although it still normally calls the underlying \x3ccode\x3etoString\x3c/code\x3e, it also works for \x3ccode\x3enull\x3c/code\x3e and \x3ccode\x3eundefined\x3c/code\x3e. For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar outputStrings \x3d [];\nfor (let i \x3d 0, n \x3d inputValues.length; i \x26lt; n; ++i) {\n  outputStrings.push(String(inputValues[i]));\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "Browser_Compatibility"\x3e\x3c/span\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari (WebKit)\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e0.2\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eIE\x26nbsp;Phone\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Character access","Comparing strings","Distinction between string primitives and String objects","Properties","Methods","String instances","Properties","Methods","Example","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer","title":"ArrayBuffer","_id":"4eea837fa4c86c4dba00000a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eArrayBuffer \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer#ArrayBuffer()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer#ArrayBuffer()"\x3eArrayBuffer\x3c/a\x3e(unsigned long length);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAttributes\x3c/h2\x3e\n\x3ctable class \x3d "standard-table" style \x3d "width: auto;"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ebyteLength\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of the array. This is established when the array is constructed and cannot be changed. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "ArrayBuffer()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eArrayBuffer()\x3c/h3\x3e\n\x3cp\x3eThe constructor accepts as input a byte length for the new buffer, and returns the newly-created \x3ccode\x3eArrayBuffer\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nArrayBuffer ArrayBuffer(\n\x26nbsp; unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3elength\x3c/dt\x3e \x3cdd\x3eThe size, in bytes, of the array buffer to create.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eArrayBuffer\x3c/code\x3e object of the specified size. Its contents are initialized to 0.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "ArrayBuffer()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eArrayBuffer()\x3c/h3\x3e\n\x3cp\x3eThe constructor accepts as input a byte length for the new buffer, and returns the newly-created \x3ccode\x3eArrayBuffer\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nArrayBuffer ArrayBuffer(\n\x26nbsp; unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3elength\x3c/dt\x3e \x3cdd\x3eThe size, in bytes, of the array buffer to create.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eArrayBuffer\x3c/code\x3e object of the specified size. Its contents are initialized to 0.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3elength\x3c/dt\x3e \x3cdd\x3eThe size, in bytes, of the array buffer to create.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eArrayBuffer\x3c/code\x3e object of the specified size. Its contents are initialized to 0.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\x3cp\x3eIn this example, we create a 32-byte buffer:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar buf \x3d new ArrayBuffer(32);\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e7\x3c/td\x3e \x3ctd\x3e4.0 (2)\n\x3c/td\x3e \x3ctd\x3e10\x3c/td\x3e \x3ctd\x3e11.6\x3c/td\x3e \x3ctd\x3e5.1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4.0\x3c/td\x3e \x3ctd\x3e4.0 (2)\n\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e4.2\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d "link-https" title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Method overview","Attributes","Methods","ArrayBuffer()","","","Example","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array","title":"Float32Array","_id":"4eea8381a4c86c4dba00000b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Constructors"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructors\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat32Array \x3ca title \x3d "en/JavaScript typed arrays/Float32Array#Float32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array#Float32Array()"\x3eFloat32Array\x3c/a\x3e(unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat32Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Float32Array#Float32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array#Float32Array%28%29"\x3eFloat32Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat32Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Float32Array#Float32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array#Float32Array%28%29"\x3eFloat32Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(sequence\x26lt;type\x26gt; array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat32Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Float32Array#Float32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array#Float32Array%28%29"\x3eFloat32Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(type[] array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat32Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#subarray()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#subarray%28%29"\x3esubarray\x3c/a\x3e(long begin, optional long end);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAttributes\x3c/h2\x3e\n\x3ctable style \x3d "width: auto;" class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe number of entries in the array. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Constants"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstants\x3c/h2\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructor\x3c/h2\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eFloat32Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nFloat32Array Float32Array(\n\x26nbsp; unsigned long length\n);\n\nFloat32Array Float32Array(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array\n);\n\nFloat32Array Float32Array(\n\x26nbsp; sequence\x26lt;type\x26gt; array\n);\n\nFloat32Array Float32Array(\n\x26nbsp; ArrayBuffer buffer,\n\x26nbsp; optional unsigned long byteOffset,\n\x26nbsp; optional unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3cspan style \x3d "font-family: monospace;"\x3eUint8\x3c/span\x3e\x3ccode\x3eArray\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 32-bit floating point number before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eFloat32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eFloat32Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eFloat32Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of 32-bit floats, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 32-bit float.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 32-bit float.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eFloat32Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3cspan style \x3d "font-family: monospace;"\x3eUint8\x3c/span\x3e\x3ccode\x3eArray\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 32-bit floating point number before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eFloat32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eFloat32Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eFloat32Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of 32-bit floats, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 32-bit float.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 32-bit float.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eFloat32Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eFloat32Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eFloat32Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nFloat32Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eFloat32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eFloat32Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eFloat32Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eFloat32Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nFloat32Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eFloat32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eFloat32Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eFloat32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eFloat32Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_17"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" class \x3d " link-https" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Constructors","Method overview","Attributes","Constants","Element size","Constructor","","","","","Methods","set()","","subarray()","","","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array","title":"Float64Array","_id":"4eea8387a4c86c4dba00000c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Constructors"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructors\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat64Array \x3ca title \x3d "en/JavaScript typed arrays/Float64Array#Float64Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array#Float64Array%28%29"\x3eFloat64Array\x3c/a\x3e(unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat64Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Float64Array#Float64Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array#Float64Array%28%29"\x3eFloat64Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat64Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Float64Array#Float64Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array#Float64Array%28%29"\x3eFloat64Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(sequence\x26lt;type\x26gt; array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat64Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Float64Array#Float64Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array#Float64Array%28%29"\x3eFloat64Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(type[] array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eFloat64Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#subarray()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#subarray%28%29"\x3esubarray\x3c/a\x3e(long begin, optional long end);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAttributes\x3c/h2\x3e\n\x3ctable style \x3d "width: auto;" class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe number of entries in the array. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Constants"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstants\x3c/h2\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e8\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e8\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructor\x3c/h2\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eFloat64Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nFloat64Array Float64Array(\n\x26nbsp; unsigned long length\n);\n\nFloat64Array Float64Array(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array\n);\n\nFloat64Array Float64Array(\n\x26nbsp; sequence\x26lt;type\x26gt; array\n);\n\nFloat64Array Float64Array(\n\x26nbsp; ArrayBuffer buffer,\n\x26nbsp; optional unsigned long byteOffset,\n\x26nbsp; optional unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3cspan style \x3d "font-family: monospace;"\x3eUint8\x3c/span\x3e\x3ccode\x3eArray\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 64-bit floating point number before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eFloat64Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eFloat64Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eFloat64Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of 64-bit floats, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 64-bit float.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 64-bit float.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eFloat64Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3cspan style \x3d "font-family: monospace;"\x3eUint8\x3c/span\x3e\x3ccode\x3eArray\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 64-bit floating point number before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eFloat64Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eFloat64Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eFloat64Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of 64-bit floats, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 64-bit float.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 64-bit float.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eFloat64Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eFloat64Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eFloat64Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nFloat64Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eFloat64Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eFloat64Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eFloat64Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eFloat64Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nFloat64Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eFloat64Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eFloat64Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eFloat64Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eFloat64Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_17"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" class \x3d " link-https" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Constructors","Method overview","Attributes","Constants","Element size","Constructor","","","","","Methods","set()","","subarray()","","","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array","title":"Int16Array","_id":"4eea8387a4c86c4dba00000d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Constructors"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructors\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt16Array \x3ca title \x3d "en/JavaScript typed arrays/Int16Array#Int16Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array#Int16Array()"\x3eInt16Array\x3c/a\x3e(unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt16Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Int16Array#Int16Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array#Int16Array%28%29"\x3eInt16Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt16Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Int16Array#Int16Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array#Int16Array%28%29"\x3eInt16Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(sequence\x26lt;type\x26gt; array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt16Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Int16Array#Int16Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array#Int16Array%28%29"\x3eInt16Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(type[] array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt16Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#subarray()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#subarray%28%29"\x3esubarray\x3c/a\x3e(long begin, optional long end);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAttributes\x3c/h2\x3e\n\x3ctable class \x3d "standard-table" style \x3d "width: auto;"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe number of entries in the array. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Constants"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstants\x3c/h2\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e2\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e2\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructor\x3c/h2\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eInt16Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nInt16Array Int16Array(\n\x26nbsp; unsigned long length\n);\n\nInt16Array Int16Array(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array\n);\n\nInt16Array Int16Array(\n\x26nbsp; sequence\x26lt;type\x26gt; array\n);\n\nInt16Array Int16Array(\n\x26nbsp; ArrayBuffer buffer,\n\x26nbsp; optional unsigned long byteOffset,\n\x26nbsp; optional unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt32Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 16-bit signed integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eInt16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eInt16Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eInt16Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of signed 16-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 16-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 16-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eInt16Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt32Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 16-bit signed integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eInt16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eInt16Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eInt16Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of signed 16-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 16-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 16-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eInt16Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eInt16Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eInt16Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nInt16Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eInt16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eInt16Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eInt16Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eInt16Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nInt16Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eInt16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eInt16Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eInt16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eInt16Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_17"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d " link-https" title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Constructors","Method overview","Attributes","Constants","Element size","Constructor","","","","","Methods","set()","","subarray()","","","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array","title":"Int32Array","_id":"4eea8388a4c86c4dba00000e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Constructors"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructors\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt32Array \x3ca title \x3d "en/JavaScript typed arrays/Int32Array#Int32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array#Int32Array()"\x3eInt32Array\x3c/a\x3e(unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt32Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Int32Array#Int32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array#Int32Array%28%29"\x3eInt32Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt32Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Int32Array#Int32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array#Int32Array%28%29"\x3eInt32Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(sequence\x26lt;type\x26gt; array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt32Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Int32Array#Int32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array#Int32Array%28%29"\x3eInt32Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(type[] array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt32Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#subarray()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#subarray%28%29"\x3esubarray\x3c/a\x3e(long begin, optional long end);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAttributes\x3c/h2\x3e\n\x3ctable class \x3d "standard-table" style \x3d "width: auto;"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe number of entries in the array. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Constants"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstants\x3c/h2\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructor\x3c/h2\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eInt32Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nInt32Array Int32Array(\n\x26nbsp; unsigned long length\n);\n\nInt32Array Int32Array(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array\n);\n\nInt32Array Int32Array(\n\x26nbsp; sequence\x26lt;type\x26gt; array\n);\n\nInt32Array Int32Array(\n\x26nbsp; ArrayBuffer buffer,\n\x26nbsp; optional unsigned long byteOffset,\n\x26nbsp; optional unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt16Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 32-bit signed integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eInt32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eInt32Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eInt32Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of signed 32-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 32-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 32-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eInt32Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt16Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 32-bit signed integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eInt32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eInt32Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eInt32Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of signed 32-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 32-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 32-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eInt32Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eInt32Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eInt32Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nInt32Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eInt32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to one past the last element in the array to be referenced by the new \x3ccode\x3eInt32Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eInt32Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eInt32Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nInt32Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eInt32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to one past the last element in the array to be referenced by the new \x3ccode\x3eInt32Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eInt32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to one past the last element in the array to be referenced by the new \x3ccode\x3eInt32Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_17"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d "link-https" title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Constructors","Method overview","Attributes","Constants","Element size","Constructor","","","","","Methods","set()","","subarray()","","","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array","title":"Int8Array","_id":"4eea838aa4c86c4dba00000f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Constructors"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructors\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt8Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#Int8Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#Int8Array%28%29"\x3eInt8Array\x3c/a\x3e(unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt8Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#Int8Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#Int8Array%28%29"\x3eInt8Array\x3c/a\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt8Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#Int8Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#Int8Array%28%29"\x3eInt8Array\x3c/a\x3e(sequence\x26lt;type\x26gt; array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt8Array\x26nbsp;\x3ca title \x3d "en/JavaScript typed arrays/Int8Array#Int8Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#Int8Array%28%29"\x3eInt8Array\x3c/a\x3e(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set()"\x3eset\x3c/a\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set()"\x3eset\x3c/a\x3e(type[] array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eInt8Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#subarray()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#subarray()"\x3esubarray\x3c/a\x3e(long begin, optional long end);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAttributes\x3c/h2\x3e\n\x3ctable style \x3d "width: auto;" class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe number of entries in the array; for these 8-bit values, this is the same as the size of the array in bytes. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Constants"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstants\x3c/h2\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructor\x3c/h2\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eInt8Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nInt8Array Int8Array(\n\x26nbsp; unsigned long length\n);\n\nInt8Array Int8Array(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array\n);\n\nInt8Array Int8Array(\n\x26nbsp; sequence\x26lt;type\x26gt; array\n);\n\nInt8Array Int8Array(\n\x26nbsp; ArrayBuffer buffer,\n\x26nbsp; optional unsigned long byteOffset,\n\x26nbsp; optional unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt32Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to an 8-bit integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eInt8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eInt8Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eInt8Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of signed 8-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to an 8-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to an 8-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eInt8Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt32Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to an 8-bit integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eInt8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eInt8Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eInt8Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of signed 8-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to an 8-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to an 8-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eInt8Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdl\x3e\x3c/dl\x3e \x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e \x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e \x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e \x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e \x3c/dl\x3e \x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e \x3cp\x3eReturns a new \x3ccode\x3eInt8Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eInt8Array\x3c/code\x3e object.\x3c/p\x3e \x3cpre\x3e\nInt8Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e \x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eInt8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eInt8Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e \x3c/dl\x3e \x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e \x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e \x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e \x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e \x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e \x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e \x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e \x3c/dl\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e \x3c/dl\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e \x3cp\x3eReturns a new \x3ccode\x3eInt8Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eInt8Array\x3c/code\x3e object.\x3c/p\x3e \x3cpre\x3e\nInt8Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e \x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eInt8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eInt8Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e \x3c/dl\x3e \x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e \x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e \x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eInt8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eInt8Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e \x3c/dl\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e \x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e \x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_17"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" class \x3d " link-https" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Constructors","Method overview","Attributes","Constants","Element size","Constructor","","","","","Methods","set()","","subarray()","","","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array","title":"Uint16Array","_id":"4eea838da4c86c4dba000010","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Constructors"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructors\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint16Array \x3ca title \x3d "en/JavaScript typed arrays/Uint16Array#Uint16Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array#Uint16Array()"\x3eUint16Array\x3c/a\x3e(unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint16Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint16Array#Uint16Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array#Uint16Array%28%29"\x3eUint16Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint16Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint16Array#Uint16Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array#Uint16Array%28%29"\x3eUint16Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(sequence\x26lt;type\x26gt; array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint16Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint16Array#Uint16Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array#Uint16Array%28%29"\x3eUint16Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(type[] array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint16Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#subarray()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#subarray%28%29"\x3esubarray\x3c/a\x3e(long begin, optional long end);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAttributes\x3c/h2\x3e\n\x3ctable class \x3d "standard-table" style \x3d "width: auto;"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe number of entries in the array. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Constants"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstants\x3c/h2\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e2\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e2\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructor\x3c/h2\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eUint16Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nUint16Array Uint16Array(\n\x26nbsp; unsigned long length\n);\n\nUint16Array Uint16Array(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array\n);\n\nUint16Array Uint16Array(\n\x26nbsp; sequence\x26lt;type\x26gt; array\n);\n\nUint16Array Uint16Array(\n\x26nbsp; ArrayBuffer buffer,\n\x26nbsp; optional unsigned long byteOffset,\n\x26nbsp; optional unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt32Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 16-bit unsigned integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eUint16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eUint16Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eUint16Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of unsigned 16-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 16-bit unsigned integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 16-bit unsigned integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eUint16Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt32Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 16-bit unsigned integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eUint16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eUint16Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eUint16Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of unsigned 16-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 16-bit unsigned integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 16-bit unsigned integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eUint16Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eUint16Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eUint16Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nUint16Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eUint16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eUint16Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eUint16Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eUint16Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nUint16Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eUint16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eUint16Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eUint16Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eUint16Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_17"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d " link-https" title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Constructors","Method overview","Attributes","Constants","Element size","Constructor","","","","","Methods","set()","","subarray()","","","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array","title":"Uint32Array","_id":"4eea8390a4c86c4dba000011","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Constructors"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructors\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint32Array \x3ca title \x3d "en/JavaScript typed arrays/Uint32Array#Uint32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array#Uint32Array()"\x3eUint32Array\x3c/a\x3e(unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint32Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint32Array#Uint32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array#Uint32Array%28%29"\x3eUint32Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint32Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint32Array#Uint32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array#Uint32Array%28%29"\x3eUint32Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(sequence\x26lt;type\x26gt; array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint32Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint32Array#Uint32Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array#Uint32Array%28%29"\x3eUint32Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(type[] array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint32Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#subarray()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#subarray%28%29"\x3esubarray\x3c/a\x3e(long begin, optional long end);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAttributes\x3c/h2\x3e\n\x3ctable style \x3d "width: auto;" class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe number of entries in the array. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Constants"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstants\x3c/h2\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructor\x3c/h2\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eUint32Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nUint32Array Uint32Array(\n\x26nbsp; unsigned long length\n);\n\nUint32Array Uint32Array(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array\n);\n\nUint32Array Uint32Array(\n\x26nbsp; sequence\x26lt;type\x26gt; array\n);\n\nUint32Array Uint32Array(\n\x26nbsp; ArrayBuffer buffer,\n\x26nbsp; optional unsigned long byteOffset,\n\x26nbsp; optional unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt16Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 32-bit unsigned integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eUint32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eUint32Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eUint32Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of unsigned 32-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 32-bit unsigned integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 32-bit unsigned integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eUint32Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt16Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to a 32-bit unsigned integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eUint32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eUint32Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eUint32Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of unsigned 32-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to a 32-bit unsigned integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to a 32-bit unsigned integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eUint32Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eUint32Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eUint32Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nUint32Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eUint32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eUint32Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eUint32Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eUint32Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nUint32Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eUint32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eUint32Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eUint32Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the last element in the array to be referenced by the new \x3ccode\x3eUint32Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either \x3ccode\x3ebegin\x3c/code\x3e or \x3ccode\x3eend\x3c/code\x3e is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_17"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" class \x3d " link-https" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Constructors","Method overview","Attributes","Constants","Element size","Constructor","","","","","Methods","set()","","subarray()","","","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array","title":"Uint8Array","_id":"4eea8390a4c86c4dba000012","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Constructors"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructors\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint8Array \x3ca title \x3d "en/JavaScript typed arrays/Uint8Array#Int8Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array#Int8Array%28%29"\x3eUint8Array\x3c/a\x3e(unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint8Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint8Array#Int8Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array#Int8Array%28%29"\x3eUint8Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint8Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint8Array#Int8Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array#Int8Array%28%29"\x3eUint8Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(sequence\x26lt;type\x26gt; array);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint8Array \x3c/code\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint8Array#Int8Array()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array#Int8Array%28%29"\x3eUint8Array\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In these methods, \x3ccode\x3e\x3cem\x3eTypedArray\x3c/em\x3e\x3c/code\x3e represents any of the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3etyped array object types\x3c/a\x3e.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(\x3cem\x3eTypedArray\x3c/em\x3e array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#set()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#set%28%29"\x3eset\x3c/a\x3e(type[] array, optional unsigned long offset);\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eUint8Array \x3ca title \x3d "en/JavaScript typed arrays/Int8Array#subarray()" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#subarray%28%29"\x3esubarray\x3c/a\x3e(long begin, optional long end);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAttributes\x3c/h2\x3e\n\x3ctable style \x3d "width: auto;" class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe number of entries in the array; for these 8-bit values, this is the same as the size of the array in bytes. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Constants"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstants\x3c/h2\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Element_size"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eElement size\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eConstant\x3c/td\x3e \x3ctd class \x3d "header"\x3eValue\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eBYTES_PER_ELEMENT\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3eThe size, in bytes, of each array element.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructor\x3c/h2\x3e\n\x3cp\x3eReturns a new Uint8Array object.\x3c/p\x3e\n\x3cpre\x3e\nUint8Array Uint8Array(\n\x26nbsp; unsigned long length\n);\n\nUint8Array Uint8Array(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array\n);\n\nUint8Array Uint8Array(\n\x26nbsp; sequence\x26lt;type\x26gt; array\n);\n\nUint8Array Uint8Array(\n\x26nbsp; ArrayBuffer buffer,\n\x26nbsp; optional unsigned long byteOffset,\n\x26nbsp; optional unsigned long length\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt32Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to an 8-bit unsigned integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eUint8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eUint8Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eUint8Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of signed 8-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to an 8-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to an 8-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eUint8Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the array view will match the buffer\'s length.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn object of any of the typed array types (such as \x3ccode\x3eInt32Array\x3c/code\x3e), or a sequence of objects of a particular type, to copy into a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e. Each value in the source array is converted to an 8-bit unsigned integer before being copied into the new array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eUint8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the \x3ccode\x3eUint8Array\x3c/code\x3e\'s view of the buffer will start with the first byte.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eUint8Array\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe first form of the constructor, accepting only a length, creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that can hold the specified number of signed 8-bit integers, then creates and returns a typed array view referring to that new buffer. The \x3ccode\x3elength\x3c/code\x3e must be specified in this case.\x3c/p\x3e\n\x3cp\x3eThe second form creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified array, except with each element in the new array converted to an 8-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe third form of the constructor likewise creates a new \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e object that is a duplicate of the specified JavaScript array, with each element in the new array converted to an 8-bit signed integer.\x3c/p\x3e\n\x3cp\x3eThe final form of the constructor creates a new \x3ccode\x3eUint8Array\x3c/code\x3e object, using the specified \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e as its storage. This lets you access the existing buffer in a different format. If specified, the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e parameters let you create the new view to only a portion of the buffer.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe specified \x3ccode\x3ebyteOffset\x3c/code\x3e isn\'t a multiple of the element size, or the \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3elength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eUint8Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eUint8Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nUint8Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eUint8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the element after last element in the array to be referenced by the new \x3ccode\x3eUint8Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either begin or end is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "set()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eset()\x3c/h3\x3e\n\x3cp\x3eSets multiple values in the typed array, reading input values from a specified array.\x3c/p\x3e\n\x3cpre\x3e\nvoid set(\n\x26nbsp; \x3cem\x3eTypedArray\x3c/em\x3e array,\n\x26nbsp; optional unsigned long offset\n);\n\nvoid set(\n\x26nbsp; type[] array,\n\x26nbsp; optional unsigned long offset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying \x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e\x3c/code\x3e; the browser will intelligently copy the source range of the buffer to the destination range.\x3c/dd\x3e \x3cdt\x3eoffset \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset into the target array at which to begin writing values from the source \x3ccode\x3earray\x3c/code\x3e. If you omit this value, 0 is assumed (that is, the source \x3ccode\x3earray\x3c/code\x3e will overwrite values in the target array starting at index 0).\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "subarray()"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3esubarray()\x3c/h3\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eUint8Array\x3c/code\x3e view on the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e store for this \x3ccode\x3eUint8Array\x3c/code\x3e object.\x3c/p\x3e\n\x3cpre\x3e\nUint8Array subarray(\n\x26nbsp; long begin,\n\x26nbsp; optional long end\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eUint8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the element after last element in the array to be referenced by the new \x3ccode\x3eUint8Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either begin or end is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset to the first element in the array to be referenced by the new \x3ccode\x3eUint8Array\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset to the element after last element in the array to be referenced by the new \x3ccode\x3eUint8Array\x3c/code\x3e object; if not specified, all elements from the one specified by \x3ccode\x3ebegin\x3c/code\x3e to the end of the array are included in the new view.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Notes_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eNotes\x3c/h6\x3e\n\x3cp\x3eThe range specified by \x3ccode\x3ebegin\x3c/code\x3e and \x3ccode\x3eend\x3c/code\x3e is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it\'s clamped to zero. If either begin or end is negative, it refers to an index from the end of the array instead of from the beginning.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Keep in mind that this is creating a new view on the existing buffer; changes to the new object\'s contents will impact the original object and vice versa.\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_17"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" class \x3d " link-https" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Constructors","Method overview","Attributes","Constants","Element size","Constructor","","","","","Methods","set()","","subarray()","","","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error","title":"Error","_id":"4eea8392a4c86c4dba000013","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eCreates an error object.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3enew Error([\x3cem\x3emessage\x3c/em\x3e[, \x3cem\x3efileName\x3c/em\x3e[, \x3cem\x3elineNumber\x3c/em\x3e]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3emessage\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eHuman-readable description of the error\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efileName\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the file containing the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elineNumber\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe line number of the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eRuntime errors result in new \x3ccode\x3eError\x3c/code\x3e objects being created and thrown.\x3c/p\x3e\n\x3cp\x3eThis page documents the use of the \x3ccode\x3eError\x3c/code\x3e object itself and its use as a constructor function. For a list of properties and methods inherited by \x3ccode\x3eError\x3c/code\x3e instances, see \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3eError.prototype\x3c/a\x3e.\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Error_types"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eError types\x3c/h4\x3e\n\x3cp\x3eBesides the generic \x3ccode\x3eError\x3c/code\x3e constructor, there are six other core error constructors in JavaScript. For client-side exceptions, see \x3ca title \x3d "en/JavaScript/Guide/Statements#Exception Handling Statements" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Statements#Exception_Handling_Statements"\x3eException Handling Statements\x3c/a\x3e.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError"\x3eEvalError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs regarding the global function \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval()\x3c/a\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs when a numeric variable or parameter is outside of its valid range\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError"\x3eReferenceError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs when de-referencing an invalid reference\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError"\x3eSyntaxError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing a syntax error that occurs while parsing code in \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval()\x3c/a\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs when a variable or parameter is not of a valid type\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError"\x3eURIError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs when \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/encodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI"\x3eencodeURI()\x3c/a\x3e or \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/decodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURI"\x3edecodeURI()\x3c/a\x3e are passed invalid parameters\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Custom_Error_Types"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eCustom Error Types\x3c/h4\x3e\n\x3cp\x3eThe Error object can be extended to create Error Types for your project.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Create a new object, that prototypally inherits from the Error constructor.\nfunction MyError(message) {\n    this.name \x3d \x26quot;MyError\x26quot;;\n    this.message \x3d message || \x26quot;Default Message\x26quot;;\n}\nMyError.prototype \x3d new Error();\nMyError.prototype.constructor \x3d MyError;\n\ntry {\n    throw new MyError();\n} catch (e) {\n    0 \x26\x26 console.log(e.name);     // \x26quot;MyError\x26quot;\n    0 \x26\x26 console.log(e.message);  // \x26quot;Default Message\x26quot;\n}\n\ntry {\n    throw new MyError(\x26quot;custom message\x26quot;);\n} catch (e) {\n    0 \x26\x26 console.log(e.name);     // \x26quot;MyError\x26quot;\n    0 \x26\x26 console.log(e.message);  // \x26quot;custom message\x26quot;\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Error_types"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eError types\x3c/h4\x3e\n\x3cp\x3eBesides the generic \x3ccode\x3eError\x3c/code\x3e constructor, there are six other core error constructors in JavaScript. For client-side exceptions, see \x3ca title \x3d "en/JavaScript/Guide/Statements#Exception Handling Statements" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Statements#Exception_Handling_Statements"\x3eException Handling Statements\x3c/a\x3e.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError"\x3eEvalError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs regarding the global function \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval()\x3c/a\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs when a numeric variable or parameter is outside of its valid range\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError"\x3eReferenceError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs when de-referencing an invalid reference\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError"\x3eSyntaxError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing a syntax error that occurs while parsing code in \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval()\x3c/a\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs when a variable or parameter is not of a valid type\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError"\x3eURIError\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCreates an instance representing an error that occurs when \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/encodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI"\x3eencodeURI()\x3c/a\x3e or \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/decodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURI"\x3edecodeURI()\x3c/a\x3e are passed invalid parameters\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Custom_Error_Types"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eCustom Error Types\x3c/h4\x3e\n\x3cp\x3eThe Error object can be extended to create Error Types for your project.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Create a new object, that prototypally inherits from the Error constructor.\nfunction MyError(message) {\n    this.name \x3d \x26quot;MyError\x26quot;;\n    this.message \x3d message || \x26quot;Default Message\x26quot;;\n}\nMyError.prototype \x3d new Error();\nMyError.prototype.constructor \x3d MyError;\n\ntry {\n    throw new MyError();\n} catch (e) {\n    0 \x26\x26 console.log(e.name);     // \x26quot;MyError\x26quot;\n    0 \x26\x26 console.log(e.message);  // \x26quot;Default Message\x26quot;\n}\n\ntry {\n    throw new MyError(\x26quot;custom message\x26quot;);\n} catch (e) {\n    0 \x26\x26 console.log(e.name);     // \x26quot;MyError\x26quot;\n    0 \x26\x26 console.log(e.message);  // \x26quot;custom message\x26quot;\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Properties_2"\x3eProperties of Error instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to \x3ccode\x3eError\x3c/code\x3e instances.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acaller" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:caller" class \x3d " new"\x3ecaller\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aconstructor" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:constructor" class \x3d " new"\x3econstructor\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Alength" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:length" class \x3d " new"\x3elength\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:name" class \x3d " new"\x3ename\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Methods_2"\x3eMethods of Error instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe global \x3ccode\x3eError\x3c/code\x3e object contains no methods of its own, however, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aapply" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:apply" class \x3d " new"\x3eapply\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acall" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:call" class \x3d " new"\x3ecall\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toString" class \x3d " new"\x3etoString\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Error_instances"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3eError\x3c/code\x3e instances\x3c/h3\x3e\n\x3cp\x3eAll \x3cstrong\x3e\x3ccode\x3eError\x3c/code\x3e\x3c/strong\x3e instances and instances of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error#Error_types" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types"\x3enon-generic errors\x3c/a\x3e inherit from \x3cstrong\x3e\x3ccode\x3eError.prototype\x3c/code\x3e\x3c/strong\x3e. As with all constructor functions, you can use the prototype of the constructor to add properties or methods to all instances created with that constructor.\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3\x3eProperties\x3c/h3\x3e\n\x3cspan id \x3d "Standard_properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Standard_properties"\x3e\x3c/span\x3e\x3ch4\x3eStandard properties\x3c/h4\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError message.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/name"\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cspan id \x3d "Vendor-specific_extensions"\x3e\x3c/span\x3e\x3cspan id \x3d "Vendor-specific_extensions"\x3e\x3c/span\x3e\x3ch4\x3eVendor-specific extensions\x3c/h4\x3e\n\x3cp\x3e\n\n\x3cdiv style \x3d "overflow:hidden; border: 1px solid #FFB752; background-color: #FEE3BC; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\x3cp style \x3d "margin: 4px 0px 4px 0px;"\x3eNon-standard\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cspan id \x3d "Microsoft"\x3e\x3c/span\x3e\x3cspan id \x3d "Microsoft"\x3e\x3c/span\x3e\x3ch5\x3eMicrosoft\x3c/h5\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/description" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/description" class \x3d "new "\x3edescription\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError description. Similar to \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/number" class \x3d "new "\x3enumber\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cspan id \x3d "Mozilla"\x3e\x3c/span\x3e\x3cspan id \x3d "Mozilla"\x3e\x3c/span\x3e\x3ch5\x3eMozilla\x3c/h5\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/fileName" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/fileName" class \x3d "new "\x3efileName\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3ePath to file that raised this error.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/lineNumber" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/lineNumber" class \x3d "new "\x3elineNumber\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eLine number in file that raised this error.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/stack" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack"\x3estack\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eStack trace.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3\x3eMethods\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eReturns a string containing the source of the specified \x3ccode\x3eError\x3c/code\x3e object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_Throwing_a_generic_error"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Throwing a generic error\x3c/h4\x3e\n\x3cp\x3eUsually you create an Error object with the intention of raising it using the \x3ca title \x3d "en/JavaScript/Reference/Statements/throw" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/throw"\x3ethrow\x3c/a\x3e keyword. You can handle the error using the \x3ca title \x3d "en/JavaScript/Reference/Statements/try...catch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch"\x3etry...catch\x3c/a\x3e construct:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n    throw new Error(\x26quot;Whoops!\x26quot;);\n} catch (e) {\n    alert(e.name + \x26quot;: \x26quot; + e.message);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Handling_a_specific_error"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Handling a specific error\x3c/h4\x3e\n\x3cp\x3e You can choose to handle only specific error types by testing the error type with the error\'s \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3econstructor\x3c/a\x3e property or, if you\'re writing for modern JavaScript engines, \x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/instanceof_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/instanceof"\x3einstanceof\x3c/a\x3e keyword:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n    foo.bar();\n} catch (e) {\n    if (e instanceof EvalError) {\n        alert(e.name + \x26quot;: \x26quot; + e.message);\n    } else if (e instanceof RangeError) {\n        alert(e.name + \x26quot;: \x26quot; + e.message);\n    }\n    // ... etc\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_Throwing_a_generic_error"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Throwing a generic error\x3c/h4\x3e\n\x3cp\x3eUsually you create an Error object with the intention of raising it using the \x3ca title \x3d "en/JavaScript/Reference/Statements/throw" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/throw"\x3ethrow\x3c/a\x3e keyword. You can handle the error using the \x3ca title \x3d "en/JavaScript/Reference/Statements/try...catch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch"\x3etry...catch\x3c/a\x3e construct:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n    throw new Error(\x26quot;Whoops!\x26quot;);\n} catch (e) {\n    alert(e.name + \x26quot;: \x26quot; + e.message);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Handling_a_specific_error"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Handling a specific error\x3c/h4\x3e\n\x3cp\x3e You can choose to handle only specific error types by testing the error type with the error\'s \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3econstructor\x3c/a\x3e property or, if you\'re writing for modern JavaScript engines, \x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/instanceof_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/instanceof"\x3einstanceof\x3c/a\x3e keyword:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n    foo.bar();\n} catch (e) {\n    if (e instanceof EvalError) {\n        alert(e.name + \x26quot;: \x26quot; + e.message);\n    } else if (e instanceof RangeError) {\n        alert(e.name + \x26quot;: \x26quot; + e.message);\n    }\n    // ... etc\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3eError.prototype\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/throw" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/throw"\x3ethrow\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/try...catch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch"\x3etry...catch\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Error types","Custom Error Types","Properties","Methods","Error instancesPropertiesMethods","Examples","Example: Throwing a generic error","Example: Handling a specific error","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError","title":"EvalError","_id":"4eea8395a4c86c4dba000014","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRepresents an error regarding the \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e function.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3enew EvalError([\x3cem\x3emessage\x3c/em\x3e[, \x3cem\x3efileName\x3c/em\x3e[, \x3cem\x3elineNumber\x3c/em\x3e]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3emessage\x3c/dt\x3e \x3cdd\x3eHuman-readable description of the error\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3efileName\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the file containing the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3elineNumber\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe line number of the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eAn EvalError is thrown when \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e\x3c/code\x3e is used improperly.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eEvalError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError#Properties_2"\x3eProperties of EvalError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to an EvalError object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acaller" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:caller" class \x3d " new"\x3ecaller\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aconstructor" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:constructor" class \x3d " new"\x3econstructor\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Alength" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:length" class \x3d " new"\x3elength\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:name" class \x3d " new"\x3ename\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eEvalError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError#Methods_2"\x3eMethods of EvalError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe global \x3ccode\x3eEvalError\x3c/code\x3e contains no methods of its own, however, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aapply" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:apply" class \x3d " new"\x3eapply\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acall" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:call" class \x3d " new"\x3ecall\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toString" class \x3d " new"\x3etoString\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "EvalError_instances"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3eEvalError\x3c/code\x3e instances\x3c/h3\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eProperties\x3c/h4\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError/constructor" class \x3d "new "\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError/name" class \x3d "new "\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;Although ECMA-262 specifies that EvalError should provide its own message property, in SpiderMonkey, it inherits Error.prototype.message.\x3c/div\x3e\n\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eMethods\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eEvalError\x3c/code\x3e prototype object does not contain any methods of its own, \x3cstrong\x3e\x3ccode\x3eEvalError\x3c/code\x3e\x3c/strong\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3cbr/\x3e\n\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eProperties\x3c/h4\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError/constructor" class \x3d "new "\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError/name" class \x3d "new "\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;Although ECMA-262 specifies that EvalError should provide its own message property, in SpiderMonkey, it inherits Error.prototype.message.\x3c/div\x3e\n\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eMethods\x3c/h4\x3e\n\x3cp\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eEvalError\x3c/code\x3e prototype object does not contain any methods of its own, \x3cstrong\x3e\x3ccode\x3eEvalError\x3c/code\x3e\x3c/strong\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3cbr/\x3e\n\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError/prototype"\x3eEvalError.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Properties","Methods","EvalError instances","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError","title":"RangeError","_id":"4eea8398a4c86c4dba000015","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents an error when a number is not within the correct range allowed.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3enew RangeError([\x3cem\x3emessage\x3c/em\x3e[, \x3cem\x3efileName\x3c/em\x3e[, \x3cem\x3elineNumber\x3c/em\x3e]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3emessage\x3c/dt\x3e \x3cdd\x3eHuman-readable description of the error\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3efileName\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the file containing the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3elineNumber\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe line number of the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eA RangeError is thrown when trying to pass a number as an argument to a function that does not allow a range that includes that number. This can be encountered when to create an array of an illegal length with the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e constructor, or when passing bad values to the numeric methods \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toExponential" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toExponential"\x3etoExponential\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3etoFixed\x3c/a\x3e, or \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toPrecision" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision"\x3etoPrecision\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eRangeError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError#Properties_2"\x3eProperties of RangeError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to an RangeError object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acaller" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:caller" class \x3d " new"\x3ecaller\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aconstructor" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:constructor" class \x3d " new"\x3econstructor\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Alength" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:length" class \x3d " new"\x3elength\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:name" class \x3d " new"\x3ename\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eRangeError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError#Methods_2"\x3eMethods of RangeError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe global \x3ccode\x3eRangeError\x3c/code\x3e contains no methods of its own, however, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aapply" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:apply" class \x3d " new"\x3eapply\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acall" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:call" class \x3d " new"\x3ecall\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toString" class \x3d " new"\x3etoString\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "RangeError_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x3ccode\x3eRangeError\x3c/code\x3e instances\x3c/h2\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError/name" class \x3d "new "\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "note"\x3eAlthough \x3ca title \x3d "en/ECMAScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e specifies that \x3cstrong\x3eRangeError\x3c/strong\x3e should provide its own \x3ccode\x3emessage\x3c/code\x3e property, in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, it inherits \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3eError.prototype.message\x3c/a\x3e.\x3c/div\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eRangeError\x3c/code\x3e prototype object does not contain any methods of its own, \x3cstrong\x3eRangeError\x3c/strong\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError/name" class \x3d "new "\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "note"\x3eAlthough \x3ca title \x3d "en/ECMAScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e specifies that \x3cstrong\x3eRangeError\x3c/strong\x3e should provide its own \x3ccode\x3emessage\x3c/code\x3e property, in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, it inherits \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3eError.prototype.message\x3c/a\x3e.\x3c/div\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eRangeError\x3c/code\x3e prototype object does not contain any methods of its own, \x3cstrong\x3eRangeError\x3c/strong\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError/prototype"\x3eRangeError.prototype\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toExponential" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toExponential"\x3etoExponential\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3etoFixed\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toPrecision" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision"\x3etoPrecision\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Properties","Methods","RangeError instances","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError","title":"ReferenceError","_id":"4eea8399a4c86c4dba000016","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents an error when a non-existent variable is referenced.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eA ReferenceError is thrown when trying to dereference a variable that has not been declared.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3enew ReferenceError(\x3cem\x3e[message[, fileName[, linenumber]]]\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3emessage\x3c/dt\x3e \x3cdd\x3eHuman-readable description of the error\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3efileName\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the file containing the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3elineNumber\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe line number of the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eReferenceError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError#Properties_2"\x3eProperties of ReferenceError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/prototype"\x3e\x3ccode\x3eprototype\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to an ReferenceError object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acaller" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:caller" class \x3d " new"\x3ecaller\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aconstructor" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:constructor" class \x3d " new"\x3econstructor\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Alength" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:length" class \x3d " new"\x3elength\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:name" class \x3d " new"\x3ename\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eReferenceError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError#Methods_2"\x3eMethods of ReferenceError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe global \x3ccode\x3eReferenceError\x3c/code\x3e contains no methods of its own, however, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aapply" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:apply" class \x3d " new"\x3eapply\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acall" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:call" class \x3d " new"\x3ecall\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toString" class \x3d " new"\x3etoString\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "ReferenceError_instances"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x3ccode\x3eReferenceError\x3c/code\x3e instances\x3c/h2\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eReferenceError\x3c/code\x3e prototype object does not contain any methods of its own, \x3cstrong\x3e\x3ccode\x3eReferenceError\x3c/code\x3e\x3c/strong\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eReferenceError\x3c/code\x3e prototype object does not contain any methods of its own, \x3cstrong\x3e\x3ccode\x3eReferenceError\x3c/code\x3e\x3c/strong\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3e\x3ccode\x3eError\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/prototype"\x3e\x3ccode\x3eReferenceError.prototype\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Syntax","Parameters","Properties","Methods","ReferenceError instances","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError","title":"SyntaxError","_id":"4eea839ea4c86c4dba000017","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRepresents an error when trying to interpret syntactically invalid code.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eA SyntaxError is thrown when the JavaScript engine encounters tokens or token order that does not conform to the syntax of the language when parsing code.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3enew SyntaxError([\x3cem\x3emessage\x3c/em\x3e[, \x3cem\x3efileName\x3c/em\x3e[, \x3cem\x3elineNumber\x3c/em\x3e]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3emessage\x3c/dt\x3e \x3cdd\x3eHuman-readable description of the error\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3efileName\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the file containing the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3elineNumber\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe line number of the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eSyntaxError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError#Properties_2"\x3eProperties of SyntaxError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to an SyntaxError object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acaller" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:caller" class \x3d " new"\x3ecaller\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aconstructor" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:constructor" class \x3d " new"\x3econstructor\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Alength" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:length" class \x3d " new"\x3elength\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:name" class \x3d " new"\x3ename\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eSyntaxError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError#Methods_2"\x3eMethods of SyntaxError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe global \x3ccode\x3eSyntaxError\x3c/code\x3e contains no methods of its own, however, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aapply" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:apply" class \x3d " new"\x3eapply\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acall" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:call" class \x3d " new"\x3ecall\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toString" class \x3d " new"\x3etoString\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "SyntaxError_instances"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3eSyntaxError\x3c/code\x3e instances\x3c/h3\x3e\n\x3cp\x3eAll SyntaxError instances inherit from \x3ca title \x3d "en/JavaScript/Reference/Global Objects/SyntaxError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError/prototype"\x3eSyntaxError.prototype\x3c/a\x3e. You can use the prototype to add properties or methods to all instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError/constructor" class \x3d "new "\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError/name" class \x3d "new "\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Although \x3ca title \x3d "en/ECMAScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e\x26nbsp; specifies that \x3ccode\x3eSyntaxError\x3c/code\x3e should provide its own \x3ccode\x3emessage\x3c/code\x3e property, in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, it inherits \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Error/message" rel \x3d "internal" href \x3d "/en/JavaScript/Reference/Global_Objects/Error/message"\x3eError.prototype.message\x3c/a\x3e.\x3c/div\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eSyntaxError\x3c/code\x3e prototype object does not contain any methods of its own, \x3ccode\x3eSyntaxError\x3c/code\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3eError.prototype\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eFunction.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_also_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError/prototype"\x3eSyntaxError.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Syntax","Parameters","Properties","Methods","SyntaxError instances","Properties","MethodsSee also","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError","title":"TypeError","_id":"4eea83a0a4c86c4dba000018","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRepresents an error when a value is not of the expected type.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3enew TypeError([\x3cem\x3emessage\x3c/em\x3e[, \x3cem\x3efileName\x3c/em\x3e[, \x3cem\x3elineNumber\x3c/em\x3e]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3emessage\x3c/dt\x3e \x3cdd\x3eHuman-readable description of the error\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3efileName\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the file containing the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3elineNumber\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe line number of the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eA TypeError is thrown when an operand or argument passed to a function is incompatible with the type expected by that operator or function.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eTypeError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError#Properties_2"\x3eProperties of TypeError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to an TypeError object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acaller" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:caller" class \x3d " new"\x3ecaller\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aconstructor" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:constructor" class \x3d " new"\x3econstructor\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Alength" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:length" class \x3d " new"\x3elength\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:name" class \x3d " new"\x3ename\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eTypeError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError#Methods_2"\x3eMethods of TypeError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe global \x3ccode\x3eTypeError\x3c/code\x3e contains no methods of its own, however, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aapply" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:apply" class \x3d " new"\x3eapply\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acall" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:call" class \x3d " new"\x3ecall\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toString" class \x3d " new"\x3etoString\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e \x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "TypeError_instances"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3eTypeError\x3c/code\x3e instances\x3c/h3\x3e\n\x3cp\x3eAll\x3ccode\x3e TypeError\x3c/code\x3e instances inherit from \x3ca title \x3d "en/JavaScript/Reference/Global Objects/TypeError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError/prototype"\x3e\x3ccode\x3eTypeError.prototype\x3c/code\x3e\x3c/a\x3e. You can use the prototype to add properties or methods to all instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError/name" class \x3d "new "\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Although \x3ca title \x3d "en/ECMA-262" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e specifies that \x3ccode\x3eTypeError\x3c/code\x3e should provide its own \x3ccode\x3emessage\x3c/code\x3e property, in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, it inherits \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3eError.prototype.message\x3c/a\x3e.\x3c/div\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eTypeError\x3c/code\x3e prototype object does not contain any methods of its own, \x3ccode\x3eTypeError\x3c/code\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError/prototype"\x3eTypeError.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Properties","Methods","TypeError instances","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError","title":"URIError","_id":"4eea83a1a4c86c4dba000019","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRepresents an error when a malformed URI is encountered.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3enew URIError([\x3cem\x3emessage\x3c/em\x3e[, \x3cem\x3efileName\x3c/em\x3e[, \x3cem\x3elineNumber\x3c/em\x3e]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3emessage\x3c/dt\x3e \x3cdd\x3eHuman-readable description of the error\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3efileName\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the file containing the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3elineNumber\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe line number of the code that caused the exception\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eA URIError is thrown when the URI handling functions are passed a malformed URI.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor properties available on \x3ccode\x3eURIError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError#Properties_2"\x3eProperties of URIError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError/prototype"\x3eprototype\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAllows the addition of properties to a URIError object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acaller" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:caller" class \x3d " new"\x3ecaller\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aconstructor" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:constructor" class \x3d " new"\x3econstructor\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Alength" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:length" class \x3d " new"\x3elength\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:name" class \x3d " new"\x3ename\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3csmall style \x3d "margin-left: 1em;"\x3e\x3cem\x3eFor methods available on \x3ccode\x3eURIError\x3c/code\x3e instances, see \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError#Methods_2"\x3eMethods of URIError instances\x3c/a\x3e.\x3c/em\x3e\x3c/small\x3e \x3c/span\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\n\x3c/p\x3e\n\x3cp\x3eThe global \x3ccode\x3eURIError\x3c/code\x3e contains no methods of its own, however, it does inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:prototype" class \x3d " new"\x3eFunction.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Aapply" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:apply" class \x3d " new"\x3eapply\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3Acall" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:call" class \x3d " new"\x3ecall\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:toString" class \x3d " new"\x3etoString\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AFunction%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Function:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e \x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "URIError_instances"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3eURIError\x3c/code\x3e instances\x3c/h3\x3e\n\x3cp\x3eAll \x3ccode\x3eURIError\x3c/code\x3e instances inherit from \x3ca title \x3d "en/JavaScript/Reference/Global Objects/URIError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError/prototype"\x3e\x3ccode\x3eURIError.prototype\x3c/code\x3e\x3c/a\x3e. You can use the prototype to add properties or methods to all instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Properties_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cp\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError/name" class \x3d "new "\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Although \x3ca title \x3d "en/ECMA-262" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e\x26nbsp;specifies that \x3ccode\x3eURIError \x3c/code\x3eshould provide its own \x3ccode\x3emessage\x3c/code\x3e property, in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, it inherits \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3eError.prototype.message\x3c/a\x3e\x3c/code\x3e.\x3c/div\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eURIError\x3c/code\x3e prototype object does not contain any methods of its own, \x3ccode\x3eURIErrror\x3c/code\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Functions/decodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURI"\x3edecodeURI\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Functions/decodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURIComponent"\x3edecodeURIComponent\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Functions/encodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI"\x3eencodeURI\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Functions/encodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent"\x3eencodeURIComponent\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError/prototype"\x3eURIError.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Properties","Methods","URIError instances","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURI","title":"decodeURI","_id":"4eea83a1a4c86c4dba00001a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3e\x3cstrong\x3eCore Function\x3c/strong\x3e\x3c/p\x3e\n\x3cp\x3eDecodes a Uniform Resource Identifier (URI) previously created by \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI"\x3eencodeURI\x3c/a\x3e\x3c/code\x3e or by a similar routine.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eCore Global Method\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript ?\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ndecodeURI(\x3ci\x3eencodedURI\x3c/i\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eencodedURI\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A complete, encoded Uniform Resource Identifier.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eReplaces each escape sequence in the encoded URI with the character that it represents.\n\x3c/p\x3e\x3cp\x3eDoes not decode escape sequences that could not have been introduced by \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Functions/encodeURI" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/encodeURI"\x3eencodeURI\x3c/a\x3e\x3c/code\x3e.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Functions/decodeURIComponent" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/decodeURIComponent"\x3edecodeURIComponent\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Functions/encodeURI" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/encodeURI"\x3eencodeURI\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Functions/encodeURIComponent" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/encodeURIComponent"\x3eencodeURIComponent\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Parameters "," Description "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURIComponent","title":"decodeURIComponent","_id":"4eea83a5a4c86c4dba00001b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eDecodes a Uniform Resource Identifier (URI) component previously created by \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent"\x3eencodeURIComponent\x3c/a\x3e\x3c/code\x3e or by a similar routine.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eCore Global Method\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript ?\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e decodeURIComponent(\x3cem\x3eencodedURI\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eencodedURI\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eAn encoded component of a Uniform Resource Identifier.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eReplaces each escape sequence in the encoded URI component with the character that it represents.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/decodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/decodeURI"\x3edecodeURI\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI"\x3eencodeURI\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/encodeURIComponent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent"\x3eencodeURIComponent\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat","title":"parseFloat","_id":"4eea83cfa4c86c4dba00001c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eParses a string argument and returns a floating point number.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eCore Global Method\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript ?\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e parseFloat(\x3cem\x3estring\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estring\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eA string that represents the value you want to parse.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eparseFloat\x3c/code\x3e is a top-level function and is not associated with any object.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eparseFloat\x3c/code\x3e parses its argument, a string, and returns a floating point number. If it encounters a character other than a sign (+ or -), numeral (0-9), a decimal point, or an exponent, it returns the value up to that point and ignores that character and all succeeding characters. Leading and trailing spaces are allowed.\x3c/p\x3e\n\x3cp\x3eIf the first character cannot be converted to a number, \x3ccode\x3eparseFloat\x3c/code\x3e returns \x3ccode\x3eNaN\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eFor arithmetic purposes, the \x3ccode\x3eNaN\x3c/code\x3e value is not a number in any radix. You can call the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e\x3c/code\x3e function to determine if the result of \x3ccode\x3eparseFloat\x3c/code\x3e is \x3ccode\x3eNaN\x3c/code\x3e. If \x3ccode\x3eNaN\x3c/code\x3e is passed on to arithmetic operations, the operation results will also be \x3ccode\x3eNaN\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_parseFloat_returning_a_number"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: \x3ccode\x3eparseFloat\x3c/code\x3e returning a number\x3c/h4\x3e\n\x3cp\x3eThe following examples all return \x3cstrong\x3e3.14\x3c/strong\x3e\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eparseFloat(\x26quot;3.14\x26quot;);\nparseFloat(\x26quot;314e-2\x26quot;);\nparseFloat(\x26quot;0.0314E+2\x26quot;);\nparseFloat(\x26quot;3.14more non-digit characters\x26quot;);\x3c/pre\x3e\r\n        \x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_parseFloat_returning_NaN"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: \x3ccode\x3eparseFloat\x3c/code\x3e returning NaN\x3c/h4\x3e\n\x3cp\x3eThe following example returns \x3ccode\x3eNaN\x3c/code\x3e\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eparseFloat(\x26quot;FF2\x26quot;);\x3c/pre\x3e\r\n        \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_parseFloat_returning_a_number"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: \x3ccode\x3eparseFloat\x3c/code\x3e returning a number\x3c/h4\x3e\n\x3cp\x3eThe following examples all return \x3cstrong\x3e3.14\x3c/strong\x3e\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eparseFloat(\x26quot;3.14\x26quot;);\nparseFloat(\x26quot;314e-2\x26quot;);\nparseFloat(\x26quot;0.0314E+2\x26quot;);\nparseFloat(\x26quot;3.14more non-digit characters\x26quot;);\x3c/pre\x3e\r\n        \x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_parseFloat_returning_NaN"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: \x3ccode\x3eparseFloat\x3c/code\x3e returning NaN\x3c/h4\x3e\n\x3cp\x3eThe following example returns \x3ccode\x3eNaN\x3c/code\x3e\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eparseFloat(\x26quot;FF2\x26quot;);\x3c/pre\x3e\r\n        \x3c/div\x3e','\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/parseInt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt"\x3eparseInt\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: parseFloat returning a number","Example: parseFloat returning NaN","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt","title":"parseInt","_id":"4eea83d0a4c86c4dba00001d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eParses a string argument and returns an integer of the specified radix or base.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eCore Global Method\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript ?\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3e\nvar intValue \x3d parseInt(\x3cem\x3estring\x3c/em\x3e[, \x3cem\x3eradix\x3c/em\x3e]);\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estring\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eThe value to parse. If \x3ccode\x3estring\x3c/code\x3e is not a string, then it is converted to one. Leading whitespace in the string is ignored.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eradix\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eAn integer that represents the \x3cvar\x3eradix\x3c/var\x3e of the above mentioned string. While this parameter is optional, \x3cstrong\x3ealways specify it\x3c/strong\x3e to eliminate reader confusion and to guarantee predictable behavior.\x26nbsp; Different implementations produce different results when a radix is not specified.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eparseInt\x3c/code\x3e is a top-level function and is not associated with any object.\x3c/p\x3e\n\x3cp\x3eThe \x3ccode\x3eparseInt\x3c/code\x3e function converts its first argument to a string, parses it, and returns an integer or \x3ccode\x3eNaN\x3c/code\x3e. If not \x3ccode\x3eNaN\x3c/code\x3e, the returned value will be the decimal integer representation of the first argument taken as a number in the specified \x3cvar\x3eradix\x3c/var\x3e (base). For example, a \x3cvar\x3eradix\x3c/var\x3e of 10 indicates to convert from a decimal number, 8 octal, 16 hexadecimal, and so on. For radices above \x3ccode\x3e10\x3c/code\x3e, the letters of the alphabet indicate numerals greater than \x3ccode\x3e9\x3c/code\x3e. For example, for hexadecimal numbers (base 16), \x3ccode\x3eA\x3c/code\x3e through \x3ccode\x3eF\x3c/code\x3e are used.\x3c/p\x3e\n\x3cp\x3eIf \x3ccode\x3eparseInt\x3c/code\x3e encounters a character that is not a numeral in the specified radix, it ignores it and all succeeding characters and returns the integer value parsed up to that point. \x3ccode\x3eparseInt\x3c/code\x3e truncates numbers to integer values. Leading and trailing spaces are allowed.\x3c/p\x3e\n\x3cp\x3eIf \x3cvar\x3eradix\x3c/var\x3e is \x3ccode\x3eundefined\x3c/code\x3e or 0, JavaScript assumes the following:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eIf the input \x3ccode\x3estring\x3c/code\x3e begins with \x26quot;0x\x26quot; or \x26quot;0X\x26quot;, \x3cvar\x3eradix\x3c/var\x3e is 16 (hexadecimal).\x3c/li\x3e \x3cli\x3eIf the input \x3ccode\x3estring\x3c/code\x3e begins with \x26quot;0\x26quot;, \x3cvar\x3eradix\x3c/var\x3e is eight (octal). This feature is non-standard, and some implementations deliberately do not support it (instead using the radix 10).\x26nbsp; For this reason \x3cstrong\x3ealways specify a radix when using \x3ccode\x3eparseInt\x3c/code\x3e\x3c/strong\x3e.\x3c/li\x3e \x3cli\x3eIf the input \x3ccode\x3estring\x3c/code\x3e begins with any other value, the radix is 10 (decimal).\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eIf the first character cannot be converted to a number, \x3ccode\x3eparseInt\x3c/code\x3e returns \x3ccode\x3eNaN\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eFor arithmetic purposes, the \x3ccode\x3eNaN\x3c/code\x3e value is not a number in any radix. You can call the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e\x3c/code\x3e function to determine if the result of \x3ccode\x3eparseInt\x3c/code\x3e is \x3ccode\x3eNaN\x3c/code\x3e. If \x3ccode\x3eNaN\x3c/code\x3e is passed on to arithmetic operations, the operation results will also be \x3ccode\x3eNaN\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eTo convert number to its string literal in a particular radix use \x3ccode\x3eintValue.toString(radix)\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_parseInt"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eparseInt\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following examples all return 15:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nparseInt(\x26quot; 0xF\x26quot;, 16);\nparseInt(\x26quot; F\x26quot;, 16);\nparseInt(\x26quot;17\x26quot;, 8);\nparseInt(021, 8);\nparseInt(\x26quot;015\x26quot;, 10);\nparseInt(15.99, 10);\nparseInt(\x26quot;FXX123\x26quot;, 16);\nparseInt(\x26quot;1111\x26quot;, 2);\nparseInt(\x26quot;15*3\x26quot;, 10);\nparseInt(\x26quot;15e2\x26quot;, 10);\nparseInt(\x26quot;15px\x26quot;, 10);\nparseInt(\x26quot;12\x26quot;, 13);\n\x3c/pre\x3e\n\x3cp\x3eThe following examples all return \x3ccode\x3eNaN\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nparseInt(\x26quot;Hello\x26quot;, 8); // Not a number at all\nparseInt(\x26quot;546\x26quot;, 2);   // Digits are not valid for binary representations\n\x3c/pre\x3e\n\x3cp\x3eThe following examples all return \x3ccode\x3e-15:\x3c/code\x3e\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nparseInt(\x26quot;-F\x26quot;, 16);\nparseInt(\x26quot;-0F\x26quot;, 16);\nparseInt(\x26quot;-0XF\x26quot;, 16);\nparseInt(-10, 16);\nparseInt(-15.1, 10)\nparseInt(\x26quot; -17\x26quot;, 8);\nparseInt(\x26quot; -15\x26quot;, 10);\nparseInt(\x26quot;-1111\x26quot;, 2);\nparseInt(\x26quot;-15e1\x26quot;, 10);\nparseInt(\x26quot;-12\x26quot;, 13);\n\x3c/pre\x3e\n\x3cp\x3eThe following example returns \x3ccode\x3e224:\x3c/code\x3e\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nparseInt(\x26quot;0e0\x26quot;, 16);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_parseInt"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eparseInt\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following examples all return 15:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nparseInt(\x26quot; 0xF\x26quot;, 16);\nparseInt(\x26quot; F\x26quot;, 16);\nparseInt(\x26quot;17\x26quot;, 8);\nparseInt(021, 8);\nparseInt(\x26quot;015\x26quot;, 10);\nparseInt(15.99, 10);\nparseInt(\x26quot;FXX123\x26quot;, 16);\nparseInt(\x26quot;1111\x26quot;, 2);\nparseInt(\x26quot;15*3\x26quot;, 10);\nparseInt(\x26quot;15e2\x26quot;, 10);\nparseInt(\x26quot;15px\x26quot;, 10);\nparseInt(\x26quot;12\x26quot;, 13);\n\x3c/pre\x3e\n\x3cp\x3eThe following examples all return \x3ccode\x3eNaN\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nparseInt(\x26quot;Hello\x26quot;, 8); // Not a number at all\nparseInt(\x26quot;546\x26quot;, 2);   // Digits are not valid for binary representations\n\x3c/pre\x3e\n\x3cp\x3eThe following examples all return \x3ccode\x3e-15:\x3c/code\x3e\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nparseInt(\x26quot;-F\x26quot;, 16);\nparseInt(\x26quot;-0F\x26quot;, 16);\nparseInt(\x26quot;-0XF\x26quot;, 16);\nparseInt(-10, 16);\nparseInt(-15.1, 10)\nparseInt(\x26quot; -17\x26quot;, 8);\nparseInt(\x26quot; -15\x26quot;, 10);\nparseInt(\x26quot;-1111\x26quot;, 2);\nparseInt(\x26quot;-15e1\x26quot;, 10);\nparseInt(\x26quot;-12\x26quot;, 13);\n\x3c/pre\x3e\n\x3cp\x3eThe following example returns \x3ccode\x3e224:\x3c/code\x3e\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nparseInt(\x26quot;0e0\x26quot;, 16);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Octal_Interpretations_with_No_Radix"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eOctal Interpretations with No Radix\x3c/h3\x3e\n\x3cp\x3eAlthough discouraged by ECMAScript 3, many implementations interpret a numeric string beginning with a leading \x3ccode\x3e0\x3c/code\x3e as octal. The following may have an octal result.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nparseInt(\x26quot;0e0\x26quot;); // 0\nparseInt(\x26quot;08\x26quot;); // 0, \'8\' is not an octal digit.\n\x3c/pre\x3e\n\x3cblockquote\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "ECMAScript_5_Removes_Octal_Interpretation"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eECMAScript 5 Removes Octal Interpretation\x3c/h4\x3e\n\x3cp\x3eThe ECMAScript 5 specification of the function \x3ccode\x3eparseInt\x3c/code\x3e no longer allows implementations to treat Strings beginning with a \x3ccode\x3e0\x3c/code\x3e character as octal values. ECMAScript 5 states:\x3c/p\x3e\n\x3cp\x3eThe \x3ccode\x3eparseInt\x3c/code\x3e function produces an integer value dictated by interpretation of the contents of the string argument according to the specified radix. Leading white space in string is ignored. If radix is undefined or \x3ccode\x3e0\x3c/code\x3e, it is assumed to be \x3ccode\x3e10\x3c/code\x3e except when the number begins with the character pairs \x3ccode\x3e0x\x3c/code\x3e or \x3ccode\x3e0X\x3c/code\x3e, in which case a radix of 16 is assumed. If radix is \x3ccode\x3e16\x3c/code\x3e, number may also optionally begin with the character pairs \x3ccode\x3e0x\x3c/code\x3e or \x3ccode\x3e0X\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eThis differs from ECMAScript 3, which discouraged but allowed octal interpretation.\x3c/p\x3e\n\x3cp\x3eSince many implementations have not adopted this behavior as of 2011, and because older browsers must be supported, \x3cstrong\x3ealways specify a radix\x3c/strong\x3e.\x3c/p\x3e\n\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/parseFloat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat"\x3eparseFloat\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.valueOf\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3eNumber.toString\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/blockquote\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "ECMAScript_5_Removes_Octal_Interpretation"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eECMAScript 5 Removes Octal Interpretation\x3c/h4\x3e\n\x3cp\x3eThe ECMAScript 5 specification of the function \x3ccode\x3eparseInt\x3c/code\x3e no longer allows implementations to treat Strings beginning with a \x3ccode\x3e0\x3c/code\x3e character as octal values. ECMAScript 5 states:\x3c/p\x3e\n\x3cp\x3eThe \x3ccode\x3eparseInt\x3c/code\x3e function produces an integer value dictated by interpretation of the contents of the string argument according to the specified radix. Leading white space in string is ignored. If radix is undefined or \x3ccode\x3e0\x3c/code\x3e, it is assumed to be \x3ccode\x3e10\x3c/code\x3e except when the number begins with the character pairs \x3ccode\x3e0x\x3c/code\x3e or \x3ccode\x3e0X\x3c/code\x3e, in which case a radix of 16 is assumed. If radix is \x3ccode\x3e16\x3c/code\x3e, number may also optionally begin with the character pairs \x3ccode\x3e0x\x3c/code\x3e or \x3ccode\x3e0X\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eThis differs from ECMAScript 3, which discouraged but allowed octal interpretation.\x3c/p\x3e\n\x3cp\x3eSince many implementations have not adopted this behavior as of 2011, and because older browsers must be supported, \x3cstrong\x3ealways specify a radix\x3c/strong\x3e.\x3c/p\x3e\n\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/parseFloat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat"\x3eparseFloat\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.valueOf\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3eNumber.toString\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/parseFloat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat"\x3eparseFloat\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.valueOf\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3eNumber.toString\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using parseInt","Octal Interpretations with No RadixSee also","See also","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity","title":"Infinity","_id":"4eea83d2a4c86c4dba00001e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eA numeric value representing infinity.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eCore Global Property\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e Infinity \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eInfinity\x3c/code\x3e is a property of the \x3cem\x3eglobal object\x3c/em\x3e, i.e. it is a variable in global scope.\x3c/p\x3e\n\x3cp\x3eThe initial value of \x3ccode\x3eInfinity\x3c/code\x3e is \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY"\x3eNumber.POSITIVE_INFINITY\x3c/a\x3e\x3c/code\x3e. The value \x3ccode\x3eInfinity\x3c/code\x3e (positive infinity) is greater than any other number including itself. This value behaves mathematically like infinity; for example, anything multiplied by \x3ccode\x3eInfinity\x3c/code\x3e is \x3ccode\x3eInfinity\x3c/code\x3e, and anything divided by \x3ccode\x3eInfinity\x3c/code\x3e is 0.\x3c/p\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 0px none ; margin: 10px 0px; padding: 0px 10px; background-color: rgb(254, 244, 156); text-align: center;"\x3e\x3cp style \x3d "margin: 4px 0px; font-weight: bold;"\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e note\x3c/p\x3e\x3cp style \x3d "margin: 4px 0px;"\x3eStarting in JavaScript 1.8.5 (Firefox 4), \x3ccode\x3eInfinity\x3c/code\x3e is read only, as per the ECMAScript 5 specification.\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY"\x3eNumber.NEGATIVE_INFINITY\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY"\x3eNumber.POSITIVE_INFINITY\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON","title":"JSON","_id":"4eea83d2a4c86c4dba00001f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3eJSON\x3c/code\x3e object contains methods for converting values to \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://json.org/" title \x3d "http://json.org/" target \x3d "_blank"\x3eJSON notation\x3c/a\x3e and for converting JSON notation to values.\x3c/p\x3e\n\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "JSON_Notation"\x3e\x3c/span\x3e\x3ch3 style \x3d "position: static; z-index: auto; " class \x3d "editable"\x3eJSON Notation\x3c/h3\x3e\n\x3cp\x3e\x3ca class \x3d " external" title \x3d "http://json.org/" rel \x3d "external" href \x3d "http://json.org/" target \x3d "_blank"\x3eJSON\x3c/a\x3e is a syntax for serializing objects, arrays, numbers, strings, booleans, and null. \x26nbsp;It is based upon JavaScript syntax but is distinct from it: some JavaScript is not JSON, and some JSON is not JavaScript.\x3c/p\x3e\n\x3cp\x3eThe main differences between standard object and array literal notation and JSON notation are that all property names in a JSON object must be double-quoted strings and that trailing commas in objects and arrays are forbidden. \x26nbsp;The main differences between standard number notation and JSON number notation are that in JSON leading zeroes are prohibited and the decimal point in a number must be followed by at least one digit. \x26nbsp;The main differences between standard string notation and JSON string notation are that in JSON only a limited set of characters may be escaped in strings, certain control characters are prohibited in strings, the Unicode line separator (U+2028) and paragraph separator (U+2029) characters are permitted, and that strings must be double-quoted.\x26nbsp;\x26nbsp;\x3c/p\x3e\n\x3cp\x3eThe full JSON syntax is as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\x3cvar\x3eJSON\x3c/var\x3e \x3d \x3cstrong\x3enull\x3c/strong\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3etrue\x3c/strong\x3e \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3efalse\x3c/strong\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eJSONNumber\x3c/var\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eJSONString\x3c/var\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eJSONObject\x3c/var\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eJSONArray\x3c/var\x3e\n\n\x3cvar\x3eJSONNumber\x3c/var\x3e \x3d \x3cstrong\x3e-\x3c/strong\x3e \x3cvar\x3ePositiveNumber\x3c/var\x3e\n          \x3cem\x3eor\x3c/em\x3e \x3cvar\x3ePositiveNumber\x3c/var\x3e\n\x3cvar\x3ePositiveNumber\x3c/var\x3e \x3d DecimalNumber\n              or \x3cvar\x3eDecimalNumber\x3c/var\x3e \x3cstrong\x3e.\x3c/strong\x3e \x3cvar\x3eDigits\x3c/var\x3e\n              or \x3cvar\x3eDecimalNumber\x3c/var\x3e \x3cstrong\x3e.\x3c/strong\x3e \x3cvar\x3eDigits\x3c/var\x3e \x3cvar\x3eExponentPart\x3c/var\x3e\n              or \x3cvar\x3eDecimalNumber\x3c/var\x3e \x3cvar\x3eExponentPart\x3c/var\x3e\n\x3cvar\x3eDecimalNumber\x3c/var\x3e \x3d \x3cstrong\x3e0\x3c/strong\x3e\n             \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eOneToNine\x3c/var\x3e \x3cvar\x3eDigits\x3c/var\x3e\n\x3cvar\x3eExponentPart\x3c/var\x3e \x3d \x3cstrong\x3ee\x3c/strong\x3e \x3cvar\x3eExponent\x3c/var\x3e\n            \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3eE\x3c/strong\x3e \x3cvar\x3eExponent\x3c/var\x3e\n\x3cvar\x3eExponent\x3c/var\x3e \x3d \x3cvar\x3eDigits\x3c/var\x3e\n        \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e+\x3c/strong\x3e \x3cvar\x3eDigits\x3c/var\x3e\n        \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e-\x3c/strong\x3e \x3cvar\x3eDigits\x3c/var\x3e\n\x3cvar\x3eDigits\x3c/var\x3e \x3d \x3cvar\x3eDigit\x3c/var\x3e\n      \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eDigits\x3c/var\x3e \x3cvar\x3eDigit\x3c/var\x3e\n\x3cvar\x3eDigit\x3c/var\x3e \x3d \x3cstrong\x3e0\x3c/strong\x3e through \x3cstrong\x3e9\x3c/strong\x3e\n\x3cvar\x3eOneToNine\x3c/var\x3e \x3d \x3cstrong\x3e1\x3c/strong\x3e through \x3cstrong\x3e9\x3c/strong\x3e\n\n\x3cvar\x3eJSONString\x3c/var\x3e \x3d \x3cstrong\x3e\x26quot;\x26quot;\x3c/strong\x3e\n          \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\x26quot;\x3c/strong\x3e \x3cvar\x3eStringCharacters\x3c/var\x3e \x3cstrong\x3e\x26quot;\x3c/strong\x3e\n\x3cvar\x3eStringCharacters\x3c/var\x3e \x3d \x3cvar\x3eStringCharacter\x3c/var\x3e\n                \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eStringCharacters\x3c/var\x3e \x3cvar\x3eStringCharacter\x3c/var\x3e\n\x3cvar\x3eStringCharacter\x3c/var\x3e \x3d any character\n                  \x3cem\x3eexcept\x3c/em\x3e \x3cstrong\x3e\x26quot;\x3c/strong\x3e \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\\x3c/strong\x3e \x3cem\x3eor\x3c/em\x3e U+0000 through U+001F\n               \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eEscapeSequence\x3c/var\x3e\n\x3cvar\x3eEscapeSequence\x3c/var\x3e \x3d \x3cstrong\x3e\\\x26quot; \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\/ \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\\\ \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\b \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\f \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\n \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\r \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\t\x3c/strong\x3e\n              \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\u\x3c/strong\x3e \x3cvar\x3eHexDigit\x3c/var\x3e \x3cvar\x3eHexDigit\x3c/var\x3e \x3cvar\x3eHexDigit\x3c/var\x3e \x3cvar\x3eHexDigit\x3c/var\x3e\n\x3cvar\x3eHexDigit\x3c/var\x3e \x3d \x3cstrong\x3e0\x3c/strong\x3e through \x3cstrong\x3e9\x3c/strong\x3e\n        \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3eA\x3c/strong\x3e through \x3cstrong\x3eF\x3c/strong\x3e\n        \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3ea\x3c/strong\x3e through \x3cstrong\x3ef\x3c/strong\x3e\n\n\x3cvar\x3eJSONObject\x3c/var\x3e \x3d \x3cstrong\x3e{\x3c/strong\x3e \x3cstrong\x3e}\x3c/strong\x3e\n          \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e{\x3c/strong\x3e \x3cvar\x3eMembers\x3c/var\x3e \x3cstrong\x3e}\x3c/strong\x3e\n\x3cvar\x3eMembers\x3c/var\x3e \x3d \x3cvar\x3eJSONString\x3c/var\x3e \x3cstrong\x3e:\x3c/strong\x3e \x3cvar\x3eJSON\x3c/var\x3e\n       \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eMembers\x3c/var\x3e \x3cstrong\x3e,\x3c/strong\x3e \x3cvar\x3eJSONString\x3c/var\x3e \x3cstrong\x3e:\x3c/strong\x3e \x3cvar\x3eJSON\x3c/var\x3e\n\n\x3cvar\x3eJSONArray\x3c/var\x3e \x3d \x3cstrong\x3e[\x3c/strong\x3e \x3cstrong\x3e]\x3c/strong\x3e\n         \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e[\x3c/strong\x3e \x3cvar\x3eArrayElements\x3c/var\x3e \x3cstrong\x3e]\x3c/strong\x3e\n\x3cvar\x3eArrayElements\x3c/var\x3e \x3d \x3cvar\x3eJSON\x3c/var\x3e\n             \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eArrayElements\x3c/var\x3e \x3cstrong\x3e,\x3c/strong\x3e \x3cvar\x3eJSON\x3c/var\x3e\x3c/pre\x3e\n\x3cp\x3eInsignificant whitespace may be present anywhere except within a \x3cvar\x3eJSONNumber\x3c/var\x3e (numbers must contain no whitespace) or \x3cvar\x3eJSONString\x3c/var\x3e (where it is interpreted as the corresponding character in the string, or would cause an error). The tab character (U+0009), carriage return (U+000D), line feed (U+000A), and space (U+0020) characters are the only valid whitespace characters.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "JSON_Notation"\x3e\x3c/span\x3e\x3ch3 style \x3d "position: static; z-index: auto; " class \x3d "editable"\x3eJSON Notation\x3c/h3\x3e\n\x3cp\x3e\x3ca class \x3d " external" title \x3d "http://json.org/" rel \x3d "external" href \x3d "http://json.org/" target \x3d "_blank"\x3eJSON\x3c/a\x3e is a syntax for serializing objects, arrays, numbers, strings, booleans, and null. \x26nbsp;It is based upon JavaScript syntax but is distinct from it: some JavaScript is not JSON, and some JSON is not JavaScript.\x3c/p\x3e\n\x3cp\x3eThe main differences between standard object and array literal notation and JSON notation are that all property names in a JSON object must be double-quoted strings and that trailing commas in objects and arrays are forbidden. \x26nbsp;The main differences between standard number notation and JSON number notation are that in JSON leading zeroes are prohibited and the decimal point in a number must be followed by at least one digit. \x26nbsp;The main differences between standard string notation and JSON string notation are that in JSON only a limited set of characters may be escaped in strings, certain control characters are prohibited in strings, the Unicode line separator (U+2028) and paragraph separator (U+2029) characters are permitted, and that strings must be double-quoted.\x26nbsp;\x26nbsp;\x3c/p\x3e\n\x3cp\x3eThe full JSON syntax is as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\x3cvar\x3eJSON\x3c/var\x3e \x3d \x3cstrong\x3enull\x3c/strong\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3etrue\x3c/strong\x3e \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3efalse\x3c/strong\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eJSONNumber\x3c/var\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eJSONString\x3c/var\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eJSONObject\x3c/var\x3e\n    \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eJSONArray\x3c/var\x3e\n\n\x3cvar\x3eJSONNumber\x3c/var\x3e \x3d \x3cstrong\x3e-\x3c/strong\x3e \x3cvar\x3ePositiveNumber\x3c/var\x3e\n          \x3cem\x3eor\x3c/em\x3e \x3cvar\x3ePositiveNumber\x3c/var\x3e\n\x3cvar\x3ePositiveNumber\x3c/var\x3e \x3d DecimalNumber\n              or \x3cvar\x3eDecimalNumber\x3c/var\x3e \x3cstrong\x3e.\x3c/strong\x3e \x3cvar\x3eDigits\x3c/var\x3e\n              or \x3cvar\x3eDecimalNumber\x3c/var\x3e \x3cstrong\x3e.\x3c/strong\x3e \x3cvar\x3eDigits\x3c/var\x3e \x3cvar\x3eExponentPart\x3c/var\x3e\n              or \x3cvar\x3eDecimalNumber\x3c/var\x3e \x3cvar\x3eExponentPart\x3c/var\x3e\n\x3cvar\x3eDecimalNumber\x3c/var\x3e \x3d \x3cstrong\x3e0\x3c/strong\x3e\n             \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eOneToNine\x3c/var\x3e \x3cvar\x3eDigits\x3c/var\x3e\n\x3cvar\x3eExponentPart\x3c/var\x3e \x3d \x3cstrong\x3ee\x3c/strong\x3e \x3cvar\x3eExponent\x3c/var\x3e\n            \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3eE\x3c/strong\x3e \x3cvar\x3eExponent\x3c/var\x3e\n\x3cvar\x3eExponent\x3c/var\x3e \x3d \x3cvar\x3eDigits\x3c/var\x3e\n        \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e+\x3c/strong\x3e \x3cvar\x3eDigits\x3c/var\x3e\n        \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e-\x3c/strong\x3e \x3cvar\x3eDigits\x3c/var\x3e\n\x3cvar\x3eDigits\x3c/var\x3e \x3d \x3cvar\x3eDigit\x3c/var\x3e\n      \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eDigits\x3c/var\x3e \x3cvar\x3eDigit\x3c/var\x3e\n\x3cvar\x3eDigit\x3c/var\x3e \x3d \x3cstrong\x3e0\x3c/strong\x3e through \x3cstrong\x3e9\x3c/strong\x3e\n\x3cvar\x3eOneToNine\x3c/var\x3e \x3d \x3cstrong\x3e1\x3c/strong\x3e through \x3cstrong\x3e9\x3c/strong\x3e\n\n\x3cvar\x3eJSONString\x3c/var\x3e \x3d \x3cstrong\x3e\x26quot;\x26quot;\x3c/strong\x3e\n          \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\x26quot;\x3c/strong\x3e \x3cvar\x3eStringCharacters\x3c/var\x3e \x3cstrong\x3e\x26quot;\x3c/strong\x3e\n\x3cvar\x3eStringCharacters\x3c/var\x3e \x3d \x3cvar\x3eStringCharacter\x3c/var\x3e\n                \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eStringCharacters\x3c/var\x3e \x3cvar\x3eStringCharacter\x3c/var\x3e\n\x3cvar\x3eStringCharacter\x3c/var\x3e \x3d any character\n                  \x3cem\x3eexcept\x3c/em\x3e \x3cstrong\x3e\x26quot;\x3c/strong\x3e \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\\x3c/strong\x3e \x3cem\x3eor\x3c/em\x3e U+0000 through U+001F\n               \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eEscapeSequence\x3c/var\x3e\n\x3cvar\x3eEscapeSequence\x3c/var\x3e \x3d \x3cstrong\x3e\\\x26quot; \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\/ \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\\\ \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\b \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\f \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\n \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\r \x3c/strong\x3e\x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\t\x3c/strong\x3e\n              \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e\\u\x3c/strong\x3e \x3cvar\x3eHexDigit\x3c/var\x3e \x3cvar\x3eHexDigit\x3c/var\x3e \x3cvar\x3eHexDigit\x3c/var\x3e \x3cvar\x3eHexDigit\x3c/var\x3e\n\x3cvar\x3eHexDigit\x3c/var\x3e \x3d \x3cstrong\x3e0\x3c/strong\x3e through \x3cstrong\x3e9\x3c/strong\x3e\n        \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3eA\x3c/strong\x3e through \x3cstrong\x3eF\x3c/strong\x3e\n        \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3ea\x3c/strong\x3e through \x3cstrong\x3ef\x3c/strong\x3e\n\n\x3cvar\x3eJSONObject\x3c/var\x3e \x3d \x3cstrong\x3e{\x3c/strong\x3e \x3cstrong\x3e}\x3c/strong\x3e\n          \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e{\x3c/strong\x3e \x3cvar\x3eMembers\x3c/var\x3e \x3cstrong\x3e}\x3c/strong\x3e\n\x3cvar\x3eMembers\x3c/var\x3e \x3d \x3cvar\x3eJSONString\x3c/var\x3e \x3cstrong\x3e:\x3c/strong\x3e \x3cvar\x3eJSON\x3c/var\x3e\n       \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eMembers\x3c/var\x3e \x3cstrong\x3e,\x3c/strong\x3e \x3cvar\x3eJSONString\x3c/var\x3e \x3cstrong\x3e:\x3c/strong\x3e \x3cvar\x3eJSON\x3c/var\x3e\n\n\x3cvar\x3eJSONArray\x3c/var\x3e \x3d \x3cstrong\x3e[\x3c/strong\x3e \x3cstrong\x3e]\x3c/strong\x3e\n         \x3cem\x3eor\x3c/em\x3e \x3cstrong\x3e[\x3c/strong\x3e \x3cvar\x3eArrayElements\x3c/var\x3e \x3cstrong\x3e]\x3c/strong\x3e\n\x3cvar\x3eArrayElements\x3c/var\x3e \x3d \x3cvar\x3eJSON\x3c/var\x3e\n             \x3cem\x3eor\x3c/em\x3e \x3cvar\x3eArrayElements\x3c/var\x3e \x3cstrong\x3e,\x3c/strong\x3e \x3cvar\x3eJSON\x3c/var\x3e\x3c/pre\x3e\n\x3cp\x3eInsignificant whitespace may be present anywhere except within a \x3cvar\x3eJSONNumber\x3c/var\x3e (numbers must contain no whitespace) or \x3cvar\x3eJSONString\x3c/var\x3e (where it is interpreted as the corresponding character in the string, or would cause an error). The tab character (U+0009), carriage return (U+000D), line feed (U+000A), and space (U+0020) characters are the only valid whitespace characters.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3eJSON\x3c/code\x3e object contains methods for parsing JSON and converting values to JSON. It can\'t be called or constructed, and aside from its two method properties it has no interesting functionality of its own.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/dt\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/JSON/parse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/parse"\x3eparse\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eParse a string as JSON, optionally transform the produced value and its properties, and return the value.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/JSON/stringify" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/stringify"\x3estringify\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturn a JSON string corresponding to the specified value, optionally including only certain properties or replacing property values in a user-defined manner.\x3c/dd\x3e\n\x3c/dl\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e \x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e \x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e \x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e10.5\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e \x3c/div\x3e \x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e \x3c/div\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","JSON Notation","Description","Properties","Methods","Cross-browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math","title":"Math","_id":"4eea83d6a4c86c4dba000020","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eA built-in object that has properties and methods for mathematical constants and functions.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eUnlike the other global objects, \x3ccode\x3eMath\x3c/code\x3e is not a constructor. All properties and methods of \x3ccode\x3eMath\x3c/code\x3e are static. You refer to the constant pi as \x3ccode\x3eMath.PI\x3c/code\x3e and you call the sine function as \x3ccode\x3eMath.sin(x)\x3c/code\x3e, where \x3ccode\x3ex\x3c/code\x3e is the method\'s argument. Constants are defined with the full precision of real numbers in JavaScript.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/E" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/E"\x3eE\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eEuler\'s constant and the base of natural logarithms, approximately 2.718.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/LN2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/LN2"\x3eLN2\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eNatural logarithm of 2, approximately 0.693.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/LN10" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/LN10"\x3eLN10\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eNatural logarithm of 10, approximately 2.302.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/LOG2E" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/LOG2E"\x3eLOG2E\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eBase 2 logarithm of E, approximately 1.442.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/LOG10E" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/LOG10E"\x3eLOG10E\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eBase 10 logarithm of E, approximately 0.434.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/PI" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/PI"\x3ePI\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRatio of the circumference of a circle to its diameter, approximately 3.14159.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/SQRT1_2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/SQRT1_2"\x3eSQRT1_2\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSquare root of 1/2; equivalently, 1 over the square root of 2, approximately 0.707.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/SQRT2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/SQRT2"\x3eSQRT2\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSquare root of 2, approximately 1.414.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Constructor" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3c/dt\x3e \x3cdiv class \x3d "note"\x3eNote that the trigonometric functions (sin, cos, tan, asin, acos, atan, atan2) expect or return angles in radians - to convert radians to degrees divide by (Math.PI / 180), and multiply by this to convert the other way.\x3c/div\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/abs" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/abs"\x3eabs\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the absolute value (modulus) of a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/acos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/acos"\x3eacos\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the arccosine of a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/asin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/asin"\x3easin\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the arcsine of a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan"\x3eatan\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the arctangent of a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan2"\x3eatan2\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the arctangent of the quotient of its arguments.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/ceil" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/ceil"\x3eceil\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the smallest integer greater than or equal to a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/cos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/cos"\x3ecos\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the cosine of a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/exp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/exp"\x3eexp\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns E\x3csup\x3enumber\x3c/sup\x3e, where \x3cvar\x3enumber\x3c/var\x3e is the argument, and E is Euler\'s constant (2.718...), the base of the natural logarithm.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/floor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/floor"\x3efloor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the largest integer less than or equal to a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/log" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/log"\x3elog\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the natural logarithm (log\x3csub\x3ee\x3c/sub\x3e, also ln) of a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/max" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/max"\x3emax\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the largest of zero or more numbers.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/min" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/min"\x3emin\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the smallest of zero or more numbers.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/pow" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/pow"\x3epow\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns base to the exponent power, that is, base\x3csup\x3eexponent\x3c/sup\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/random" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random"\x3erandom\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a pseudo-random number between 0 and 1.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/round" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/round"\x3eround\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the value of a number rounded to the nearest integer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/sin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sin"\x3esin\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the sine of a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/sqrt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sqrt"\x3esqrt\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the positive square root of a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/tan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/tan"\x3etan\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the tangent of a number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/toSource" class \x3d "new "\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eReturns the string \x3ccode\x3e\x26quot;Math\x26quot;\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN","title":"NaN","_id":"4eea83d7a4c86c4dba000021","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eA value representing Not-A-Number.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eCore Global Property\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eNaN\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eNaN\x3c/code\x3e is a property of the \x3cem\x3eglobal object\x3c/em\x3e.\x3c/p\x3e\n\x3cp\x3eThe initial value of \x3ccode\x3eNaN\x3c/code\x3e is Not-A-Number \x26mdash; the same as the value of \x3ccode\x3eNumber.NaN\x3c/code\x3e. In modern browsers, \x3ccode\x3eNaN\x3c/code\x3e is a non-configurable, non-writable property. Even when this is not the case, avoid overriding it.\x3c/p\x3e\n\x3cp\x3eIt is rather rare to use \x3ccode\x3eNaN\x3c/code\x3e in a program. It is the returned value when Math functions fail (\x3ccode\x3eMath.sqrt(-1)\x3c/code\x3e) or when a function trying to parse a number fails (\x3ccode\x3eparseInt(\x26quot;blabla\x26quot;)\x3c/code\x3e).\x3c/p\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Testing_against_NaN"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eTesting against \x3ccode\x3eNaN\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eEquality operator (\x3ccode\x3e\x3d\x3d\x3c/code\x3e and \x3ccode\x3e\x3d\x3d\x3d\x3c/code\x3e) cannot be used to test a value against \x3ccode\x3eNaN\x3c/code\x3e. Use \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3e\x3ccode\x3eisNaN\x3c/code\x3e\x3c/a\x3e instead.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eNaN \x3d\x3d\x3d NaN;        // false\nNumber.NaN \x3d\x3d\x3d NaN; // false\nisNaN(NaN);         // true\nisNaN(Number.NaN);  // true\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Testing_against_NaN"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eTesting against \x3ccode\x3eNaN\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eEquality operator (\x3ccode\x3e\x3d\x3d\x3c/code\x3e and \x3ccode\x3e\x3d\x3d\x3d\x3c/code\x3e) cannot be used to test a value against \x3ccode\x3eNaN\x3c/code\x3e. Use \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3e\x3ccode\x3eisNaN\x3c/code\x3e\x3c/a\x3e instead.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eNaN \x3d\x3d\x3d NaN;        // false\nNumber.NaN \x3d\x3d\x3d NaN; // false\nisNaN(NaN);         // true\nisNaN(Number.NaN);  // true\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Functions/isNaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN"\x3eisNaN\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Description","Testing against NaN","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined",
"title":"undefined","_id":"4eea83d8a4c86c4dba000022","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe value undefined.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eCore Global Property\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e undefined \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eundefined\x3c/code\x3e is a property of the \x3cem\x3eglobal object\x3c/em\x3e, i.e. it is a variable in global scope.\x3c/p\x3e\n\x3cp\x3eThe initial value of \x3ccode\x3eundefined\x3c/code\x3e is the primitive value \x3ccode\x3eundefined\x3c/code\x3e. \x3c/p\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 0px none ; margin: 10px 0px; padding: 0px 10px; background-color: rgb(254, 244, 156); text-align: center;"\x3e\x3cp style \x3d "margin: 4px 0px; font-weight: bold;"\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e note\x3c/p\x3e\x3cp style \x3d "margin: 4px 0px;"\x3eStarting in JavaScript 1.8.5 (Firefox 4), \x3ccode\x3eundefined\x3c/code\x3e is non-writable, as per the ECMAScript 5 specification.\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cp\x3eA variable that has not been assigned a value is of type undefined. A method or statement also returns \x3ccode\x3eundefined\x3c/code\x3e if the variable that is being evaluated does not have an assigned value. A function returns \x3ccode\x3eundefined\x3c/code\x3e if a value was not \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/return" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/return"\x3ereturn\x3c/a\x3eed.\x3c/p\x3e\n\x3cp\x3eYou can use \x3ccode\x3eundefined\x3c/code\x3e and the strict equality and inequality operators to determine whether a variable has a value. In the following code, the variable \x3ccode\x3ex\x3c/code\x3e is not defined, and the \x3ccode\x3eif\x3c/code\x3e statement evaluates to true.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x;\nif (x \x3d\x3d\x3d undefined) {\n   // these statements execute\n}\nif (x !\x3d\x3d undefined) {\n   // these statements do not execute\n}\x3c/pre\x3e\r\n        \n\x3cdiv class \x3d "note"\x3eNote: The strict equality operator rather than the standard equality operator must be used here, because \x3ccode\x3ex \x3d\x3d undefined\x3c/code\x3e also checks whether \x3ccode\x3ex\x3c/code\x3e is \x3ccode\x3enull\x3c/code\x3e, while strict equality doesn\'t. \x3ccode\x3enull\x3c/code\x3e is not equivalent to \x3ccode\x3eundefined\x3c/code\x3e. See \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators"\x3ecomparison operators\x3c/a\x3e for details.\x3c/div\x3e\n\x3cp\x3eAlternatively, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/typeof_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/typeof"\x3etypeof\x3c/a\x3e can be used:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x;\nif (typeof x \x3d\x3d \'undefined\') {\n   // these statements execute\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/block","title":"block","_id":"4eea83d9a4c86c4dba000023","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eA block statement is used to group zero or more statements. The block is delimited by a pair of curly brackets.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Version_Information"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eVersion Information\x3c/h2\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e{\n   statement_1\n   statement_2\n   ...\n   statement_n\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estatement_1\x3c/code\x3e, \x3ccode\x3estatement_2\x3c/code\x3e, \x3ccode\x3estatement_n\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eStatements grouped within the block statement.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThis statement is commonly used with control flow statements (e.g. \x3ccode\x3eif\x3c/code\x3e, \x3ccode\x3efor\x3c/code\x3e, \x3ccode\x3ewhile\x3c/code\x3e). For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ewhile (x \x26lt; 10) {\n   x++;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3cstrong\x3eImportant\x3c/strong\x3e: JavaScript does \x3cstrong\x3enot\x3c/strong\x3e have block scope. Variables introduced with a block are scoped to the containing function or script, and the effects of setting them persist beyond the block itself. In other words, block statements do not introduce a scope. Although \x26quot;standalone\x26quot; blocks are valid syntax, you do not want to use standalone blocks in JavaScript, because they don\'t do what you think they do, if you think they do anything like such blocks in C or Java. For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x \x3d 1;\n{\n   var x \x3d 2;\n}\nalert(x); // outputs 2\x3c/pre\x3e\r\n        \n\x3cp\x3eThis outputs 2 because the \x3ccode\x3evar x\x3c/code\x3e statement within the conditional is in the same scope as the \x3ccode\x3evar x\x3c/code\x3e statement before the conditional. In C or Java, the equivalent code would have outputted 1.\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Version Information","Syntax","Parameters","Description"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/break","title":"break","_id":"4eea83daa4c86c4dba000024","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eTerminates the current loop, switch, or label statement and transfers program control to the statement following the terminated statement.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Version_Information"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eVersion Information\x3c/h2\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3e \x3cp\x3eECMA-262 (for the unlabeled version)\x3c/p\x3e \x3cp\x3eECMA-262, Edition 3 (for the labeled version)\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ebreak [label];\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elabel\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eIdentifier associated with the label of the statement.\x26nbsp; If the statement is not a loop or switch, this is required.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3ebreak\x3c/code\x3e statement includes an optional label that allows the program to break out of a labeled statement. The \x3ccode\x3ebreak\x3c/code\x3e statement needs to be nested within this labelled statement. The labelled statement can be any \x3ca title \x3d "En/Core JavaScript 1.5 Reference/Statements/Block" class \x3d "internal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/block"\x3eblock\x3c/a\x3e statement; it does not have to be preceded by a loop statement.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\x3cp\x3eThe following function has a \x3ccode\x3ebreak\x3c/code\x3e statement that terminates the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/while" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/while"\x3ewhile\x3c/a\x3e\x3c/code\x3e loop when \x3ccode\x3ei\x3c/code\x3e is 3, and then returns the value 3 * \x3ccode\x3ex\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction testBreak(x) {\n   var i \x3d 0;\n   while (i \x26lt; 6) {\n      if (i \x3d\x3d 3) {\n         break;\n      }\n      i +\x3d 1;\n   }\n   return i * x;\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/continue" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/continue"\x3e\x3ccode\x3econtinue\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/label" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/label"\x3e\x3ccode\x3elabel\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/switch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/switch"\x3e\x3ccode\x3eswitch\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Version Information","Syntax","Parameters","Description","Example","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/const","title":"const","_id":"4eea83e0a4c86c4dba000025","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eDeclares a read-only, named constant.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.5, NES 6.0 (Netscape extension, \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eC engine\x3c/a\x3e only)\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3econst \x3cem\x3evarname1 \x3d \x3cem\x3evalue1 [\x3c/em\x3e, \x3cem\x3evarname2\x3c/em\x3e \x3d \x3cem\x3evalue2 [\x3c/em\x3e, \x3cem\x3evarname3\x3c/em\x3e \x3d \x3cem\x3evalue3 [\x3c/em\x3e, ... [\x3c/em\x3e, \x3cem\x3evarnameN\x3c/em\x3e \x3d \x3cem\x3evalueN]]]]\x3c/em\x3e;\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evarnameN\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eConstant name. It can be any legal identifier.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evalueN\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eValue of the constant. It can be any legal expression.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eCreates a constant that can be global or local to the function in which it is declared. Constants follow the same scope rules as variables.\x3c/p\x3e\n\x3cp\x3eThe value of a constant cannot change through re-assignment, and a constant cannot be re-declared. Because of this, although it is possible to declare a constant without initializing it, it would be useless to do so.\x3c/p\x3e\n\x3cp\x3eA constant cannot share its name with a function or a variable in the same scope.\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Browser_Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser Compatibility\x3c/h2\x3e\n\x3cp style \x3d "margin-top: 0px; margin-right: 0px; margin-bottom: 1.286em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "\x3e\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3econst\x3c/code\x3e\x3cspan class \x3d "Apple-converted-space"\x3e\x26nbsp;\x3c/span\x3eis a\x3cspan class \x3d "Apple-converted-space"\x3e\x26nbsp;\x3c/span\x3e\x3cstrong\x3eMozilla-specific extension and is not part of ECMAScript 5.\x26nbsp;\x3c/strong\x3e\x3c/p\x3e\n\x3cp style \x3d "margin-top: 0px; margin-right: 0px; margin-bottom: 1.286em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "\x3eIt is supported in Firefox \x26amp; Chrome (V8) and partially supported in Opera 9+ \x26amp; Safari (though it acts as a \x3ccode\x3evar\x3c/code\x3e). It is not supported in IE6-9.\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cp\x3eThe following example produces the output \x26quot;\x3ccode\x3ea is 7.\x3c/code\x3e\x26quot;\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3econst a \x3d 7;\n0 \x26\x26 console.log(\x26quot;a is \x26quot; + a + \x26quot;.\x26quot;);\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/var" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/var"\x3evar\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/let" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/let"\x3e\x3ccode\x3elet\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Guide/Values, Variables, and Literals#Constants" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Values%2C_Variables%2C_and_Literals#Constants"\x3eConstants in JavaScript Guide\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\n\x3cdiv style \x3d "-webkit-border-radius: 8px; -moz-border-radius: 8px; -moz-opacity: 0; opacity: 0; display: none; padding: 10px; background-color: #ffffff; position: fixed; right: 0px; top: 0px;"\x3e\x3cimg alt \x3d "Replacing Emoji..." title \x3d "Replacing Emoji..." src \x3d "data:image/gif;base64,R0lGODlhEAAQAOYAAP////7+/qOjo/39/enp6bW1tfn5+fr6+vX19fz8/Kurq+3t7cDAwLGxscfHx+Xl5fT09LS0tPf398HBwc/Pz+bm5gMDA+Tk5N/f38TExO7u7pqamsLCwtTU1OLi4jw8PKioqLCwsPLy8q2trbKystvb26qqqtnZ2dfX17u7uyYmJs3NzdjY2Lm5uZ6ensvLy66urvv7++zs7FJSUurq6oWFhfb29kpKStzc3AwMDNHR0aSkpCkpKefn511dXb29vaenp8zMzLe3t/Hx8dDQ0FlZWWZmZsrKyqampvDw8ODg4Li4uL+/v+jo6PPz88jIyHp6eqWlpb6+vk5OTsPDw8bGxsXFxRQUFGpqat3d3fj4+NbW1rq6ury8vJCQkG5ubhwcHN7e3paWloKCgoyMjImJiWFhYXR0dFRUVIeHh5OTk0ZGRo6OjldXV39/fzIyMnd3d9ra2nx8fDY2NnFxcUFBQWxsbJSUlHh4eKGhoaKioi0tLSMjI4CAgNLS0qysrCH/C05FVFNDQVBFMi4wAwEAAAAh+QQEBQAAACwAAAAAEAAQAAAHyIAAggADgi1oCYOKghVfHQAbVwkHLSWLAE1vPgBqYAAUAj2KFQQAETw/ZXwrOy8ABwQBA2NFPwg+XjoFUSE2FREgEgAYNTNwNlqCk08CBReKL1GFih0sgyk7USAelxAOEwxHQGxeYmGXIi0kDVKDFzoBixjPgxIZG38xiz8CVCIAAZYICOKtA4QhSrogYAHEhAEAJSoAICDgxIsCDwRsAZDkxDQABkhECJBhBAArUTRcIqDgAQAOCgIggIHiUgBhAFakiGcgkaBAACH5BAQFAAAALAAAAAANAAsAAAdvgACCAAOCG3SFg4IXcDgAX3MDWjdMgzI+bgBnHwB3Fg4ADxoAHGgcUDcnFnSEYmNBEnIuOgwgKjIVABUCcmISB4IHIksCg1tcAYoAHSxBP0IFPcoAEA4TDQ0FTdMiLYMLYcmKGBcABhRIITHKPwKBACH5BAQFAAAALAAAAAAQAAgAAAdkgACCAAOCCmSFg4oAPWIPAGVmA04+XYsASWMuAGxGnDxUigROAERQHRtYKDw1AAZZAQMRIHEGG1wYQQ1rMh1FORoAGgwCEQYxggkQchZvBQGDF0TQiml3gysME1ULl00bTAxHgQAh+QQEBQAAACwDAAAADQAKAAAHZ4AAAQAAUkADhIkAMgUEAEhpAwhjRIkIJgUAIGUAAlM6ihh6KCNkODMuABAYATgHXFQXKEx2MlZTdTYCQjEJhAkIbjwzPwEXRIOKG0CJVQuKhBdpZGIwBU3QADgfPCpTC2HJiSFdiYEAIfkEBAUAAAAsBQAAAAsADgAAB3mAAAA6TAGChwALABwmARIuHYcpABlAAC1QOIcCHg55F3IFADYeAVwUMjhBXkkUXz42MQmCA1piM2dBAYaII6KIiE1jX1hkwAAeRTdrX7yHJA6HMYgBN3x5ig4dEEMsRhd3V21aAicvBQ96UgBbGwkRARkjAFZRioKBACH5BAQFAAAALAgAAQAIAA8AAAdigAoBBy0lAIcjABQCFYcAITI7LwBaFwEPWSFOcWpjNgADBiNQYiyOABxPp4cLG2U1Lo49UF92ZY4FVqsBZipnSgAXJm0EAm9vNmRLFgUAcSQDiT58BI6CF2DNhykBACIJjoEAIfkEBAUAAAAsBgACAAoADgAAB22AABkjABQCPQCJHg4hMjsvAAcEARQyD1khNhURIBIJiQMHTwIhGImnAEeQqKcaI0g7BawyG15eSKwcK6yJAWMzZA8AO0pxQmYEBUVmWiFfbQ4qLgAeRwMDPlMAZzwoqGhTARVrUqhQcAMAnqeBACH5BAQFAAAALAMABQANAAsAAAdygAJCMQkAAAMHTwIFFwAXRAGGkh0sklULkpIQDhMMRwVNmYYaJgohUgsskZlEKJJIbQiZAXpQIDIALR5GYhcYGW4aR301WgATYBFjaCszIQAERAMaPHADZ3UAajNhlh84AF9zAzJGVZIDsgBeWIVahYaBACH5BAQFAAAALAAACAAQAAgAAAdlgBMNDUAoAIeIIi0kDVKIFAIDiIcYF5NDUDl7NpMAKQJUIgAJHzkbBFAbND0dGyIoQCYGAEtZAEcqChtnJ1AcAEknkodDN1MDXmYAI3IVnQAdcxMAZD4BSWUvzwEQhztjkloJiIEAIfkEBAUAAAAsAAAGAA0ACgAAB2SAAIJWGwOChx0sUDMzZkGHhxAOfUVtRRmQgiIthywkhpAYFwBDZHt1Epk/AgNGfGU9Yn8LMihdCCwAR5gdM0shaiV5W5AQX3QBIGUAP1EahxdGKwBINQEiMCiHAakAKS6GBgmBACH5BAQFAAAALAAAAwALAA0AAAdygABPGAA6Ah4OITI7Az5XLiJYGTIPWSEATWx8c04xAAADB58ADmQDo59eWF9wHaifeGs3aEevqCUMp68QSG1GBq8DblMuCw0MQ0NKXQAUFAAYUA5MBQ8CozZeagE/IwBWow81JwATCgEIowESnyspAQCBACH5BAQFAAAALAAAAAAIAA8AAAdhgACCAAmCOoM4b4ccg0N8dQAZACgeAFUWIQ0DM3MKCGhQJ5NYKmgIB4MAHF4DgjtlZGolg2RYWGcoqYIXRAGDEiluZagAAxtQBUkZHRAAfnEAPQInL4MGJBEBkoIECg+qgQA7"/\x3e\x3c/div\x3e\n\x3cdiv style \x3d "-webkit-border-radius: 8px; -moz-border-radius: 8px; -moz-opacity: 0; opacity: 0; display: none; padding: 10px; background-color: #ffffff; position: fixed; right: 0px; top: 0px;"\x3e\x3cimg title \x3d "Replacing Emoji..." alt \x3d "Replacing Emoji..." src \x3d "data:image/gif;base64,R0lGODlhEAAQAOYAAP////7+/qOjo/39/enp6bW1tfn5+fr6+vX19fz8/Kurq+3t7cDAwLGxscfHx+Xl5fT09LS0tPf398HBwc/Pz+bm5gMDA+Tk5N/f38TExO7u7pqamsLCwtTU1OLi4jw8PKioqLCwsPLy8q2trbKystvb26qqqtnZ2dfX17u7uyYmJs3NzdjY2Lm5uZ6ensvLy66urvv7++zs7FJSUurq6oWFhfb29kpKStzc3AwMDNHR0aSkpCkpKefn511dXb29vaenp8zMzLe3t/Hx8dDQ0FlZWWZmZsrKyqampvDw8ODg4Li4uL+/v+jo6PPz88jIyHp6eqWlpb6+vk5OTsPDw8bGxsXFxRQUFGpqat3d3fj4+NbW1rq6ury8vJCQkG5ubhwcHN7e3paWloKCgoyMjImJiWFhYXR0dFRUVIeHh5OTk0ZGRo6OjldXV39/fzIyMnd3d9ra2nx8fDY2NnFxcUFBQWxsbJSUlHh4eKGhoaKioi0tLSMjI4CAgNLS0qysrCH/C05FVFNDQVBFMi4wAwEAAAAh+QQEBQAAACwAAAAAEAAQAAAHyIAAggADgi1oCYOKghVfHQAbVwkHLSWLAE1vPgBqYAAUAj2KFQQAETw/ZXwrOy8ABwQBA2NFPwg+XjoFUSE2FREgEgAYNTNwNlqCk08CBReKL1GFih0sgyk7USAelxAOEwxHQGxeYmGXIi0kDVKDFzoBixjPgxIZG38xiz8CVCIAAZYICOKtA4QhSrogYAHEhAEAJSoAICDgxIsCDwRsAZDkxDQABkhECJBhBAArUTRcIqDgAQAOCgIggIHiUgBhAFakiGcgkaBAACH5BAQFAAAALAAAAAANAAsAAAdvgACCAAOCG3SFg4IXcDgAX3MDWjdMgzI+bgBnHwB3Fg4ADxoAHGgcUDcnFnSEYmNBEnIuOgwgKjIVABUCcmISB4IHIksCg1tcAYoAHSxBP0IFPcoAEA4TDQ0FTdMiLYMLYcmKGBcABhRIITHKPwKBACH5BAQFAAAALAAAAAAQAAgAAAdkgACCAAOCCmSFg4oAPWIPAGVmA04+XYsASWMuAGxGnDxUigROAERQHRtYKDw1AAZZAQMRIHEGG1wYQQ1rMh1FORoAGgwCEQYxggkQchZvBQGDF0TQiml3gysME1ULl00bTAxHgQAh+QQEBQAAACwDAAAADQAKAAAHZ4AAAQAAUkADhIkAMgUEAEhpAwhjRIkIJgUAIGUAAlM6ihh6KCNkODMuABAYATgHXFQXKEx2MlZTdTYCQjEJhAkIbjwzPwEXRIOKG0CJVQuKhBdpZGIwBU3QADgfPCpTC2HJiSFdiYEAIfkEBAUAAAAsBQAAAAsADgAAB3mAAAA6TAGChwALABwmARIuHYcpABlAAC1QOIcCHg55F3IFADYeAVwUMjhBXkkUXz42MQmCA1piM2dBAYaII6KIiE1jX1hkwAAeRTdrX7yHJA6HMYgBN3x5ig4dEEMsRhd3V21aAicvBQ96UgBbGwkRARkjAFZRioKBACH5BAQFAAAALAgAAQAIAA8AAAdigAoBBy0lAIcjABQCFYcAITI7LwBaFwEPWSFOcWpjNgADBiNQYiyOABxPp4cLG2U1Lo49UF92ZY4FVqsBZipnSgAXJm0EAm9vNmRLFgUAcSQDiT58BI6CF2DNhykBACIJjoEAIfkEBAUAAAAsBgACAAoADgAAB22AABkjABQCPQCJHg4hMjsvAAcEARQyD1khNhURIBIJiQMHTwIhGImnAEeQqKcaI0g7BawyG15eSKwcK6yJAWMzZA8AO0pxQmYEBUVmWiFfbQ4qLgAeRwMDPlMAZzwoqGhTARVrUqhQcAMAnqeBACH5BAQFAAAALAMABQANAAsAAAdygAJCMQkAAAMHTwIFFwAXRAGGkh0sklULkpIQDhMMRwVNmYYaJgohUgsskZlEKJJIbQiZAXpQIDIALR5GYhcYGW4aR301WgATYBFjaCszIQAERAMaPHADZ3UAajNhlh84AF9zAzJGVZIDsgBeWIVahYaBACH5BAQFAAAALAAACAAQAAgAAAdlgBMNDUAoAIeIIi0kDVKIFAIDiIcYF5NDUDl7NpMAKQJUIgAJHzkbBFAbND0dGyIoQCYGAEtZAEcqChtnJ1AcAEknkodDN1MDXmYAI3IVnQAdcxMAZD4BSWUvzwEQhztjkloJiIEAIfkEBAUAAAAsAAAGAA0ACgAAB2SAAIJWGwOChx0sUDMzZkGHhxAOfUVtRRmQgiIthywkhpAYFwBDZHt1Epk/AgNGfGU9Yn8LMihdCCwAR5gdM0shaiV5W5AQX3QBIGUAP1EahxdGKwBINQEiMCiHAakAKS6GBgmBACH5BAQFAAAALAAAAwALAA0AAAdygABPGAA6Ah4OITI7Az5XLiJYGTIPWSEATWx8c04xAAADB58ADmQDo59eWF9wHaifeGs3aEevqCUMp68QSG1GBq8DblMuCw0MQ0NKXQAUFAAYUA5MBQ8CozZeagE/IwBWow81JwATCgEIowESnyspAQCBACH5BAQFAAAALAAAAAAIAA8AAAdhgACCAAmCOoM4b4ccg0N8dQAZACgeAFUWIQ0DM3MKCGhQJ5NYKmgIB4MAHF4DgjtlZGolg2RYWGcoqYIXRAGDEiluZagAAxtQBUkZHRAAfnEAPQInL4MGJBEBkoIECg+qgQA7"/\x3e\x3c/div\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Browser Compatibility","Examples","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/continue","title":"continue","_id":"4eea83e2a4c86c4dba000026","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eTerminates execution of the statements in the current iteration of the current or labelled loop, and continues execution of the loop with the next iteration.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262 (for the unlabeled version) \x3cp\x3eECMA-262, Edition 3 (for the labeled version)\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3econtinue [\x3cem\x3elabel\x3c/em\x3e]; \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elabel\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eIdentifier associated with the label of the statement.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIn contrast to the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/break" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/break"\x3ebreak\x3c/a\x3e\x3c/code\x3e statement, \x3ccode\x3econtinue\x3c/code\x3e does not terminate the execution of the loop entirely: instead,\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eIn a \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/while" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/while"\x3ewhile\x3c/a\x3e\x3c/code\x3e loop, it jumps back to the condition.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cul\x3e \x3cli\x3eIn a \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/for" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for"\x3efor\x3c/a\x3e\x3c/code\x3e loop, it jumps to the update expression.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eThe \x3ccode\x3econtinue\x3c/code\x3e statement can include an optional label that allows the program to jump to the next iteration of a labelled loop statement instead of the current loop. In this case, the \x3ccode\x3econtinue\x3c/code\x3e statement needs to be nested within this labelled statement.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_continue_with_while"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3econtinue\x3c/code\x3e with \x3ccode\x3ewhile\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example shows a \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/while" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/while"\x3ewhile\x3c/a\x3e\x3c/code\x3e loop that has a \x3ccode\x3econtinue\x3c/code\x3e statement that executes when the value of \x3ccode\x3ei\x3c/code\x3e is 3. Thus, \x3ccode\x3en\x3c/code\x3e takes on the values 1, 3, 7, and 12.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ei \x3d 0;\nn \x3d 0;\nwhile (i \x26lt; 5) {\n   i++;\n   if (i \x3d\x3d 3)\n      continue;\n   n +\x3d i;\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_continue_with_a_label"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3econtinue\x3c/code\x3e with a label\x3c/h4\x3e\n\x3cp\x3eIn the following example, a statement labeled \x3ccode\x3echeckiandj\x3c/code\x3e contains a statement labeled \x3ccode\x3echeckj\x3c/code\x3e. If \x3ccode\x3econtinue\x3c/code\x3e is encountered, the program continues at the top of the \x3ccode\x3echeckj\x3c/code\x3e statement. Each time \x3ccode\x3econtinue\x3c/code\x3e is encountered, \x3ccode\x3echeckj\x3c/code\x3e reiterates until its condition returns false. When false is returned, the remainder of the \x3ccode\x3echeckiandj\x3c/code\x3e statement is completed.\x3c/p\x3e\n\x3cp\x3eIf \x3ccode\x3econtinue\x3c/code\x3e had a label of \x3ccode\x3echeckiandj\x3c/code\x3e, the program would continue at the top of the \x3ccode\x3echeckiandj\x3c/code\x3e statement.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3echeckiandj:\nwhile (i \x26lt; 4) {\n   document.write(i + \x26quot;\x26lt;br\x26gt;\x26quot;);\n   i +\x3d 1;\n\n   checkj:\n   while (j \x26gt; 4) {\n      document.write(j + \x26quot;\x26lt;br\x26gt;\x26quot;);\n      j -\x3d 1;\n      if ((j % 2) \x3d\x3d 0)\n         continue checkj;\n      document.write(j + \x26quot; is odd.\x26lt;br\x26gt;\x26quot;);\n   }\n   document.write(\x26quot;i \x3d \x26quot; + i + \x26quot;\x26lt;br\x26gt;\x26quot;);\n   document.write(\x26quot;j \x3d \x26quot; + j + \x26quot;\x26lt;br\x26gt;\x26quot;);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_continue_with_while"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3econtinue\x3c/code\x3e with \x3ccode\x3ewhile\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example shows a \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/while" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/while"\x3ewhile\x3c/a\x3e\x3c/code\x3e loop that has a \x3ccode\x3econtinue\x3c/code\x3e statement that executes when the value of \x3ccode\x3ei\x3c/code\x3e is 3. Thus, \x3ccode\x3en\x3c/code\x3e takes on the values 1, 3, 7, and 12.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ei \x3d 0;\nn \x3d 0;\nwhile (i \x26lt; 5) {\n   i++;\n   if (i \x3d\x3d 3)\n      continue;\n   n +\x3d i;\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_continue_with_a_label"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3econtinue\x3c/code\x3e with a label\x3c/h4\x3e\n\x3cp\x3eIn the following example, a statement labeled \x3ccode\x3echeckiandj\x3c/code\x3e contains a statement labeled \x3ccode\x3echeckj\x3c/code\x3e. If \x3ccode\x3econtinue\x3c/code\x3e is encountered, the program continues at the top of the \x3ccode\x3echeckj\x3c/code\x3e statement. Each time \x3ccode\x3econtinue\x3c/code\x3e is encountered, \x3ccode\x3echeckj\x3c/code\x3e reiterates until its condition returns false. When false is returned, the remainder of the \x3ccode\x3echeckiandj\x3c/code\x3e statement is completed.\x3c/p\x3e\n\x3cp\x3eIf \x3ccode\x3econtinue\x3c/code\x3e had a label of \x3ccode\x3echeckiandj\x3c/code\x3e, the program would continue at the top of the \x3ccode\x3echeckiandj\x3c/code\x3e statement.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3echeckiandj:\nwhile (i \x26lt; 4) {\n   document.write(i + \x26quot;\x26lt;br\x26gt;\x26quot;);\n   i +\x3d 1;\n\n   checkj:\n   while (j \x26gt; 4) {\n      document.write(j + \x26quot;\x26lt;br\x26gt;\x26quot;);\n      j -\x3d 1;\n      if ((j % 2) \x3d\x3d 0)\n         continue checkj;\n      document.write(j + \x26quot; is odd.\x26lt;br\x26gt;\x26quot;);\n   }\n   document.write(\x26quot;i \x3d \x26quot; + i + \x26quot;\x26lt;br\x26gt;\x26quot;);\n   document.write(\x26quot;j \x3d \x26quot; + j + \x26quot;\x26lt;br\x26gt;\x26quot;);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/break" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/break"\x3ebreak\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Statements/label" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/label"\x3elabel\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using continue with while","Example: Using continue with a label","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/debugger","title":"debugger","_id":"4eea83e2a4c86c4dba000027","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eInvokes any available debugging functionality. If no debugging functionality is available, this statement has no effect.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd colspan \x3d "2" class \x3d "header"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMA-262 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3edebugger;\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3ccode\x3e\x3cbr/\x3e\n\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following example shows code where a debugger statement has been inserted, to invoke a debugger (if one exists) when the function is called.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction potentiallyBuggyCode()\n{\n  debugger;\n  // do potentially buggy stuff to examine, step through, etc.\n} \n\x3c/pre\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Examples\n"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/do...while","title":"do...while","_id":"4eea83e4a4c86c4dba000028","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCreates a loop that executes a specified statement until the test condition evaluates to false. The condition is evaluated after executing the statement, resulting in the specified statement executing at least once.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.2, NES 3.0\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262, Edition 3\n\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3edo\n   \x3ci\x3estatement\x3c/i\x3e\nwhile (\x3ci\x3econdition\x3c/i\x3e);\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3estatement\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A statement that is executed at least once and is re-executed each time the condition evaluates to true. To execute multiple statements within the loop, use a \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/block" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/block"\x3eblock\x3c/a\x3e statement (\x3ccode\x3e{ ... }\x3c/code\x3e) to group those statements.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3econdition\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An expression evaluated after each pass through the loop. If \x3ccode\x3econdition\x3c/code\x3e evaluates to true, the \x3ccode\x3estatement\x3c/code\x3e is re-executed. When \x3ccode\x3econdition\x3c/code\x3e evaluates to false, control passes to the statement following the \x3ccode\x3edo...while\x3c/code\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_do...while"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3edo...while\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eIn the following example, the \x3ccode\x3edo...while\x3c/code\x3e loop iterates at least once and reiterates until \x3ccode\x3ei\x3c/code\x3e is no longer less than 5.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3edo {\n   i +\x3d 1;\n   document.write(i);\n} while (i \x26lt; 5);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_do...while"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3edo...while\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eIn the following example, the \x3ccode\x3edo...while\x3c/code\x3e loop iterates at least once and reiterates until \x3ccode\x3ei\x3c/code\x3e is no longer less than 5.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3edo {\n   i +\x3d 1;\n   document.write(i);\n} while (i \x26lt; 5);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/while" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/while"\x3ewhile\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for"\x3efor\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Examples "," Example: Using do...while "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/export","title":"export","_id":"4eea83e4a4c86c4dba000029","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eAllows a signed script to provide properties, functions, and objects to other signed or unsigned scripts. This feature is not in ECMA-262, Edition 3.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.2, NES 3.0\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e export \x3cem\x3ename1\x3c/em\x3e, \x3cem\x3ename2\x3c/em\x3e, ..., \x3cem\x3enameN\x3c/em\x3e; \x3c/code\x3e\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3e export *; \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3cem\x3enameN\x3c/em\x3e\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eProperty, function, or object to be exported.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eTypically, information in a signed script is available only to scripts signed by the same principals. By exporting properties, functions, or objects, a signed script makes this information available to any script (signed or unsigned). The receiving script uses the companion import statement to access the information.\x3c/p\x3e\n\x3cp\x3eThe first syntax exports the specified properties, functions, and objects.\x3c/p\x3e\n\x3cp\x3eThe second syntax exports all properties, functions, and objects from the script.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/import" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/import"\x3eimport\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/for",
"title":"for","_id":"4eea83e9a4c86c4dba00002a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eCreates a loop that consists of three optional expressions, enclosed in parentheses and separated by semicolons, followed by a statement executed in the loop.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3efor ([\x3cem\x3einitialization\x3c/em\x3e]; [\x3cem\x3econdition\x3c/em\x3e]; [\x3cem\x3efinal-expression\x3c/em\x3e])\n   \x3cem\x3estatement\x3c/em\x3e\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3einitialization\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn expression (including assignment expressions) or variable declaration. Typically used to initialize a counter variable. This expression may optionally declare new variables with the \x3ccode\x3evar\x3c/code\x3e keyword. These variables are not local to the loop, i.e. they are in the same scope the \x3ccode\x3efor\x3c/code\x3e loop is in. The result of this expression is discarded.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3econdition\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn expression to be evaluated before each loop iteration. If this expression evaluates to true, \x3ccode\x3estatement\x3c/code\x3e is executed. This conditional test is optional. If omitted, the condition always evaluates to true. If the expression evaluates to false, execution skips to the first expression following the \x3ccode\x3efor\x3c/code\x3e construct.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efinal-expression\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn expression to be evaluated at the end of each loop iteration. This occurs before the next evaluation of \x3ccode\x3econdition\x3c/code\x3e. Generally used to update or increment the counter variable.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estatement\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA statement that is executed as long as the condition evaluates to true. To execute multiple statements within the loop, use a \x3ca title \x3d "en/JavaScript/Reference/Statements/block" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/block"\x3eblock\x3c/a\x3e statement (\x3ccode\x3e{ ... }\x3c/code\x3e) to group those statements.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_for"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3efor\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following \x3ccode\x3efor\x3c/code\x3e statement starts by declaring the variable \x3ccode\x3ei\x3c/code\x3e and initializing it to \x3ccode\x3e0\x3c/code\x3e. It checks that \x3ccode\x3ei\x3c/code\x3e is less than nine, performs the two succeeding statements, and increments \x3ccode\x3ei\x3c/code\x3e by 1 after each pass through the loop.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efor (var i \x3d 0; i \x26lt; 9; i++) {\n   n +\x3d i;\n   myfunc(n);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_for_without_the_statement_section"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3efor\x3c/code\x3e without the \x3ccode\x3estatement\x3c/code\x3e section\x3c/h4\x3e\n\x3cp\x3eThe following \x3ccode\x3efor\x3c/code\x3e cycle calculates the offset position of a node in the \x3cem\x3e[final-expression]\x3c/em\x3e section, and therefore it does not require the use of a \x3ccode\x3estatement\x3c/code\x3e or \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/block" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/block"\x3eblock\x3c/a\x3e statement\x3c/code\x3e section:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction showOffsetPos (sId) {\n  var nLeft \x3d 0, nTop \x3d 0;\n  for (var oItNode \x3d document.getElementById(sId); oItNode; nLeft +\x3d oItNode.offsetLeft, nTop +\x3d oItNode.offsetTop, oItNode \x3d oItNode.offsetParent);\n  alert(\x26quot;Offset position of \\\x26quot;\x26quot; + sId + \x26quot;\\\x26quot; element:\\n left: \x26quot; + nLeft + \x26quot;px;\\n top: \x26quot; + nTop + \x26quot;px;\x26quot;);\n}\x3c/pre\x3e\r\n        \n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In this case, when you do not use the \x3ccode\x3estatement\x3c/code\x3e section, \x3cstrong\x3ea semicolon is put immediately after the declaration of the cycle\x3c/strong\x3e.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_for"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3efor\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following \x3ccode\x3efor\x3c/code\x3e statement starts by declaring the variable \x3ccode\x3ei\x3c/code\x3e and initializing it to \x3ccode\x3e0\x3c/code\x3e. It checks that \x3ccode\x3ei\x3c/code\x3e is less than nine, performs the two succeeding statements, and increments \x3ccode\x3ei\x3c/code\x3e by 1 after each pass through the loop.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efor (var i \x3d 0; i \x26lt; 9; i++) {\n   n +\x3d i;\n   myfunc(n);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_for_without_the_statement_section"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3efor\x3c/code\x3e without the \x3ccode\x3estatement\x3c/code\x3e section\x3c/h4\x3e\n\x3cp\x3eThe following \x3ccode\x3efor\x3c/code\x3e cycle calculates the offset position of a node in the \x3cem\x3e[final-expression]\x3c/em\x3e section, and therefore it does not require the use of a \x3ccode\x3estatement\x3c/code\x3e or \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/block" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/block"\x3eblock\x3c/a\x3e statement\x3c/code\x3e section:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction showOffsetPos (sId) {\n  var nLeft \x3d 0, nTop \x3d 0;\n  for (var oItNode \x3d document.getElementById(sId); oItNode; nLeft +\x3d oItNode.offsetLeft, nTop +\x3d oItNode.offsetTop, oItNode \x3d oItNode.offsetParent);\n  alert(\x26quot;Offset position of \\\x26quot;\x26quot; + sId + \x26quot;\\\x26quot; element:\\n left: \x26quot; + nLeft + \x26quot;px;\\n top: \x26quot; + nTop + \x26quot;px;\x26quot;);\n}\x3c/pre\x3e\r\n        \n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In this case, when you do not use the \x3ccode\x3estatement\x3c/code\x3e section, \x3cstrong\x3ea semicolon is put immediately after the declaration of the cycle\x3c/strong\x3e.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/while" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/while"\x3ewhile\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Statements/do...while" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/do...while"\x3edo...while\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in"\x3efor...in\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Examples","Example: Using for","Example: Using for without the statement section","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in","title":"for...in","_id":"4eea83eaa4c86c4dba00002b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eIterates over the enumerable properties of an object, in arbitrary order. For each distinct property, statements can be executed.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cpre class \x3d "eval"\x3efor (\x3cem\x3evariable\x3c/em\x3e in \x3cem\x3eobject\x3c/em\x3e) {\n  \x3cspan style \x3d "font-style: italic;"\x3e...\x3c/span\x3e\n} \n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evariable\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA different property name is assigned to \x3cem\x3evariable\x3c/em\x3e on each iteratation.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eobject\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eObject whose enumerable properties are iterated.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3eDescription\x3c/p\x3e\n\x3cp\x3eA \x3ccode\x3efor...in\x3c/code\x3e loop does not iterate over non\x26ndash;enumerable properties. Objects created from built\x26ndash;in constructors like Array and Object have inherited non\x26ndash;enumerable properties from \x3ccode\x3eObject.prototype\x3c/code\x3e and \x3ccode\x3eString.prototype\x3c/code\x3e that are not enumerable, such as \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String"\x3eString\x3c/a\x3e\x3c/code\x3e\'s \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf"\x3eindexOf\x3c/a\x3e\x3c/code\x3e method or \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/code\x3e\'s \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e method. The loop will iterate over all enumerable properties of the object or that it inherits from its constructor\'s proptotype (including any which overwrite built-in properties).\x3c/p\x3e\n\x3cp\x3eA \x3ccode\x3efor...in\x3c/code\x3e loop iterates over the properties of an object in an arbitrary order (see the \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/delete_Operator#Cross-browser_issues" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/delete#Cross-browser_issues"\x3edelete operator\x3c/a\x3e for more on why one cannot depend on the seeming orderliness of iteration, at least in a cross-browser setting). If a property is modified in one iteration and then visited at a later time, its value in the loop is its value at that later time. A property that is deleted before it has been visited will not be visited later. Properties added to the object over which iteration is occurring may either be visited or omitted from iteration. In general it is best not to add, modify or remove properties from the object during iteration, other than the property currently being visited. There is no guarantee whether or not an added property will be visited, whether a modified property (other than the current one) will be visited before or after it is modified, or whether a deleted property will be visited before it is deleted.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3eWhere only the properties of the object should be considered, a\x26nbsp;\x3ca class \x3d "internal" title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/hasOwnProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty"\x3ehasOwnProperty\x3c/a\x3e\x26nbsp;check should be performed to ensure that only properties of the object and not inherited properties are used (\x3ca class \x3d "internal" title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/propertyIsEnumerable" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable"\x3epropertyIsEnumerable\x3c/a\x3e\x26nbsp;can also be used but is not intuitive).\x3cbr/\x3e \x3cbr/\x3e In some cases, built\x26ndash;in prototypes be usefully extended by the user where there are no concerns caused by inclusion of other code that may use\x26nbsp;\x3ccode\x3efor..in\x3c/code\x3e\x26nbsp; and not perform the above checks.\x3c/div\x3e\n\x3cdiv class \x3d "note"\x3e \x3cp\x3e\x3cstrong\x3e\x3ccode\x3efor..in\x3c/code\x3e should not be used to iterate over an \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e where index order is important.\x3c/strong\x3e Array indexes are just enumerable properties with integer names and are otherwise identical to general Object properties.\x26nbsp; There is no guarantee that \x3ccode\x3efor...in\x3c/code\x3e will return the indexes in any particular order and it will return all enumerable properties, including those with non\x26ndash;integer names and those that are inherited.\x3c/p\x3e \x3cp\x3eBecause the order of iteration is implementation dependent, iterating over an array may not visit elements in a consistent order. Therefore it is better to use a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for"\x3efor\x3c/a\x3e loop with a numeric index when iterating over arrays where the order of access is important.\x3c/p\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cp\x3eThe following function takes as its arguments an object and the object\'s name. It then iterates over all the object\'s enumerable properties and returns a string of the property names and their values.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {a:1, b:2, c:3};\n\nfunction show_props(obj, objName) {  \n   var result \x3d \x26quot;\x26quot;;  \n   for (var prop in obj) {  \n      result +\x3d objName + \x26quot;.\x26quot; + prop + \x26quot; \x3d \x26quot; + obj[prop] + \x26quot;\\n\x26quot;;  \n   }  \n   return result;  \n}  \n\nalert(show_props(o, \x26quot;o\x26quot;));\n/* alerts:\no.a \x3d 1\no.b \x3d 2\no.c \x3d 3\n*/\x3c/pre\x3e\r\n        \n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3cspan id \x3d "Iterating_over_only"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eIterating over only\x26nbsp;\x3c/h4\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3cspan id \x3d "Iterating_over_only"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eIterating over only\x26nbsp;\x3c/h4\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/for_each...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for_each...in"\x3efor each...in\x3c/a\x3e - similar to \x3ccode\x3efor...in\x3c/code\x3e, but iterates over the values of object\'s properties, rather than the property names themselves. (\x3ca title \x3d "en/New_in_JavaScript_1.6" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eNew in JavaScript 1.6\x3c/a\x3e.)\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for"\x3efor\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Iterators_and_Generators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Iterators_and_Generators"\x3eGenerator expressions\x3c/a\x3e (uses the \x3ccode\x3efor...in\x3c/code\x3e syntax)\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Examples","Iterating over only\x26nbsp;","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/for_each...in","title":"for each...in","_id":"4eea83eaa4c86c4dba00002c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eIterates a specified variable over all values of object\'s properties. For each distinct property, a specified statement is executed.\x3c/p\x3e\n\x3cp\x3e\x3cstrong\x3eNote:\x3c/strong\x3e \x3ccode\x3efor each...in\x3c/code\x3e is a Mozilla extension, and is not part of the ECMAScript standard.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/JavaScript/New_in_JavaScript/1.6" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3e\nfor each (\x3cem\x3evariable\x3c/em\x3e in \x3cem\x3eobject\x3c/em\x3e)\n  \x3cem\x3estatement\x3c/em\x3e\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evariable\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eVariable to iterate over property values, optionally declared with the \x3ccode\x3evar\x3c/code\x3e keyword. This variable is local to the function, not to the loop.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eobject\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eObject for which the properties are iterated.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estatement\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eA statement to execute for each property. To execute multiple statements within the loop, use a \x3ca title \x3d "en/JavaScript/Reference/Statements/block" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/block"\x3eblock\x3c/a\x3e statement (\x3ccode\x3e{ ... }\x3c/code\x3e) to group those statements.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eSome built-in properties are not iterated over. These include all built-in methods of objects, e.g. \x3ccode\x3eString\x3c/code\x3e\'s \x3ccode\x3eindexOf\x3c/code\x3e method. However, all user-defined properties are iterated over.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_for_each...in"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3efor each...in\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3e\x3cstrong\x3eWarning:\x3c/strong\x3e Never use a loop like this on arrays. Only use it on objects. \x3ca title \x3d "en/JavaScript/Reference/Statements/for...in#Description" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in#Description"\x3eDetails\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eThe following snippet iterates over an object\'s properties, calculating their sum:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar sum \x3d 0;\nvar obj \x3d {prop1: 5, prop2: 13, prop3: 8};\nfor each (var item in obj) {\n  sum +\x3d item;\n}\nprint(sum); // prints \x26quot;26\x26quot;, which is 5+13+8\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_for_each...in"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3efor each...in\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3e\x3cstrong\x3eWarning:\x3c/strong\x3e Never use a loop like this on arrays. Only use it on objects. \x3ca title \x3d "en/JavaScript/Reference/Statements/for...in#Description" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in#Description"\x3eDetails\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eThe following snippet iterates over an object\'s properties, calculating their sum:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar sum \x3d 0;\nvar obj \x3d {prop1: 5, prop2: 13, prop3: 8};\nfor each (var item in obj) {\n  sum +\x3d item;\n}\nprint(sum); // prints \x26quot;26\x26quot;, which is 5+13+8\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in"\x3efor...in\x3c/a\x3e - a similar statement that iterates over the property \x3cem\x3enames\x3c/em\x3e.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for"\x3efor\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Working_with_Arrays#Array_comprehensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Working_with_Arrays#Array_comprehensions"\x3eArray\x26nbsp;comprehensions\x3c/a\x3e (these use \x3ccode\x3efor each\x3c/code\x3e)\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using for each...in","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/function","title":"function","_id":"4eea83eba4c86c4dba00002d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eDeclares a function with the specified parameters.\x3c/p\x3e\n\x3cp\x3eYou can also define functions using the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/code\x3e constructor and the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special/function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/function"\x3efunction operator\x3c/a\x3e\x3c/code\x3e (function expression).\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd colspan \x3d "2" class \x3d "header"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3efunction \x3ci\x3ename\x3c/i\x3e([\x3ci\x3eparam\x3c/i\x3e] [, \x3ci\x3eparam\x3c/i\x3e] [..., \x3ci\x3eparam\x3c/i\x3e]) {\n   \x3ci\x3estatements\x3c/i\x3e\n}\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ename\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e The function name.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eparam\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e The name of an argument to be passed to the function. A function can have up to 255 arguments.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3estatements\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e The statements which comprise the body of the function.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eTo return a value, the function must have a \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/return" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/return"\x3ereturn\x3c/a\x3e\x3c/code\x3e statement that specifies the value to return.\n\x3c/p\x3e\x3cp\x3eA function created with the \x3ccode\x3efunction\x3c/code\x3e statement is a \x3ccode\x3eFunction\x3c/code\x3e object and has all the properties, methods, and behavior of \x3ccode\x3eFunction\x3c/code\x3e objects. See \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Function" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/code\x3e for detailed information on functions.\n\x3c/p\x3e\x3cp\x3eA function can also be declared inside an expression. In this case the function is usually anonymous. See \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_Operator" title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_Operator"\x3efunction operator\x3c/a\x3e\x3c/code\x3e for more information about the \x3ccode\x3efunction\x3c/code\x3e (function expression).\n\x3c/p\x3e\x3cp\x3eFunctions can be conditionally declared. That is, a function definition can be nested within an \x3ccode\x3eif\x3c/code\x3e statement. Technically, such declarations are not actually function declarations; they are function expressions.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_function"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3efunction\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following code declares a function that returns the total dollar amount of sales, when given the number of units sold of products \x3ccode\x3ea\x3c/code\x3e, \x3ccode\x3eb\x3c/code\x3e, and \x3ccode\x3ec\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction calc_sales(units_a, units_b, units_c) {\n   return units_a*79 + units_b * 129 + units_c * 699;\n}\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_function"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3efunction\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following code declares a function that returns the total dollar amount of sales, when given the number of units sold of products \x3ccode\x3ea\x3c/code\x3e, \x3ccode\x3eb\x3c/code\x3e, and \x3ccode\x3ec\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction calc_sales(units_a, units_b, units_c) {\n   return units_a*79 + units_b * 129 + units_c * 699;\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Functions" title \x3d "en/Core_JavaScript_1.5_Reference/Functions"\x3eFunctions\x3c/a\x3e\x3c/code\x3e,\n\x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Function" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/code\x3e,\n\x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_Operator" title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_Operator"\x3efunction operator\x3c/a\x3e\x3c/code\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Parameters "," Description "," Examples "," Example: Using function "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/if...else","title":"if...else","_id":"4eea83eca4c86c4dba00002e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eExecutes a statement if a specified condition is true. If the condition is false, another statement can be executed.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd colspan \x3d "2" class \x3d "header"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3e\nif (\x3cem\x3econdition\x3c/em\x3e)\n   \x3cem\x3estatement1\x3c/em\x3e\n[else\n   \x3cem\x3estatement2\x3c/em\x3e]\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3econdition\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eAn expression that evaluates to true or false.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estatement1\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eStatement that is executed if \x3ccode\x3econdition\x3c/code\x3e evaluates to true. Can be any statement, including further nested \x3ccode\x3eif\x3c/code\x3e statements. To execute multiple statements, use a \x3ca title \x3d "en/JavaScript/Reference/Statements/block" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/block"\x3eblock\x3c/a\x3e statement ({ ... }) to group those statements.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estatement2\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eStatement that is executed if \x3ccode\x3econdition\x3c/code\x3e evaluates to false and the \x3ccode\x3eelse\x3c/code\x3e clause exists. Can be any statement, including block statements and further nested \x3ccode\x3eif\x3c/code\x3e statements.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eMultiple \x3ccode\x3eif...else\x3c/code\x3e statements can be nested to create an \x3ccode\x3eelse if\x3c/code\x3e clause:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nif (\x3cem\x3econdition1\x3c/em\x3e)\n   \x3cem\x3estatement1\x3c/em\x3e\nelse if (\x3cem\x3econdition2\x3c/em\x3e)\n   \x3cem\x3estatement2\x3c/em\x3e\nelse if (\x3cem\x3econdition3\x3c/em\x3e)\n   \x3cem\x3estatement3\x3c/em\x3e\n...\nelse\n   \x3cem\x3estatementN\x3c/em\x3e\n\x3c/pre\x3e\n\x3cp\x3eTo see how this works, this is how it would look like if the nesting were properly indented:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nif (\x3cem\x3econdition1\x3c/em\x3e)\n   \x3cem\x3estatement1\x3c/em\x3e\nelse\n   if (\x3cem\x3econdition2\x3c/em\x3e)\n      \x3cem\x3estatement2\x3c/em\x3e\n   else\n      if (\x3cem\x3econdition3\x3c/em\x3e)\n...\n\x3c/pre\x3e\n\x3cp\x3eTo execute multiple statements within a clause, use a block statement (\x3ccode\x3e{ ... }\x3c/code\x3e) to group those statements. In general, it is a good practice to always use block statements, especially in code involving nested \x3ccode\x3eif\x3c/code\x3e statements:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nif (\x3cem\x3econdition\x3c/em\x3e) {\n   \x3cem\x3estatements1\x3c/em\x3e\n} else {\n   \x3cem\x3estatements2\x3c/em\x3e\n}\n\x3c/pre\x3e\n\x3cp\x3eDo not confuse the primitive boolean values \x3ccode\x3etrue\x3c/code\x3e and \x3ccode\x3efalse\x3c/code\x3e with the true and false values of the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3eBoolean\x3c/a\x3e object. Any value that is not \x3ccode\x3eundefined\x3c/code\x3e, \x3ccode\x3enull\x3c/code\x3e, \x3ccode\x3e0\x3c/code\x3e, \x3ccode\x3eNaN\x3c/code\x3e, or the empty string (\x3ccode\x3e\x26quot;\x26quot;\x3c/code\x3e), and any object, including a Boolean object whose value is false, evaluates to true when passed to a conditional statement. For example:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar b \x3d new Boolean(false);\nif (b) // this condition evaluates to true\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_if...else"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eif...else\x3c/code\x3e\x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3e\nif (cipher_char \x3d\x3d from_char) {\n   result \x3d result + to_char;\n   x++;\n} else {\n   result \x3d result + clear_char;\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Assignment_within_the_conditional_expression"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Assignment within the conditional expression\x3c/h4\x3e\n\x3cp\x3eIt is advisable to not use simple assignments in a conditional expression, because the assignment can be confused with equality when glancing over the code. For example, do not use the following code:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nif (x \x3d y) {\n   /* do the right thing */\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you need to use an assignment in a conditional expression, a common practice is to put additional parentheses around the assignment. For example:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nif ((x \x3d y)) {\n   /* do the right thing */\n}\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_if...else"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eif...else\x3c/code\x3e\x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3e\nif (cipher_char \x3d\x3d from_char) {\n   result \x3d result + to_char;\n   x++;\n} else {\n   result \x3d result + clear_char;\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Assignment_within_the_conditional_expression"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Assignment within the conditional expression\x3c/h4\x3e\n\x3cp\x3eIt is advisable to not use simple assignments in a conditional expression, because the assignment can be confused with equality when glancing over the code. For example, do not use the following code:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nif (x \x3d y) {\n   /* do the right thing */\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you need to use an assignment in a conditional expression, a common practice is to put additional parentheses around the assignment. For example:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nif ((x \x3d y)) {\n   /* do the right thing */\n}\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using if...else","Example: Assignment within the conditional expression"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/import","title":"import","_id":"4eea83f1a4c86c4dba00002f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eAllows a script to import properties, functions, and objects from a signed script that has exported the information.\n\x3c/p\x3e\x3cp\x3eThis feature is not in ECMA 262, Edition 3.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.2, NES 3.0\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nimport \x3ci\x3eobjectName\x3c/i\x3e.\x3ci\x3ename1\x3c/i\x3e, \x3ci\x3eobjectName\x3c/i\x3e.\x3ci\x3ename2\x3c/i\x3e, ..., \x3ci\x3eobjectName\x3c/i\x3e.\x3ci\x3enameN\x3c/i\x3e;\n\x3c/code\x3e\n\x3c/p\x3e\x3cp\x3e\x3ccode\x3e\nimport \x3ci\x3eobjectName\x3c/i\x3e.\x3ci\x3e*\x3c/i\x3e;\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eobjectName\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Name of the object that will receive the imported names.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3enameN\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Property, function, or object to be imported.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eobjectName\x3c/code\x3e parameter is the name of the object that will receive the imported names. For example, if \x3ccode\x3ef\x3c/code\x3e and \x3ccode\x3ep\x3c/code\x3e have been exported, and if \x3ccode\x3eobj\x3c/code\x3e is an object from the importing script, the following code makes \x3ccode\x3ef\x3c/code\x3e and \x3ccode\x3ep\x3c/code\x3e accessible in the importing script as properties of \x3ccode\x3eobj\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eimport obj.f, obj.p;\n\x3c/pre\x3e\n\x3cp\x3eThe first syntax imports the specified properties, functions, and objects from the exported script.\n\x3c/p\x3e\x3cp\x3eThe second syntax imports all properties, functions, and objects from the exported script.\n\x3c/p\x3e\x3cp\x3eTypically, information in a signed script is available only to scripts signed by the same principals. By exporting (using the \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/export" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/export"\x3eexport\x3c/a\x3e\x3c/code\x3e statement) properties, functions, or objects, a signed script makes this information available to any script (signed or unsigned). The receiving script uses the \x3ccode\x3eimport\x3c/code\x3e statement to access the information.\n\x3c/p\x3e\x3cp\x3eThe script must load the export script into a window, frame, or layer before it can import and use any exported properties, functions, and objects.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/export" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/export"\x3eexport\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/label",
"title":"label","_id":"4eea83f2a4c86c4dba000030","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eProvides a statement with an identifier that you can refer to using a \x3ccode\x3ebreak\x3c/code\x3e or \x3ccode\x3econtinue\x3c/code\x3e statement.\x3c/p\x3e\n\x3cp\x3eFor example, you can use a label to identify a loop, and then use the \x3ccode\x3ebreak\x3c/code\x3e or \x3ccode\x3econtinue\x3c/code\x3e statements to indicate whether a program should interrupt the loop or continue its execution.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.2, NES 3.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262, Edition 3\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cpre class \x3d "eval"\x3e\x3cem\x3elabel\x3c/em\x3e\x26nbsp;:\n   \x3cem\x3estatement\x3c/em\x3e\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elabel\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAny JavaScript identifier that is not a reserved word.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estatement\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eStatements. \x3ccode\x3ebreak\x3c/code\x3e can be used with any labeled statement, and \x3ccode\x3econtinue\x3c/code\x3e can be used with looping labeled statements.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Avoid_using_labels"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eAvoid using labels\x3c/h2\x3e\n\x3cp\x3eLabels are not very commonly used in JavaScript since they make programs harder to read an understand. As much as possible, avoid using labels and, depending on the cases, prefer \x3ca title \x3d "function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/function"\x3ecalling functions\x3c/a\x3e or \x3ca title \x3d "throw" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/throw"\x3ethrowing\x3c/a\x3e an error.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "continue_Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3econtinue\x3c/code\x3e Example\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar i,j;\n\nloop1:\nfor (i \x3d 0; i \x26lt; 3; i++) {      //The first for statement is labeled \x26quot;loop1\x26quot;\n   loop2:\n   for (j \x3d 0; j \x26lt; 3; j++) {   //The second for statement is labeled \x26quot;loop2\x26quot;\n      if (i \x3d\x3d 1 \x26amp;\x26amp; j \x3d\x3d 1) {\n         continue loop1;\n      } else {\n         0 \x26\x26 console.log(\x26quot;i \x3d \x26quot; + i + \x26quot;, j \x3d \x26quot; + j);\n      }\n   }\n} \n// Output is:\n//   \x26quot;i \x3d 0, j \x3d 0\x26quot;\n//   \x26quot;i \x3d 0, j \x3d 1\x26quot;\n//   \x26quot;i \x3d 0, j \x3d 2\x26quot;\n//   \x26quot;i \x3d 1, j \x3d 0\x26quot;\n//   \x26quot;i \x3d 2, j \x3d 0\x26quot;\n//   \x26quot;i \x3d 2, j \x3d 1\x26quot;\n//   \x26quot;i \x3d 2, j \x3d 2\x26quot;\n// Notice how it skips both \x26quot;i \x3d 1, j \x3d 1\x26quot; and \x26quot;i \x3d 1, j \x3d 2\x26quot;\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3cspan id \x3d "Example_2_(continue)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample 2 \x3ccode\x3e(continue)\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eGiven an array of items and an array of tests, this example counts the number of items that passes all the tests.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar itemsPassed \x3d 0;\nvar i, j;\n\ntop:\nfor (i \x3d 0; i \x26lt; items.length; i++){\n  for (j \x3d 0; j \x26lt; tests.length; j++)\n    if (!tests[j].pass(items[i]))\n      continue top;\n  itemsPassed++;\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example_3_(break)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample 3 \x3ccode\x3e(break)\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eGiven an array of items and an array of tests, this example determines whether all items pass all tests.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar allPass \x3d true;\nvar i, j;\n\ntop:\nfor (i \x3d 0; items.length; i++)\n  for (j \x3d 0; j \x26lt; tests.length; i++)\n    if (!tests[j].pass(items[i])){\n      allPass \x3d false;\n      break top;\n    }\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "continue_Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3econtinue\x3c/code\x3e Example\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar i,j;\n\nloop1:\nfor (i \x3d 0; i \x26lt; 3; i++) {      //The first for statement is labeled \x26quot;loop1\x26quot;\n   loop2:\n   for (j \x3d 0; j \x26lt; 3; j++) {   //The second for statement is labeled \x26quot;loop2\x26quot;\n      if (i \x3d\x3d 1 \x26amp;\x26amp; j \x3d\x3d 1) {\n         continue loop1;\n      } else {\n         0 \x26\x26 console.log(\x26quot;i \x3d \x26quot; + i + \x26quot;, j \x3d \x26quot; + j);\n      }\n   }\n} \n// Output is:\n//   \x26quot;i \x3d 0, j \x3d 0\x26quot;\n//   \x26quot;i \x3d 0, j \x3d 1\x26quot;\n//   \x26quot;i \x3d 0, j \x3d 2\x26quot;\n//   \x26quot;i \x3d 1, j \x3d 0\x26quot;\n//   \x26quot;i \x3d 2, j \x3d 0\x26quot;\n//   \x26quot;i \x3d 2, j \x3d 1\x26quot;\n//   \x26quot;i \x3d 2, j \x3d 2\x26quot;\n// Notice how it skips both \x26quot;i \x3d 1, j \x3d 1\x26quot; and \x26quot;i \x3d 1, j \x3d 2\x26quot;\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3cspan id \x3d "Example_2_(continue)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample 2 \x3ccode\x3e(continue)\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eGiven an array of items and an array of tests, this example counts the number of items that passes all the tests.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar itemsPassed \x3d 0;\nvar i, j;\n\ntop:\nfor (i \x3d 0; i \x26lt; items.length; i++){\n  for (j \x3d 0; j \x26lt; tests.length; j++)\n    if (!tests[j].pass(items[i]))\n      continue top;\n  itemsPassed++;\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example_3_(break)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample 3 \x3ccode\x3e(break)\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eGiven an array of items and an array of tests, this example determines whether all items pass all tests.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar allPass \x3d true;\nvar i, j;\n\ntop:\nfor (i \x3d 0; items.length; i++)\n  for (j \x3d 0; j \x26lt; tests.length; i++)\n    if (!tests[j].pass(items[i])){\n      allPass \x3d false;\n      break top;\n    }\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/break" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/break"\x3ebreak\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/continue" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/continue"\x3econtinue\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Avoid using labels","Examples","continue Example","Example 2 (continue)","Example 3 (break)","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/let","title":"let","_id":"4eea83f2a4c86c4dba000031","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eDeclares a local variable, optionally initializing it to a value.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3elet\x3c/code\x3e definition:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3elet var1 [\x3d value1] [, var2 [\x3d value2]] [, ..., varN [\x3d valueN]];\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3ccode\x3elet\x3c/code\x3e expression:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3elet (var1 [\x3d value1] [, var2 [\x3d value2]] [, ..., varN [\x3d valueN]]) expression;\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3ccode\x3elet\x3c/code\x3e statement:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3elet (var1 [\x3d value1] [, var2 [\x3d value2]] [, ..., varN [\x3d valueN]]) statement;\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3ctable style \x3d "" class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth scope \x3d "col"\x3eParameter\x3c/th\x3e \x3cth scope \x3d "col"\x3eDescription\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evar1\x3c/code\x3e, \x3ccode\x3evar2\x3c/code\x3e, \x26hellip;, \x3ccode\x3evarN\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eVariable name. It can be any legal identifier.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evalue1\x3c/code\x3e, \x3ccode\x3evalue2\x3c/code\x3e, \x26hellip;, \x3ccode\x3evalueN\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInitial value of the variable. It can be any legal expression.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eexpression\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eAny legal \x3ca title \x3d "en/JavaScript/Guide/Expressions and Operators#Expressions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Expressions_and_Operators#Expressions"\x3eexpression\x3c/a\x3e.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3estatement\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eAny legal \x3ca title \x3d "en/JavaScript/Reference/Statements" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements"\x3estatement\x3c/a\x3e.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3elet\x3c/code\x3e allows you to declare variables, limiting its scope to the block, statement, or expression on which is used. This is unlike the \x3ca title \x3d "en/JavaScript/Reference/Statements/var" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/var"\x3e\x3ccode\x3evar\x3c/code\x3e\x3c/a\x3e keyword, which defines a variable globally, or local to an entire function regardless of block scope.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cp\x3eA \x3cem\x3elet expression\x3c/em\x3e limit the scope of the variable declared only in that expression.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d 5;\nlet(a \x3d 6) alert(a); // 6\nalert(a); // 5\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;Used inside a block, \x3cem\x3elet\x3c/em\x3e limits the variable\'s scope to that block. Note the difference between \x3cem\x3evar \x3c/em\x3ewhich its scope is inside the function where is declared\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d 5;\nvar b \x3d 10;\nif (a \x3d\x3d\x3d 5) {\n  let a \x3d 4; // The scope is inside the if-block\n  var b \x3d 1; // The scope is inside the function\n\n  0 \x26\x26 console.log(a);  // 4\n  0 \x26\x26 console.log(b);  // 1\n} \n0 \x26\x26 console.log(a); // 5\n0 \x26\x26 console.log(b); // 1\x3c/pre\x3e\r\n        \n\x3cp\x3eYou can use the \x3cem\x3elet\x3c/em\x3e keyword to bind variables locally in the scope of for loops instead of using a global variable (defined using \x3cem\x3evar\x3c/em\x3e) for that.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efor (let i \x3d 0; i\x26lt;10; i++) {\n  alert(i); // 1, 2, 3, 4 ... 9\n}\n\nalert(i); // i is not defined\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/var" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/var"\x3e\x3ccode\x3evar\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/const" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/const"\x3e\x3ccode\x3econst\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/New in JavaScript/1.7#Block scope with let (Merge into let Statement)" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.7#Block_scope_with_let_(Merge_into_let_Statement)"\x3eNew in\x26nbsp;JavaScript 1.7\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/return","title":"return","_id":"4eea83f3a4c86c4dba000032","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSpecifies the value to be returned by a function.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nreturn [\x3cem\x3eexpression\x3c/em\x3e];\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eexpression\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e The expression to return. If omitted, \x3ccode\x3eundefined\x3c/code\x3e is returned instead.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_return"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3ereturn\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the square of its argument, \x3ccode\x3ex\x3c/code\x3e, where \x3ccode\x3ex\x3c/code\x3e is a number.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction square(x) {\n   return x * x;\n}\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_return"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3ereturn\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the square of its argument, \x3ccode\x3ex\x3c/code\x3e, where \x3ccode\x3ex\x3c/code\x3e is a number.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction square(x) {\n   return x * x;\n}\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Functions" title \x3d "en/Core_JavaScript_1.5_Reference/Functions"\x3eFunctions\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Examples "," Example: Using return "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/switch","title":"switch","_id":"4eea83f4a4c86c4dba000033","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eEvaluates an expression, matching the expression\'s value to a case label, and executes statements associated with that case.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table" style \x3d "width: auto;"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd colspan \x3d "2" class \x3d "header"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.2, NES 3.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262, Edition 3\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cpre class \x3d "eval"\x3e\nswitch (\x3cem\x3eexpression\x3c/em\x3e) {\n   case \x3cem\x3elabel1\x3c/em\x3e:\n      \x3cem\x3estatements1\x3c/em\x3e\n      [break;]\n   case \x3cem\x3elabel2\x3c/em\x3e:\n      \x3cem\x3estatements2\x3c/em\x3e\n      [break;]\n   ...\n   case \x3cem\x3elabelN\x3c/em\x3e:\n      \x3cem\x3estatementsN\x3c/em\x3e\n      [break;]\n   default:\n      \x3cem\x3estatements_def\x3c/em\x3e\n      [break;]\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eexpression\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eAn expression matched against each label.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elabelN\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eIdentifier used to match against \x3ccode\x3eexpression\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estatementsN\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eStatements that are executed if \x3ccode\x3eexpression\x3c/code\x3e matches the associated label.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estatements_def\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eStatements that are executed if \x3ccode\x3eexpression\x3c/code\x3e does not match any label.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eIf a match is found, the program executes the associated statements. If multiple cases match the provided value, the first case that matches is selected, even if the cases are not equal to each other.\x3c/p\x3e\n\x3cp\x3eThe program first looks for a \x3ccode\x3ecase\x3c/code\x3e clause with a label matching the value of expression and then transfers control to that clause, executing the associated statements. If no matching label is found, the program looks for the optional \x3ccode\x3edefault\x3c/code\x3e clause, and if found, transfers control to that clause, executing the associated statements. If no \x3ccode\x3edefault\x3c/code\x3e clause is found, the program continues execution at the statement following the end of \x3ccode\x3eswitch\x3c/code\x3e. By convention, the \x3ccode\x3edefault\x3c/code\x3e clause is the last clause, but it does not need to be so.\x3c/p\x3e\n\x3cp\x3eThe optional \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/break" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/break"\x3ebreak\x3c/a\x3e\x3c/code\x3e statement associated with each case label ensures that the program breaks out of switch once the matched statement is executed and continues execution at the statement following switch. If \x3ccode\x3ebreak\x3c/code\x3e is omitted, the program continues execution at the next statement in the \x3ccode\x3eswitch\x3c/code\x3e statement.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_switch"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3eswitch\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eIn the following example, if \x3ccode\x3eexpression\x3c/code\x3e evaluates to \x26quot;Bananas\x26quot;, the program matches the value with case \x26quot;Bananas\x26quot; and executes the associated statement. When \x3ccode\x3ebreak\x3c/code\x3e is encountered, the program breaks out of \x3ccode\x3eswitch\x3c/code\x3e and executes the statement following \x3ccode\x3eswitch\x3c/code\x3e. If \x3ccode\x3ebreak\x3c/code\x3e were omitted, the statement for case \x26quot;Cherries\x26quot; would also be executed.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eswitch (expr) {\n   case \x26quot;Oranges\x26quot;:\n      document.write(\x26quot;Oranges are $0.59 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   case \x26quot;Apples\x26quot;:\n      document.write(\x26quot;Apples are $0.32 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   case \x26quot;Bananas\x26quot;:\n      document.write(\x26quot;Bananas are $0.48 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   case \x26quot;Cherries\x26quot;:\n      document.write(\x26quot;Cherries are $3.00 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   case \x26quot;Mangoes\x26quot;:\n   case \x26quot;Papayas\x26quot;:\n      document.write(\x26quot;Mangoes and papayas are $2.79 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   default:\n      document.write(\x26quot;Sorry, we are out of \x26quot; + expr + \x26quot;.\x26lt;br\x26gt;\x26quot;);\n}\ndocument.write(\x26quot;Is there anything else you\'d like?\x26lt;br\x26gt;\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_switch"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3eswitch\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eIn the following example, if \x3ccode\x3eexpression\x3c/code\x3e evaluates to \x26quot;Bananas\x26quot;, the program matches the value with case \x26quot;Bananas\x26quot; and executes the associated statement. When \x3ccode\x3ebreak\x3c/code\x3e is encountered, the program breaks out of \x3ccode\x3eswitch\x3c/code\x3e and executes the statement following \x3ccode\x3eswitch\x3c/code\x3e. If \x3ccode\x3ebreak\x3c/code\x3e were omitted, the statement for case \x26quot;Cherries\x26quot; would also be executed.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eswitch (expr) {\n   case \x26quot;Oranges\x26quot;:\n      document.write(\x26quot;Oranges are $0.59 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   case \x26quot;Apples\x26quot;:\n      document.write(\x26quot;Apples are $0.32 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   case \x26quot;Bananas\x26quot;:\n      document.write(\x26quot;Bananas are $0.48 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   case \x26quot;Cherries\x26quot;:\n      document.write(\x26quot;Cherries are $3.00 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   case \x26quot;Mangoes\x26quot;:\n   case \x26quot;Papayas\x26quot;:\n      document.write(\x26quot;Mangoes and papayas are $2.79 a pound.\x26lt;br\x26gt;\x26quot;);\n      break;\n   default:\n      document.write(\x26quot;Sorry, we are out of \x26quot; + expr + \x26quot;.\x26lt;br\x26gt;\x26quot;);\n}\ndocument.write(\x26quot;Is there anything else you\'d like?\x26lt;br\x26gt;\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using switch"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/throw","title":"throw","_id":"4eea83fba4c86c4dba000034","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eThrows a user-defined exception.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.4\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262, Edition 3\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3ethrow \x3cem\x3eexpression\x3c/em\x3e; \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eexpression\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe expression to throw.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3ethrow\x3c/code\x3e statement to throw an exception. When you throw an exception, \x3ccode\x3eexpression\x3c/code\x3e specifies the value of the exception. Each of the following throws an exception:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3ethrow \x26quot;Error2\x26quot;; // generates an exception with a string value\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3ethrow 42; // generates an exception with the value 42\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3ethrow true; // generates an exception with the value true\x3c/code\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Throw_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Throw an object\x3c/h4\x3e\n\x3cp\x3eYou can specify an object when you throw an exception. You can then reference the object\'s properties in the \x3ccode\x3ecatch\x3c/code\x3e block. The following example creates an object \x3ccode\x3emyUserException\x3c/code\x3e of type \x3ccode\x3eUserException\x3c/code\x3e and uses it in a \x3ccode\x3ethrow\x3c/code\x3e statement.\x3c/p\x3e\n\x3cpre\x3efunction UserException(message) {\n   this.message \x3d message;\n   this.name \x3d \x26quot;UserException\x26quot;;\n}\nfunction getMonthName(mo) {\n   mo \x3d mo-1; // Adjust month number for array index (1\x3dJan, 12\x3dDec)\n   var months \x3d new Array(\x26quot;Jan\x26quot;, \x26quot;Feb\x26quot;, \x26quot;Mar\x26quot;, \x26quot;Apr\x26quot;, \x26quot;May\x26quot;, \x26quot;Jun\x26quot;, \x26quot;Jul\x26quot;,\n      \x26quot;Aug\x26quot;, \x26quot;Sep\x26quot;, \x26quot;Oct\x26quot;, \x26quot;Nov\x26quot;, \x26quot;Dec\x26quot;);\n   if (months[mo]\x26nbsp;!\x3d\x3d undefined) {\n      return months[mo];\n   } else {\n      myUserException \x3d new UserException(\x26quot;InvalidMonthNo\x26quot;);\n      throw myUserException;\n   }\n}\n\ntry {\n   // statements to try\n   var myMonth \x3d 15; // 15 is out of bound to raise the exception\n   monthName \x3d getMonthName(myMonth);\n} catch (e) {\n   monthName \x3d \x26quot;unknown\x26quot;;\n   logMyErrors(e.message, e.name); // pass exception object to err handler\n}\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Another_example_of_throwing_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Another example of throwing an object\x3c/h4\x3e\n\x3cp\x3eThe following example tests an input string for a U.S. zip code. If the zip code uses an invalid format, the throw statement throws an exception by creating an object of type \x3ccode\x3eZipCodeFormatException\x3c/code\x3e.\x3c/p\x3e\n\x3cpre\x3e/*\n * Creates a ZipCode object.\n *\n * Accepted formats for a zip code are:\n *    12345\n *    12345-6789\n *    123456789\n *    12345 6789\n *\n * If the argument passed to the ZipCode constructor does not\n * conform to one of these patterns, an exception is thrown.\n */\n\nfunction ZipCode(zip) {\n   zip \x3d new String(zip);\n   pattern \x3d /[0-9]{5}([- ]?[0-9]{4})?/;\n   if (pattern.test(zip)) {\n      // zip code value will be the first match in the string\n      this.value \x3d zip.match(pattern)[0];\n      this.valueOf \x3d function() {\n         return this.value\n      };\n      this.toString \x3d function() {\n         return String(this.value)\n      };\n   } else {\n      throw new ZipCodeFormatException(zip);\n   }\n}\n\nfunction ZipCodeFormatException(value) {\n   this.value \x3d value;\n   this.message \x3d \x26quot;does not conform to the expected format for a zip code\x26quot;;\n   this.toString \x3d function() {\n      return this.value + this.message\n   };\n}\n\n/*\n * This could be in a script that validates address data\n * for US addresses.\n */\n\nvar ZIPCODE_INVALID \x3d -1;\nvar ZIPCODE_UNKNOWN_ERROR \x3d -2;\n\nfunction verifyZipCode(z) {\n   try {\n      z \x3d new ZipCode(z);\n   } catch (e) {\n      if (e instanceof ZipCodeFormatException) {\n         return ZIPCODE_INVALID;\n      } else {\n         return ZIPCODE_UNKNOWN_ERROR;\n      }\n   }\n   return z;\n}\n\na \x3d verifyZipCode(95060);         // returns 95060\nb \x3d verifyZipCode(9560;)          // returns -1\nc \x3d verifyZipCode(\x26quot;a\x26quot;);           // returns -1\nd \x3d verifyZipCode(\x26quot;95060\x26quot;);       // returns 95060\ne \x3d verifyZipCode(\x26quot;95060 1234\x26quot;);  // returns 95060 1234\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Rethrow_an_exception"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Rethrow an exception\x3c/h4\x3e\n\x3cp\x3eYou can use \x3ccode\x3ethrow\x3c/code\x3e to rethrow an exception after you catch it. The following example catches an exception with a numeric value and rethrows it if the value is over 50. The rethrown exception propagates up to the enclosing function or to the top level so that the user sees it.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3etry {\n   throw n; // throws an exception with a numeric value\n} catch (e) {\n   if (e \x26lt;\x3d 50) {\n      // statements to handle exceptions 1-50\n   } else {\n      // cannot handle this exception, so rethrow\n      throw e;\n   }\n}\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Throw_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Throw an object\x3c/h4\x3e\n\x3cp\x3eYou can specify an object when you throw an exception. You can then reference the object\'s properties in the \x3ccode\x3ecatch\x3c/code\x3e block. The following example creates an object \x3ccode\x3emyUserException\x3c/code\x3e of type \x3ccode\x3eUserException\x3c/code\x3e and uses it in a \x3ccode\x3ethrow\x3c/code\x3e statement.\x3c/p\x3e\n\x3cpre\x3efunction UserException(message) {\n   this.message \x3d message;\n   this.name \x3d \x26quot;UserException\x26quot;;\n}\nfunction getMonthName(mo) {\n   mo \x3d mo-1; // Adjust month number for array index (1\x3dJan, 12\x3dDec)\n   var months \x3d new Array(\x26quot;Jan\x26quot;, \x26quot;Feb\x26quot;, \x26quot;Mar\x26quot;, \x26quot;Apr\x26quot;, \x26quot;May\x26quot;, \x26quot;Jun\x26quot;, \x26quot;Jul\x26quot;,\n      \x26quot;Aug\x26quot;, \x26quot;Sep\x26quot;, \x26quot;Oct\x26quot;, \x26quot;Nov\x26quot;, \x26quot;Dec\x26quot;);\n   if (months[mo]\x26nbsp;!\x3d\x3d undefined) {\n      return months[mo];\n   } else {\n      myUserException \x3d new UserException(\x26quot;InvalidMonthNo\x26quot;);\n      throw myUserException;\n   }\n}\n\ntry {\n   // statements to try\n   var myMonth \x3d 15; // 15 is out of bound to raise the exception\n   monthName \x3d getMonthName(myMonth);\n} catch (e) {\n   monthName \x3d \x26quot;unknown\x26quot;;\n   logMyErrors(e.message, e.name); // pass exception object to err handler\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Another_example_of_throwing_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Another example of throwing an object\x3c/h4\x3e\n\x3cp\x3eThe following example tests an input string for a U.S. zip code. If the zip code uses an invalid format, the throw statement throws an exception by creating an object of type \x3ccode\x3eZipCodeFormatException\x3c/code\x3e.\x3c/p\x3e\n\x3cpre\x3e/*\n * Creates a ZipCode object.\n *\n * Accepted formats for a zip code are:\n *    12345\n *    12345-6789\n *    123456789\n *    12345 6789\n *\n * If the argument passed to the ZipCode constructor does not\n * conform to one of these patterns, an exception is thrown.\n */\n\nfunction ZipCode(zip) {\n   zip \x3d new String(zip);\n   pattern \x3d /[0-9]{5}([- ]?[0-9]{4})?/;\n   if (pattern.test(zip)) {\n      // zip code value will be the first match in the string\n      this.value \x3d zip.match(pattern)[0];\n      this.valueOf \x3d function() {\n         return this.value\n      };\n      this.toString \x3d function() {\n         return String(this.value)\n      };\n   } else {\n      throw new ZipCodeFormatException(zip);\n   }\n}\n\nfunction ZipCodeFormatException(value) {\n   this.value \x3d value;\n   this.message \x3d \x26quot;does not conform to the expected format for a zip code\x26quot;;\n   this.toString \x3d function() {\n      return this.value + this.message\n   };\n}\n\n/*\n * This could be in a script that validates address data\n * for US addresses.\n */\n\nvar ZIPCODE_INVALID \x3d -1;\nvar ZIPCODE_UNKNOWN_ERROR \x3d -2;\n\nfunction verifyZipCode(z) {\n   try {\n      z \x3d new ZipCode(z);\n   } catch (e) {\n      if (e instanceof ZipCodeFormatException) {\n         return ZIPCODE_INVALID;\n      } else {\n         return ZIPCODE_UNKNOWN_ERROR;\n      }\n   }\n   return z;\n}\n\na \x3d verifyZipCode(95060);         // returns 95060\nb \x3d verifyZipCode(9560;)          // returns -1\nc \x3d verifyZipCode(\x26quot;a\x26quot;);           // returns -1\nd \x3d verifyZipCode(\x26quot;95060\x26quot;);       // returns 95060\ne \x3d verifyZipCode(\x26quot;95060 1234\x26quot;);  // returns 95060 1234\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Rethrow_an_exception"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Rethrow an exception\x3c/h4\x3e\n\x3cp\x3eYou can use \x3ccode\x3ethrow\x3c/code\x3e to rethrow an exception after you catch it. The following example catches an exception with a numeric value and rethrows it if the value is over 50. The rethrown exception propagates up to the enclosing function or to the top level so that the user sees it.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3etry {\n   throw n; // throws an exception with a numeric value\n} catch (e) {\n   if (e \x26lt;\x3d 50) {\n      // statements to handle exceptions 1-50\n   } else {\n      // cannot handle this exception, so rethrow\n      throw e;\n   }\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/try...catch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch"\x3etry...catch\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description",
"Examples","Example: Throw an object","Example: Another example of throwing an object","Example: Rethrow an exception","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch","title":"try...catch","_id":"4eea83fca4c86c4dba000035","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eMarks a block of statements to try, and specifies a response, should an exception be thrown.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.4 \x3cp\x3eJavaScript 1.5, NES 6.0: Added multiple catch clauses (Netscape extension).\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262, Edition 3\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3etry {\n   \x3cem\x3etry_statements\x3c/em\x3e\n}\n[catch (\x3cem\x3eexception_var_1\x3c/em\x3e if \x3cem\x3econdition_1\x3c/em\x3e) {\n   \x3cem\x3ecatch_statements_1\x3c/em\x3e\n}]\n...\n[catch (\x3cem\x3eexception_var_2\x3c/em\x3e) {\n   \x3cem\x3ecatch_statements_2\x3c/em\x3e\n}]\n[finally {\n   \x3cem\x3efinally_statements\x3c/em\x3e\n}]\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3etry_statements\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe statements to be executed.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ecatch_statements_1\x3c/code\x3e, \x3ccode\x3ecatch_statements_2\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eStatements that are executed if an exception is thrown in the \x3ccode\x3etry\x3c/code\x3e block.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eexception_var_1\x3c/code\x3e, \x3ccode\x3eexception_var_2\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn identifier to hold an exception object for the associated \x3ccode\x3ecatch\x3c/code\x3e clause.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3econdition_1\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA conditional expression.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efinally_statements\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eStatements that are executed after the \x3ccode\x3etry\x3c/code\x3e statement completes. These statements execute regardless of whether or not an exception was thrown or caught.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etry\x3c/code\x3e statement consists of a \x3ccode\x3etry\x3c/code\x3e block, which contains one or more statements, and at least one \x3ccode\x3ecatch\x3c/code\x3e clause or a \x3ccode\x3efinally\x3c/code\x3e clause, or both. That is, there are three forms of the \x3ccode\x3etry\x3c/code\x3e statement:\x3c/p\x3e\n\x3col\x3e \x3cli\x3e\x3ccode\x3etry...catch\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3etry...finally\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3etry...catch...finally\x3c/code\x3e\x3c/li\x3e\n\x3c/ol\x3e\n\x3cp\x3eA \x3ccode\x3ecatch\x3c/code\x3e clause contain statements that specify what to do if an exception is thrown in the \x3ccode\x3etry\x3c/code\x3e block. That is, you want the \x3ccode\x3etry\x3c/code\x3e block to succeed, and if it does not succeed, you want control to pass to the \x3ccode\x3ecatch\x3c/code\x3e block. If any statement within the \x3ccode\x3etry\x3c/code\x3e block (or in a function called from within the \x3ccode\x3etry\x3c/code\x3e block) throws an exception, control immediately shifts to the \x3ccode\x3ecatch\x3c/code\x3e clause. If no exception is thrown in the \x3ccode\x3etry\x3c/code\x3e block, the \x3ccode\x3ecatch\x3c/code\x3e clause is skipped.\x3c/p\x3e\n\x3cp\x3eThe \x3ccode\x3efinally\x3c/code\x3e clause executes after the \x3ccode\x3etry\x3c/code\x3e block and \x3ccode\x3ecatch\x3c/code\x3e clause(s) execute but before the statements following the \x3ccode\x3etry\x3c/code\x3e statement. It always executes, regardless of whether or not an exception was thrown or caught.\x3c/p\x3e\n\x3cp\x3eYou can nest one or more \x3ccode\x3etry\x3c/code\x3e statements. If an inner \x3ccode\x3etry\x3c/code\x3e statement does not have a \x3ccode\x3ecatch\x3c/code\x3e clause, the enclosing \x3ccode\x3etry\x3c/code\x3e statement\'s \x3ccode\x3ecatch\x3c/code\x3e clause is entered.\x3c/p\x3e\n\x3cp\x3eYou also use the \x3ccode\x3etry\x3c/code\x3e statement to handle Java exceptions. See the \x3ca title \x3d "en/JavaScript/Guide" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide"\x3eCore JavaScript 1.5 Guide\x3c/a\x3e for information on Java exceptions.\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Unconditional_catch_clause"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUnconditional \x3ccode\x3ecatch\x3c/code\x3e clause\x3c/h4\x3e\n\x3cp\x3eWhen a single, unconditional \x3ccode\x3ecatch\x3c/code\x3e clause is used, the \x3ccode\x3ecatch\x3c/code\x3e block is entered when any exception is thrown. For example, when the exception occurs in the following code, control transfers to the \x3ccode\x3ecatch\x3c/code\x3e clause.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n   throw \x26quot;myException\x26quot;; // generates an exception\n}\ncatch (e) {\n   // statements to handle any exceptions\n   logMyErrors(e); // pass exception object to error handler\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Conditional_catch_clauses"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eConditional \x3ccode\x3ecatch\x3c/code\x3e clauses\x3c/h4\x3e\n\x3cp\x3eYou can also use one or more conditional \x3ccode\x3ecatch\x3c/code\x3e clauses to handle specific exceptions. In this case, the appropriate \x3ccode\x3ecatch\x3c/code\x3e clause is entered when the specified exception is thrown. In the following example, code in the \x3ccode\x3etry\x3c/code\x3e block can potentially throw three exceptions: \x3ccode\x3eTypeError\x3c/code\x3e, \x3ccode\x3eRangeError\x3c/code\x3e, and \x3ccode\x3eEvalError\x3c/code\x3e. When an exception occurs, control transfers to the appropriate \x3ccode\x3ecatch\x3c/code\x3e clause. If the exception is not one of the specified exceptions and an unconditional \x3ccode\x3ecatch\x3c/code\x3e clause is found, control transfers to that \x3ccode\x3ecatch\x3c/code\x3e clause.\x3c/p\x3e\n\x3cp\x3eIf you use an unconditional \x3ccode\x3ecatch\x3c/code\x3e clause with one or more conditional \x3ccode\x3ecatch\x3c/code\x3e clauses, the unconditional \x3ccode\x3ecatch\x3c/code\x3e clause must be specified last. Otherwise, the unconditional \x3ccode\x3ecatch\x3c/code\x3e clause will intercept all types of exception before they can reach the conditional ones.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n   myroutine(); // may throw three exceptions\n} catch (e if e instanceof TypeError) {\n   // statements to handle TypeError exceptions\n} catch (e if e instanceof RangeError) {\n   // statements to handle RangeError exceptions\n} catch (e if e instanceof EvalError) {\n   // statements to handle EvalError exceptions\n} catch (e) {\n   // statements to handle any unspecified exceptions\n   logMyErrors(e); // pass exception object to error handler\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eNote: This functionality is not part of the ECMAScript specification.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "The_exception_identifier"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eThe exception identifier\x3c/h4\x3e\n\x3cp\x3eWhen an exception is thrown in the \x3ccode\x3etry\x3c/code\x3e block, \x3cem\x3e\x3ccode\x3eexception_var\x3c/code\x3e\x3c/em\x3e (e.g. the \x3ccode\x3ee\x3c/code\x3e in \x3ccode\x3ecatch (e)\x3c/code\x3e) holds the value specified by the \x3ccode\x3ethrow\x3c/code\x3e statement. You can use this identifier to get information about the exception that was thrown.\x3c/p\x3e\n\x3cp\x3eThis identifier is local to the \x3ccode\x3ecatch\x3c/code\x3e clause. That is, it is created when the \x3ccode\x3ecatch\x3c/code\x3e clause is entered, and after the \x3ccode\x3ecatch\x3c/code\x3e clause finishes executing, the identifier is no longer available.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "The_finally_clause"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eThe \x3ccode\x3efinally\x3c/code\x3e clause\x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3efinally\x3c/code\x3e clause contains statements to execute after the \x3ccode\x3etry\x3c/code\x3e block and \x3ccode\x3ecatch\x3c/code\x3e clause(s) execute but before the statements following the \x3ccode\x3etry\x3c/code\x3e statement. The \x3ccode\x3efinally\x3c/code\x3e clause executes regardless of whether or not an exception is thrown. If an exception is thrown, the statements in the \x3ccode\x3efinally\x3c/code\x3e clause execute even if no \x3ccode\x3ecatch\x3c/code\x3e clause handles the exception.\x3c/p\x3e\n\x3cp\x3eYou can use the \x3ccode\x3efinally\x3c/code\x3e clause to make your script fail gracefully when an exception occurs; for example, you may need to release a resource that your script has tied up. The following example opens a file and then executes statements that use the file (server-side JavaScript allows you to access files). If an exception is thrown while the file is open, the \x3ccode\x3efinally\x3c/code\x3e clause closes the file before the script fails.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eopenMyFile()\ntry {\n   // tie up a resource\n   writeMyFile(theData);\n}\nfinally {\n   closeMyFile(); // always close the resource\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Unconditional_catch_clause"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUnconditional \x3ccode\x3ecatch\x3c/code\x3e clause\x3c/h4\x3e\n\x3cp\x3eWhen a single, unconditional \x3ccode\x3ecatch\x3c/code\x3e clause is used, the \x3ccode\x3ecatch\x3c/code\x3e block is entered when any exception is thrown. For example, when the exception occurs in the following code, control transfers to the \x3ccode\x3ecatch\x3c/code\x3e clause.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n   throw \x26quot;myException\x26quot;; // generates an exception\n}\ncatch (e) {\n   // statements to handle any exceptions\n   logMyErrors(e); // pass exception object to error handler\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Conditional_catch_clauses"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eConditional \x3ccode\x3ecatch\x3c/code\x3e clauses\x3c/h4\x3e\n\x3cp\x3eYou can also use one or more conditional \x3ccode\x3ecatch\x3c/code\x3e clauses to handle specific exceptions. In this case, the appropriate \x3ccode\x3ecatch\x3c/code\x3e clause is entered when the specified exception is thrown. In the following example, code in the \x3ccode\x3etry\x3c/code\x3e block can potentially throw three exceptions: \x3ccode\x3eTypeError\x3c/code\x3e, \x3ccode\x3eRangeError\x3c/code\x3e, and \x3ccode\x3eEvalError\x3c/code\x3e. When an exception occurs, control transfers to the appropriate \x3ccode\x3ecatch\x3c/code\x3e clause. If the exception is not one of the specified exceptions and an unconditional \x3ccode\x3ecatch\x3c/code\x3e clause is found, control transfers to that \x3ccode\x3ecatch\x3c/code\x3e clause.\x3c/p\x3e\n\x3cp\x3eIf you use an unconditional \x3ccode\x3ecatch\x3c/code\x3e clause with one or more conditional \x3ccode\x3ecatch\x3c/code\x3e clauses, the unconditional \x3ccode\x3ecatch\x3c/code\x3e clause must be specified last. Otherwise, the unconditional \x3ccode\x3ecatch\x3c/code\x3e clause will intercept all types of exception before they can reach the conditional ones.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etry {\n   myroutine(); // may throw three exceptions\n} catch (e if e instanceof TypeError) {\n   // statements to handle TypeError exceptions\n} catch (e if e instanceof RangeError) {\n   // statements to handle RangeError exceptions\n} catch (e if e instanceof EvalError) {\n   // statements to handle EvalError exceptions\n} catch (e) {\n   // statements to handle any unspecified exceptions\n   logMyErrors(e); // pass exception object to error handler\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eNote: This functionality is not part of the ECMAScript specification.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "The_exception_identifier"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eThe exception identifier\x3c/h4\x3e\n\x3cp\x3eWhen an exception is thrown in the \x3ccode\x3etry\x3c/code\x3e block, \x3cem\x3e\x3ccode\x3eexception_var\x3c/code\x3e\x3c/em\x3e (e.g. the \x3ccode\x3ee\x3c/code\x3e in \x3ccode\x3ecatch (e)\x3c/code\x3e) holds the value specified by the \x3ccode\x3ethrow\x3c/code\x3e statement. You can use this identifier to get information about the exception that was thrown.\x3c/p\x3e\n\x3cp\x3eThis identifier is local to the \x3ccode\x3ecatch\x3c/code\x3e clause. That is, it is created when the \x3ccode\x3ecatch\x3c/code\x3e clause is entered, and after the \x3ccode\x3ecatch\x3c/code\x3e clause finishes executing, the identifier is no longer available.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "The_finally_clause"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eThe \x3ccode\x3efinally\x3c/code\x3e clause\x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3efinally\x3c/code\x3e clause contains statements to execute after the \x3ccode\x3etry\x3c/code\x3e block and \x3ccode\x3ecatch\x3c/code\x3e clause(s) execute but before the statements following the \x3ccode\x3etry\x3c/code\x3e statement. The \x3ccode\x3efinally\x3c/code\x3e clause executes regardless of whether or not an exception is thrown. If an exception is thrown, the statements in the \x3ccode\x3efinally\x3c/code\x3e clause execute even if no \x3ccode\x3ecatch\x3c/code\x3e clause handles the exception.\x3c/p\x3e\n\x3cp\x3eYou can use the \x3ccode\x3efinally\x3c/code\x3e clause to make your script fail gracefully when an exception occurs; for example, you may need to release a resource that your script has tied up. The following example opens a file and then executes statements that use the file (server-side JavaScript allows you to access files). If an exception is thrown while the file is open, the \x3ccode\x3efinally\x3c/code\x3e clause closes the file before the script fails.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eopenMyFile()\ntry {\n   // tie up a resource\n   writeMyFile(theData);\n}\nfinally {\n   closeMyFile(); // always close the resource\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cp\x3eSee the examples for \x3ca title \x3d "en/JavaScript/Reference/Statements/throw" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/throw"\x3ethrow\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/throw" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/throw"\x3ethrow\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Unconditional catch clause","Conditional catch clauses","The exception identifier","The finally clause","Examples","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/while","title":"while","_id":"4eea83fca4c86c4dba000036","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCreates a loop that executes a specified statement as long as the test condition evaluates to true. The condition is evaluated before executing the statement.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table" border \x3d "1"\x3e\n\x3ctr\x3e\n\x3ctd colspan \x3d "2"\x3eStatement\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA version:\x3c/td\x3e\n\x3ctd\x3eECMA-262\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3ewhile (\x3ci\x3econdition\x3c/i\x3e)\n  \x3ci\x3estatement\x3c/i\x3e\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3econdition\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An expression evaluated before each pass through the loop. If this condition evaluates to true, \x3ccode\x3estatement\x3c/code\x3e is executed. When condition evaluates to false, execution continues with the statement after the \x3ccode\x3ewhile\x3c/code\x3e loop.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3estatement\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A statement that is executed as long as the condition evaluates to true. To execute multiple statements within the loop, use a \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/block" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/block"\x3eblock\x3c/a\x3e statement (\x3ccode\x3e{ ... }\x3c/code\x3e) to group those statements.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cp\x3eThe following \x3ccode\x3ewhile\x3c/code\x3e loop iterates as long as \x3ccode\x3en\x3c/code\x3e is less than three.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3en \x3d 0;\nx \x3d 0;\nwhile (n \x26lt; 3) {\n  n ++;\n  x +\x3d n;\n}\n\x3c/pre\x3e\n\x3cp\x3eEach iteration, the loop increments \x3ccode\x3en\x3c/code\x3e and adds it to \x3ccode\x3ex\x3c/code\x3e. Therefore, \x3ccode\x3ex\x3c/code\x3e and \x3ccode\x3en\x3c/code\x3e take on the following values:\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e After the first pass: \x3ccode\x3en\x3c/code\x3e \x3d 1 and \x3ccode\x3ex\x3c/code\x3e \x3d 1\n\x3c/li\x3e\x3cli\x3e After the second pass: \x3ccode\x3en\x3c/code\x3e \x3d 2 and \x3ccode\x3ex\x3c/code\x3e \x3d 3\n\x3c/li\x3e\x3cli\x3e After the third pass: \x3ccode\x3en\x3c/code\x3e \x3d 3 and \x3ccode\x3ex\x3c/code\x3e \x3d 6\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eAfter completing the third pass, the condition \x3ccode\x3en\x3c/code\x3e \x26lt; 3 is no longer true, so the loop terminates.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/do...while" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/do...while"\x3edo...while\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for"\x3efor\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Examples "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/var","title":"var","_id":"4eea83fea4c86c4dba000037","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eDeclares a variable, optionally initializing it to a value.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eStatement\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3evar \x3cem\x3evarname1 [\x3c/em\x3e\x3d \x3cem\x3evalue1 [\x3c/em\x3e, \x3cem\x3evarname2 [\x3c/em\x3e, \x3cem\x3evarname3 ... [\x3c/em\x3e, \x3cem\x3evarnameN]]]]\x3c/em\x3e;\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evarnameN\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eVariable name. It can be any legal identifier.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evalueN\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInitial value of the variable. It can be any legal expression.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe scope of a variable declared with \x3ccode\x3evar\x3c/code\x3e is the enclosing function or, for variables declared outside a function, the global scope (which is bound to the global object).\x3c/p\x3e\n\x3cp\x3eUsing \x3ccode\x3evar\x3c/code\x3e outside a function is optional; assigning a value to an undeclared variable implicitly declares it as a global variable (also a property of the global object). The difference is that z declared variable is a non-configurable property of the global object while an undeclared is configurable.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d 1;\nb \x3d 2;\n\ndelete this.a; // Throws a TypeError in strict mode. Fails silently otherwise.\ndelete this.b;\n\n0 \x26\x26 console.log(a, b); // Throws a ReferenceError. Since the \'b\' property doesn\'t exist in the global object,\n// the \'b\' variable stops being a variable\x3c/pre\x3e\r\n        \n\x3cp\x3eConsequently, it is recommended to always declare your variables, regardless of being in the global scope or in a function\x3c/p\x3e\n\x3cp\x3eFailure to declare the variable in these cases will very likely lead to unexpected results. For that reason, in ECMAScript 5 \x3ca title \x3d "Strict mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/Strict_mode"\x3estrict mode\x3c/a\x3e, assigning a value an undeclared variable inside a function throws an error.\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "var_hoisting"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3evar hoisting\x3c/h3\x3e\n\x3cp\x3eIn JavaScript, variable can be declared after being used.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ebla \x3d 2\nvar bla;\n// ...\n\n// is implicitly understood as:\n\nvar bla;\nbla \x3d 2;\x3c/pre\x3e\r\n        \n\x3cp\x3eFor that reason, it is recommanded to always declare variable at the top of functions. Otherwise, it may lead to confusing cases:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar cells \x3d document.getElementsByTagName(\'td\');\n\nfor(var i\x3d0; i\x26lt;cells.length; i++){\n  var cell \x3d cells[i];\n  cell.addEventListener(\'click\', function(){\n    cell.style.backgroundColor \x3d \'#00F\'; // which \'cell\' ?\n  }, false);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eHere, while the intention is to capture the \'local\' cell within the loop, what happened is the following:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar i, cell;\nvar cells \x3d document.getElementsByTagName(\'td\');\n\nfor(i\x3d0; i\x26lt;cells.length; i++){\n  cell \x3d cells[i];\n  cell.addEventListener(\'click\', function(){\n    cell.style.backgroundColor \x3d \'#00F\';\n  }, false);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThe \'cell\' captured in the event listener is the global \'cell\' variable which, at the end of the loop contains the last cell traversed in the loop. Consequently, clicking on any cell will only affect the last cell.\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
"\x3cdiv id \x3d \"section_5\"\x3e\x3cspan id \x3d \"var_hoisting\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3evar hoisting\x3c/h3\x3e\n\x3cp\x3eIn JavaScript, variable can be declared after being used.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3ebla \x3d 2\nvar bla;\n// ...\n\n// is implicitly understood as:\n\nvar bla;\nbla \x3d 2;\x3c/pre\x3e\r\n        \n\x3cp\x3eFor that reason, it is recommanded to always declare variable at the top of functions. Otherwise, it may lead to confusing cases:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar cells \x3d document.getElementsByTagName('td');\n\nfor(var i\x3d0; i\x26lt;cells.length; i++){\n  var cell \x3d cells[i];\n  cell.addEventListener('click', function(){\n    cell.style.backgroundColor \x3d '#00F'; // which 'cell' ?\n  }, false);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eHere, while the intention is to capture the 'local' cell within the loop, what happened is the following:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar i, cell;\nvar cells \x3d document.getElementsByTagName('td');\n\nfor(i\x3d0; i\x26lt;cells.length; i++){\n  cell \x3d cells[i];\n  cell.addEventListener('click', function(){\n    cell.style.backgroundColor \x3d '#00F';\n  }, false);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThe 'cell' captured in the event listener is the global 'cell' variable which, at the end of the loop contains the last cell traversed in the loop. Consequently, clicking on any cell will only affect the last cell.\x3c/p\x3e\x3c/div\x3e",
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cp\x3eDeclaring and initializing two variables:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d 0, b \x3d 0;\x3c/pre\x3e\r\n        \n\x3cp\x3eAssigning 2 variables with single string value.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d \x26quot;A\x26quot;;\nvar b \x3d a;\n\n// Equivalent to:\n\nvar a, b \x3d a \x3d \x26quot;A\x26quot;;\x3c/pre\x3e\r\n        \n\x3cp\x3eBe careful of the order though:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x \x3d y, y \x3d \'A\';\n0 \x26\x26 console.log(x + y); // undefinedA\n\n// Here, x is declared. y declaration (but not initialisation!) is hoisted\n// so, at the time of \x26quot;x \x3d y\x26quot;, y is declared (no ReferenceError is thrown) and its value is \'undefined\'\n// then, y is assigned its value.\n// Consequently, after the first line, x \x3d\x3d\x3d undefined \x26amp;\x26amp; y \x3d\x3d\x3d \'A\'. Hence the concatenation\x3c/pre\x3e\r\n        \n\x3cp\x3eBe careful of initialization of several variables:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x \x3d 0;\n\nfunction f(){\n  var x \x3d y \x3d 1; // x is declared locally. y is not!\n}\nf();\n\n0 \x26\x26 console.log(x, y); // 0, 1\n// x is the global one as expected\n// y leaked outside of the function, though!\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Statements/let" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/let"\x3e\x3ccode\x3elet\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/const" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/const"\x3econst\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/const" class \x3d " external" rel \x3d "external" href \x3d "http://blog.meloncard.com/post/12175941935/how-one-missing-var-ruined-our-launch" target \x3d "_blank"\x3eHow One Missing `var` Ruined our Launch\x3c/a\x3e.\x3c/li\x3e \x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","var hoisting","Examples","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Statements/with","title":"with","_id":"4eea8401a4c86c4dba000038","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eExtends the scope chain for a statement.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd colspan \x3d "2"\x3eStatement\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3e\x3ci\x3eImplemented in:\x3c/i\x3e\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.0, NES 2.0\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3e\x3ci\x3eECMA version:\x3c/i\x3e\x3c/td\x3e\n\x3ctd\x3eECMA-262\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3ewith (\x3ci\x3eobject\x3c/i\x3e)\n  \x3ci\x3estatement\x3c/i\x3e\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eobject\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Adds the given object to the scope chain used when evaluating the statement. The parentheses around object are required.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3estatement\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Any statement. To execute multiple statements, use a \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/block" title \x3d "en/Core_JavaScript_1.5_Reference/Statements/block"\x3eblock\x3c/a\x3e statement ({ ... }) to group those statements.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_4\"\x3e\x3cspan id \x3d \"Description\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eJavaScript looks up an unqualified name by searching a scope chain associated with the execution context of the script or function containing that unqualified name. The 'with' statement adds the given object to the head of this scope chain during the evaluation of its statement body. If an unqualified name used in the body matches a property in the scope chain, then the name is bound to the property and the object containing the property. Otherwise a 'ReferenceError' is thrown.\x3c/p\x3e\n\x3cdiv class \x3d \"note\"\x3eUsing \x3ccode\x3ewith\x3c/code\x3e is not recommended, and is forbidden in ECMAScript 5 \x3ca title \x3d \"en/JavaScript/Strict mode\" rel \x3d \"internal\" href \x3d \"https://developer.mozilla.org/en/JavaScript/Strict_mode\"\x3estrict mode\x3c/a\x3e. The recommended alternative is to assign the object whose properties you want to access to a temporary variable.\x3cbr/\x3e\n(On a historical note, Firefox 1.5 used to generate a warning when the 'with' statement was used: \x26quot;deprecated with statement usage\x26quot;. This has been removed in Firefox 1.5.0.1 (\n\x3ca rel \x3d \"external\" href \x3d \"https://bugzilla.mozilla.org/show_bug.cgi?id\x3d322430\" class \x3d \"external\" title \x3d \"VERIFIED FIXED - Remove \x26quot;deprecated with statement usage\x26quot; strict warning\"\x3e\nbug 322430\x3c/a\x3e\n).)\x3c/div\x3e\n\x3cp\x3e\x3cem\x3ePerformance Pro \x26amp; Con\x3c/em\x3e\x3c/p\x3e\n\x3cul\x3e \x3cli\x3ePro: 'with' can help reduce file size by reducing the need to repeat a lengthy object reference without performance penalty. The scope chain change required by 'with' is not computationally expensive. Use of 'with' will relieve the interpreter of parsing repeated object references. Note, however, that in many cases this benefit can be achieved by using a temporary variable to store a reference to the desired object.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cul\x3e \x3cli\x3eCon: 'with' forces the specified object to be searched first for all name lookups. Therefore all identifiers that aren't members of the specified object will be found more slowly in a 'with' block. Where performance is important, 'with' should only be used to encompass code blocks that access members of the specified object.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3cem\x3eAmbiguity Con\x3c/em\x3e\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eCon: 'with' makes it hard for a human reader or JavaScript compiler to decide whether an unqualified name will be found along the scope chain, and if so, in which object. So given this example: \x3cpre\x3e\nfunction f(x, o) {\n  with (o)\n    print(x);\n}\n\x3c/pre\x3e \x3cp\x3eonly when \x3ccode\x3ef\x3c/code\x3e is called is \x3ccode\x3ex\x3c/code\x3e either found or not, and if found, either in \x3ccode\x3eo\x3c/code\x3e or (if no such property exists) in \x3ccode\x3ef\x3c/code\x3e's activation object, where \x3ccode\x3ex\x3c/code\x3e names the first formal argument. If you forget to define \x3ccode\x3ex\x3c/code\x3e in the object you pass as the second argument, or if there's some similar bug or confusion, you won't get an error -- just unexpected results.\x3c/p\x3e \x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e",
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_with"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3ewith\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following \x3ccode\x3ewith\x3c/code\x3e statement specifies that the \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Math" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e object is the default object. The statements following the \x3ccode\x3ewith\x3c/code\x3e statement refer to the \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Math/PI" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/PI"\x3e\x3ccode\x3ePI\x3c/code\x3e\x3c/a\x3e property and the \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Math/cos" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/cos"\x3e\x3ccode\x3ecos\x3c/code\x3e\x3c/a\x3e and \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Math/sin" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/sin"\x3e\x3ccode\x3esin\x3c/code\x3e\x3c/a\x3e methods, without specifying an object. JavaScript assumes the \x3ccode\x3eMath\x3c/code\x3e object for these references.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar a, x, y;\nvar r \x3d 10;\nwith (Math) {\n  a \x3d PI * r * r;\n  x \x3d r * cos(PI);\n  y \x3d r * sin(PI / 2);\n}\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_with"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3ewith\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following \x3ccode\x3ewith\x3c/code\x3e statement specifies that the \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Math" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e object is the default object. The statements following the \x3ccode\x3ewith\x3c/code\x3e statement refer to the \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Math/PI" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/PI"\x3e\x3ccode\x3ePI\x3c/code\x3e\x3c/a\x3e property and the \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Math/cos" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/cos"\x3e\x3ccode\x3ecos\x3c/code\x3e\x3c/a\x3e and \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Math/sin" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/sin"\x3e\x3ccode\x3esin\x3c/code\x3e\x3c/a\x3e methods, without specifying an object. JavaScript assumes the \x3ccode\x3eMath\x3c/code\x3e object for these references.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar a, x, y;\nvar r \x3d 10;\nwith (Math) {\n  a \x3d PI * r * r;\n  x \x3d r * cos(PI);\n  y \x3d r * sin(PI / 2);\n}\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters ","Description"," Examples "," Example: Using with "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators","title":"Arithmetic Operators","_id":"4eea840aa4c86c4dba00003a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eArithmetic operators take numerical values (either literals or variables) as their operands and return a single numerical value. The standard arithmetic operators are addition (+), subtraction (-), multiplication (*), and division (/).\x3c/p\x3e\n\x3cp\x3eThese operators work as they do in most other programming languages when used with floating point numbers (in particular, note that division by zero produces \x3ca class \x3d "internal" title \x3d "en/Core JavaScript 1.5 Reference/Global Properties/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3e\x3ccode\x3e+/-Infinity\x3c/code\x3e\x3c/a\x3e). For example:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n1 / 2      // returns 0.5 in JavaScript\n1 / 2      // returns 0 in Java (neither number is explicitly a floating point number)\n\n1.0 / 2.0  // returns 0.5 in both JavaScript and Java\n\n2.0 / 0    // returns Infinity in Javascript\n2.0 / 0.0  // returns Infinity too\n2.0 / -0.0 // returns -Infinity in Javascript\n\n\x3c/pre\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eOperators\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d ".25_.28Modulus.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".25_(Modulus)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x26nbsp;% (Modulus)\x3c/h3\x3e\n\x3cp\x3eThe modulus operator is used as follows:\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3e \x3cem\x3evar1\x3c/em\x3e\x26nbsp;% \x3cem\x3evar2\x3c/em\x3e \x3c/code\x3e\x3c/p\x3e\n\x3cp\x3eThe modulus operator returns the first operand modulo the second operand, that is, \x3ccode\x3evar1\x3c/code\x3e modulo \x3ccode\x3evar2\x3c/code\x3e, in the preceding statement, where \x3ccode\x3evar1\x3c/code\x3e and \x3ccode\x3evar2\x3c/code\x3e are variables. The modulo function is the integer remainder of dividing \x3ccode\x3evar1\x3c/code\x3e by \x3ccode\x3evar2\x3c/code\x3e. For example, \x3ccode\x3e12\x26nbsp;% 5\x3c/code\x3e returns \x3ccode\x3e2\x3c/code\x3e. The result will have the same sign as \x3cem\x3evar1\x3c/em\x3e; that is, \x3ccode\x3e\x26minus;1\x26nbsp;% 2\x3c/code\x3e returns \x3ccode\x3e\x26minus;1\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d ".2B.2B_.28Increment.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".2B.2B_(Increment)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e++ (Increment)\x3c/h3\x3e\n\x3cp\x3eThe increment operator is used as follows:\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3evar\x3c/em\x3e++\x3c/code\x3e or \x3ccode\x3e++\x3cem\x3evar\x3c/em\x3e\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3eThis operator increments (adds one to) its operand and returns a value. If used postfix, with operator after operand (for example, x++), then it returns the value before incrementing. If used prefix with operator before operand (for example, ++x), then it returns the value after incrementing.\x3c/p\x3e\n\x3cp\x3eFor example, if \x3ccode\x3ex\x3c/code\x3e is three, then the statement \x3ccode\x3ey \x3d x++\x3c/code\x3e sets \x3ccode\x3ey\x3c/code\x3e to 3 and increments \x3ccode\x3ex\x3c/code\x3e to 4. If \x3ccode\x3ex\x3c/code\x3e is 3, then the statement \x3ccode\x3ey \x3d ++x\x3c/code\x3e increments \x3ccode\x3ex\x3c/code\x3e to 4 and sets \x3ccode\x3ey\x3c/code\x3e to 4.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "--_.28Decrement.29"\x3e\x3c/span\x3e\x3cspan id \x3d "--_(Decrement)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e-- (Decrement)\x3c/h3\x3e\n\x3cp\x3eThe decrement operator is used as follows:\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3evar\x3c/em\x3e--\x3c/code\x3e or \x3ccode\x3e--\x3cem\x3evar\x3c/em\x3e\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3eThis operator decrements (subtracts one from) its operand and returns a value. If used postfix (for example, x--), then it returns the value before decrementing. If used prefix (for example, --x), then it returns the value after decrementing.\x3c/p\x3e\n\x3cp\x3eFor example, if \x3ccode\x3ex\x3c/code\x3e is three, then the statement \x3ccode\x3ey \x3d x--\x3c/code\x3e sets \x3ccode\x3ey\x3c/code\x3e to 3 and decrements \x3ccode\x3ex\x3c/code\x3e to 2. If \x3ccode\x3ex\x3c/code\x3e is 3, then the statement \x3ccode\x3ey \x3d --x\x3c/code\x3e decrements \x3ccode\x3ex\x3c/code\x3e to 2 and sets \x3ccode\x3ey\x3c/code\x3e to 2.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "-_.28Unary_Negation.29"\x3e\x3c/span\x3e\x3cspan id \x3d "-_(Unary_Negation)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e- (Unary Negation)\x3c/h3\x3e\n\x3cp\x3eThe unary negation operator precedes its operand and negates it. For example, \x3ccode\x3ey \x3d -x\x3c/code\x3e negates the value of \x3ccode\x3ex\x3c/code\x3e and assigns that to \x3ccode\x3ey\x3c/code\x3e; that is, if \x3ccode\x3ex\x3c/code\x3e were 3, \x3ccode\x3ey\x3c/code\x3e would get the value -3 and \x3ccode\x3ex\x3c/code\x3e would retain the value 3.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "-_.28Unary_Negation.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".2B_(Unary_Plus)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e+ (Unary Plus)\x3c/h3\x3e\n\x3cp\x3eThe unary plus operator precedes its operand and evaluates to its operand but attempts to converts it into a number, if it isn\'t already. For example, \x3ccode\x3ey \x3d +x\x3c/code\x3e takes the value of \x3ccode\x3ex\x3c/code\x3e and assigns that to \x3ccode\x3ey\x3c/code\x3e; that is, if \x3ccode\x3ex\x3c/code\x3e were 3, \x3ccode\x3ey\x3c/code\x3e would get the value 3 and \x3ccode\x3ex\x3c/code\x3e would retain the value 3; but if x were the string \x26quot;3\x26quot;, y would also get the value 3. Although unary negation (-) also can convert non-numbers, unary plus is the fastest and preferred way of converting something into a number, because it does not perform any other operations on the number. It can convert string representations of integers and floats, as well as the non-string values true, false, and null. Integers in both decimal and hexadecimal (\x26quot;0x\x26quot;-prefixed) formats are supported. Negative numbers are supported (though not for hex). If it cannot parse a particular value, it will evaluate to NaN.\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","\x26nbsp;% (Modulus)","++ (Increment)","-- (Decrement)","- (Unary Negation)","+ (Unary Plus)"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/Assignment_Operators","title":"Assignment Operators","_id":"4eea840aa4c86c4dba00003b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eAn assignment operator assigns a value to its left operand based on the value of its right operand.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd colspan \x3d "2" class \x3d "header"\x3eOperators\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eThe basic assignment operator is equal (\x3ccode\x3e\x3d\x3c/code\x3e), which assigns the value of its right operand to its left operand. That is, \x3ccode\x3ex \x3d y\x3c/code\x3e assigns the value of \x3ccode\x3ey\x3c/code\x3e to \x3ccode\x3ex\x3c/code\x3e. The other assignment operators are usually shorthand for standard operations, as shown in the following table.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eShorthand operator\x3c/th\x3e \x3cth\x3eMeaning\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex +\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x + y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex -\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x - y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex *\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x * y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex /\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x / y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex\x26nbsp;%\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x\x26nbsp;% y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex \x26lt;\x26lt;\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x \x26lt;\x26lt; y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex \x26gt;\x26gt;\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x \x26gt;\x26gt; y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex \x26gt;\x26gt;\x26gt;\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x \x26gt;\x26gt;\x26gt; y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex \x26amp;\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x \x26amp; y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex ^\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x ^ y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ex |\x3d y\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ex \x3d x | y\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eIn unusual situations, the assignment operator is not identical to the Meaning expression in this table. When the left operand of an assignment operator itself contains an assignment operator, the left operand is evaluated only once. For example:\x3c/p\x3e\n\x3cpre\x3e\na[i++] +\x3d 5 //i is evaluated only once\na[i++] \x3d a[i++] + 5 //i is evaluated twice\n\x3c/pre\x3e\n\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators","title":"Bitwise Operators","_id":"4eea840ba4c86c4dba00003c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eBitwise operators treat their operands as a sequence of 32 bits (zeros and ones), rather than as decimal, hexadecimal, or octal numbers. For example, the decimal number nine has a binary representation of 1001. Bitwise operators perform their operations on such binary representations, but they return standard JavaScript numerical values.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd colspan \x3d "2" class \x3d "header"\x3eOperators\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eThe following table summarizes JavaScript\'s bitwise operators:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eOperator\x3c/th\x3e \x3cth\x3eUsage\x3c/th\x3e \x3cth\x3eDescription\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBitwise AND\x3c/td\x3e \x3ctd style \x3d "white-space: nowrap"\x3e\x3ccode\x3ea \x26amp; b\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eReturns a one in each bit position for which the corresponding bits of both operands are ones.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBitwise OR\x3c/td\x3e \x3ctd style \x3d "white-space: nowrap"\x3e\x3ccode\x3ea | b\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eReturns a one in each bit position for which the corresponding bits of either or both operands are ones.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBitwise XOR\x3c/td\x3e \x3ctd style \x3d "white-space: nowrap"\x3e\x3ccode\x3ea ^ b\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eReturns a one in each bit position for which the corresponding bits of either but not both operands are ones.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBitwise NOT\x3c/td\x3e \x3ctd style \x3d "white-space: nowrap"\x3e\x3ccode\x3e~ a\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInverts the bits of its operand.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eLeft shift\x3c/td\x3e \x3ctd style \x3d "white-space: nowrap"\x3e\x3ccode\x3ea \x26lt;\x26lt; b\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eShifts \x3ccode\x3ea\x3c/code\x3e in binary representation \x3ccode\x3eb\x3c/code\x3e (\x26lt; 32) bits to the left, shifting in zeros from the right.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eSign-propagating right shift\x3c/td\x3e \x3ctd style \x3d "white-space: nowrap"\x3e\x3ccode\x3ea \x26gt;\x26gt; b\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eShifts \x3ccode\x3ea\x3c/code\x3e in binary representation \x3ccode\x3eb\x3c/code\x3e (\x26lt; 32) bits to the right, discarding bits shifted off.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eZero-fill right shift\x3c/td\x3e \x3ctd style \x3d "white-space: nowrap"\x3e\x3ccode\x3ea \x26gt;\x26gt;\x26gt; b\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eShifts \x3ccode\x3ea\x3c/code\x3e in binary representation \x3ccode\x3eb\x3c/code\x3e (\x26lt; 32) bits to the right, discarding bits shifted off, and shifting in zeros from the left.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Signed_32-bit_integers"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSigned 32-bit integers\x3c/h3\x3e\n\x3cp\x3eThe operands of all bitwise operators are converted to signed 32-bit integers in big-endian order and in two\'s complement format. Big-endian order means that the most significant bit (the bit position with the greatest value) is the left-most bit if the 32 bits are arranged in a horizontal line. Two\'s complement format means that a number\'s negative counterpart (e.g. 5 vs. -5) is all the number\'s bits inverted (bitwise NOT of the number, a.k.a. one\'s complement of the number) plus one. For example, the following encodes the integer 314 (base 10):\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n00000000000000000000000100111010\n\x3c/pre\x3e\n\x3cp\x3eThe following encodes ~314, i.e. the one\'s complement of 314:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n11111111111111111111111011000101\n\x3c/pre\x3e\n\x3cp\x3eFinally, the following encodes -314, i.e. the two\'s complement of 314:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n11111111111111111111111011000110\n\x3c/pre\x3e\n\x3cp\x3eThe two\'s complement guarantees that the left-most bit is 0 when the number is positive and 1 when the number is negative. Thus, it is called the \x3cem\x3esign bit\x3c/em\x3e.\x3c/p\x3e\n\x3cp\x3eThe number 0 is the integer that is composed completely of 0 bits.\x3c/p\x3e\n\x3cp\x3eThe number -1 is the integer that is composed completely of 1 bits.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Bitwise_logical_operators"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBitwise logical operators\x3c/h3\x3e\n\x3cp\x3eConceptually, the bitwise logical operators work as follows:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eThe operands are converted to 32-bit integers and expressed by a series of bits (zeros and ones).\x3c/li\x3e \x3cli\x3eEach bit in the first operand is paired with the corresponding bit in the second operand: first bit to first bit, second bit to second bit, and so on.\x3c/li\x3e \x3cli\x3eThe operator is applied to each pair of bits, and the result is constructed bitwise.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "\x26amp;_.28Bitwise_AND.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".26_(Bitwise_AND)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x26amp; (Bitwise AND)\x3c/h4\x3e\n\x3cp\x3ePerforms the AND operation on each pair of bits. \x3ccode\x3ea\x3c/code\x3e AND \x3ccode\x3eb\x3c/code\x3e yields 1 only if both \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e are 1. The truth table for the AND operation is:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ea\x3c/td\x3e \x3ctd class \x3d "header"\x3eb\x3c/td\x3e \x3ctd class \x3d "header"\x3ea AND b\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eExample:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10) \x3d 00000000000000000000000000001001 (base 2)\n    14 (base 10) \x3d 00000000000000000000000000001110 (base 2)\n                   --------------------------------\n14 \x26amp; 9 (base 10) \x3d 00000000000000000000000000001000 (base 2) \x3d 8 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise ANDing any number x with 0 yields 0.\x3c/p\x3e\n\x3cp\x3eBitwise ANDing any number x with -1 yields x.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "|_.28Bitwise_OR.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".7C_(Bitwise_OR)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e| (Bitwise OR)\x3c/h4\x3e\n\x3cp\x3ePerforms the OR operation on each pair of bits. \x3ccode\x3ea\x3c/code\x3e OR \x3ccode\x3eb\x3c/code\x3e yields 1 if either \x3ccode\x3ea\x3c/code\x3e or \x3ccode\x3eb\x3c/code\x3e is 1. The truth table for the OR operation is:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ea\x3c/td\x3e \x3ctd class \x3d "header"\x3eb\x3c/td\x3e \x3ctd class \x3d "header"\x3ea OR b\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10) \x3d 00000000000000000000000000001001 (base 2)\n    14 (base 10) \x3d 00000000000000000000000000001110 (base 2)\n                   --------------------------------\n14 | 9 (base 10) \x3d 00000000000000000000000000001111 (base 2) \x3d 15 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise ORing any number x with 0 yields x.\x3c/p\x3e\n\x3cp\x3eBitwise ORing any number x with -1 yields -1.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d ".5E_.28Bitwise_XOR.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".5E_(Bitwise_XOR)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e^ (Bitwise XOR)\x3c/h4\x3e\n\x3cp\x3ePerforms the XOR operation on each pair of bits. \x3ccode\x3ea\x3c/code\x3e XOR \x3ccode\x3eb\x3c/code\x3e yields 1 if \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e are different. The truth table for the XOR operation is:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ea\x3c/td\x3e \x3ctd class \x3d "header"\x3eb\x3c/td\x3e \x3ctd class \x3d "header"\x3ea XOR b\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eExample:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10) \x3d 00000000000000000000000000001001 (base 2)\n    14 (base 10) \x3d 00000000000000000000000000001110 (base 2)\n                   --------------------------------\n14 ^ 9 (base 10) \x3d 00000000000000000000000000000111 (base 2) \x3d 7 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise XORing any number x with 0 yields x.\x3c/p\x3e\n\x3cp\x3eBitwise XORing any number x with -1 yields ~x.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d ".7E_.28Bitwise_NOT.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".7E_(Bitwise_NOT)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e~ (Bitwise NOT)\x3c/h4\x3e\n\x3cp\x3ePerforms the NOT operator on each bit. NOT \x3ccode\x3ea\x3c/code\x3e yields the inverted value (a.k.a. one\'s complement) of \x3ccode\x3ea\x3c/code\x3e. The truth table for the NOT operation is:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ea\x3c/td\x3e \x3ctd class \x3d "header"\x3eNOT a\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eExample:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n 9 (base 10) \x3d 00000000000000000000000000001001 (base 2)\n               --------------------------------\n~9 (base 10) \x3d 11111111111111111111111111110110 (base 2) \x3d -10 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise NOTing any number x yields -(x + 1). For example, ~5 yields -6.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "\x26amp;_.28Bitwise_AND.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".26_(Bitwise_AND)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x26amp; (Bitwise AND)\x3c/h4\x3e\n\x3cp\x3ePerforms the AND operation on each pair of bits. \x3ccode\x3ea\x3c/code\x3e AND \x3ccode\x3eb\x3c/code\x3e yields 1 only if both \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e are 1. The truth table for the AND operation is:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ea\x3c/td\x3e \x3ctd class \x3d "header"\x3eb\x3c/td\x3e \x3ctd class \x3d "header"\x3ea AND b\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eExample:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10) \x3d 00000000000000000000000000001001 (base 2)\n    14 (base 10) \x3d 00000000000000000000000000001110 (base 2)\n                   --------------------------------\n14 \x26amp; 9 (base 10) \x3d 00000000000000000000000000001000 (base 2) \x3d 8 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise ANDing any number x with 0 yields 0.\x3c/p\x3e\n\x3cp\x3eBitwise ANDing any number x with -1 yields x.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "|_.28Bitwise_OR.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".7C_(Bitwise_OR)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e| (Bitwise OR)\x3c/h4\x3e\n\x3cp\x3ePerforms the OR operation on each pair of bits. \x3ccode\x3ea\x3c/code\x3e OR \x3ccode\x3eb\x3c/code\x3e yields 1 if either \x3ccode\x3ea\x3c/code\x3e or \x3ccode\x3eb\x3c/code\x3e is 1. The truth table for the OR operation is:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ea\x3c/td\x3e \x3ctd class \x3d "header"\x3eb\x3c/td\x3e \x3ctd class \x3d "header"\x3ea OR b\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10) \x3d 00000000000000000000000000001001 (base 2)\n    14 (base 10) \x3d 00000000000000000000000000001110 (base 2)\n                   --------------------------------\n14 | 9 (base 10) \x3d 00000000000000000000000000001111 (base 2) \x3d 15 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise ORing any number x with 0 yields x.\x3c/p\x3e\n\x3cp\x3eBitwise ORing any number x with -1 yields -1.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d ".5E_.28Bitwise_XOR.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".5E_(Bitwise_XOR)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e^ (Bitwise XOR)\x3c/h4\x3e\n\x3cp\x3ePerforms the XOR operation on each pair of bits. \x3ccode\x3ea\x3c/code\x3e XOR \x3ccode\x3eb\x3c/code\x3e yields 1 if \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e are different. The truth table for the XOR operation is:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ea\x3c/td\x3e \x3ctd class \x3d "header"\x3eb\x3c/td\x3e \x3ctd class \x3d "header"\x3ea XOR b\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eExample:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10) \x3d 00000000000000000000000000001001 (base 2)\n    14 (base 10) \x3d 00000000000000000000000000001110 (base 2)\n                   --------------------------------\n14 ^ 9 (base 10) \x3d 00000000000000000000000000000111 (base 2) \x3d 7 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise XORing any number x with 0 yields x.\x3c/p\x3e\n\x3cp\x3eBitwise XORing any number x with -1 yields ~x.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d ".7E_.28Bitwise_NOT.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".7E_(Bitwise_NOT)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e~ (Bitwise NOT)\x3c/h4\x3e\n\x3cp\x3ePerforms the NOT operator on each bit. NOT \x3ccode\x3ea\x3c/code\x3e yields the inverted value (a.k.a. one\'s complement) of \x3ccode\x3ea\x3c/code\x3e. The truth table for the NOT operation is:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ea\x3c/td\x3e \x3ctd class \x3d "header"\x3eNOT a\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e0\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e0\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eExample:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n 9 (base 10) \x3d 00000000000000000000000000001001 (base 2)\n               --------------------------------\n~9 (base 10) \x3d 11111111111111111111111111110110 (base 2) \x3d -10 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise NOTing any number x yields -(x + 1). For example, ~5 yields -6.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Bitwise_shift_operators"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBitwise shift operators\x3c/h3\x3e\n\x3cp\x3eThe bitwise shift operators take two operands: the first is a quantity to be shifted, and the second specifies the number of bit positions by which the first operand is to be shifted. The direction of the shift operation is controlled by the operator used.\x3c/p\x3e\n\x3cp\x3eShift operators convert their operands to 32-bit integers in big-endian order and return a result of the same type as the left operand.\x26nbsp; The right operand should be less than 32, but if not only the low five bits will be used.\x3c/p\x3e\n\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d ".3C.3C_.28Left_shift.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".3C.3C_(Left_shift)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x26lt;\x26lt; (Left shift)\x3c/h4\x3e\n\x3cp\x3eThis operator shifts the first operand the specified number of bits to the left. Excess bits shifted off to the left are discarded. Zero bits are shifted in from the right.\x3c/p\x3e\n\x3cp\x3eFor example, \x3ccode\x3e9 \x26lt;\x26lt; 2\x3c/code\x3e yields 36:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10): 00000000000000000000000000001001 (base 2)\n                  --------------------------------\n9 \x26lt;\x26lt; 2 (base 10): 00000000000000000000000000100100 (base 2) \x3d 36 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise shifting any number \x3cstrong\x3ex\x3c/strong\x3e to the left by \x3cstrong\x3ey\x3c/strong\x3e bits yields \x3cstrong\x3ex * y^2\x3c/strong\x3e.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d ".3E.3E_.28Sign-propagating_right_shift.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".3E.3E_(Sign-propagating_right_shift)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x26gt;\x26gt; (Sign-propagating right shift)\x3c/h4\x3e\n\x3cp\x3eThis operator shifts the first operand the specified number of bits to the right. Excess bits shifted off to the right are discarded. Copies of the leftmost bit are shifted in from the left. Since the new leftmost bit has the same value as the previous leftmost bit, the sign bit (the leftmost bit) does not change. Hence the name \x26quot;sign-propagating\x26quot;.\x3c/p\x3e\n\x3cp\x3eFor example, \x3ccode\x3e9 \x26gt;\x26gt; 2\x3c/code\x3e yields 2:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10): 00000000000000000000000000001001 (base 2)\n                  --------------------------------\n9 \x26gt;\x26gt; 2 (base 10): 00000000000000000000000000000010 (base 2) \x3d 2 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eLikewise, \x3ccode\x3e-9 \x26gt;\x26gt; 2\x3c/code\x3e yields -3, because the sign is preserved:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     -9 (base 10): 11111111111111111111111111110111 (base 2)\n                   --------------------------------\n-9 \x26gt;\x26gt; 2 (base 10): 11111111111111111111111111111101 (base 2) \x3d -3 (base 10)\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d ".3E.3E.3E_.28Zero-fill_right_shift.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".3E.3E.3E_(Zero-fill_right_shift)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x26gt;\x26gt;\x26gt; (Zero-fill right shift)\x3c/h4\x3e\n\x3cp\x3eThis operator shifts the first operand the specified number of bits to the right. Excess bits shifted off to the right are discarded. Zero bits are shifted in from the left. The sign bit becomes 0, so the result is always positive.\x3c/p\x3e\n\x3cp\x3eFor non-negative numbers, zero-fill right shift and sign-propagating right shift yield the same result. For example, \x3ccode\x3e9 \x26gt;\x26gt;\x26gt; 2\x3c/code\x3e yields 2, the same as \x3ccode\x3e9 \x26gt;\x26gt; 2\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n      9 (base 10): 00000000000000000000000000001001 (base 2)\n                   --------------------------------\n9 \x26gt;\x26gt;\x26gt; 2 (base 10): 00000000000000000000000000000010 (base 2) \x3d 2 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eHowever, this is not the case for negative numbers. For example, \x3ccode\x3e-9 \x26gt;\x26gt;\x26gt; 2\x3c/code\x3e yields 1073741821, which is different than \x3ccode\x3e-9 \x26gt;\x26gt; 2\x3c/code\x3e (which yields -3):\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n      -9 (base 10): 11111111111111111111111111110111 (base 2)\n                    --------------------------------\n-9 \x26gt;\x26gt;\x26gt; 2 (base 10): 00111111111111111111111111111101 (base 2) \x3d 1073741821 (base 10)\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d ".3C.3C_.28Left_shift.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".3C.3C_(Left_shift)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x26lt;\x26lt; (Left shift)\x3c/h4\x3e\n\x3cp\x3eThis operator shifts the first operand the specified number of bits to the left. Excess bits shifted off to the left are discarded. Zero bits are shifted in from the right.\x3c/p\x3e\n\x3cp\x3eFor example, \x3ccode\x3e9 \x26lt;\x26lt; 2\x3c/code\x3e yields 36:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10): 00000000000000000000000000001001 (base 2)\n                  --------------------------------\n9 \x26lt;\x26lt; 2 (base 10): 00000000000000000000000000100100 (base 2) \x3d 36 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eBitwise shifting any number \x3cstrong\x3ex\x3c/strong\x3e to the left by \x3cstrong\x3ey\x3c/strong\x3e bits yields \x3cstrong\x3ex * y^2\x3c/strong\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d ".3E.3E_.28Sign-propagating_right_shift.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".3E.3E_(Sign-propagating_right_shift)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x26gt;\x26gt; (Sign-propagating right shift)\x3c/h4\x3e\n\x3cp\x3eThis operator shifts the first operand the specified number of bits to the right. Excess bits shifted off to the right are discarded. Copies of the leftmost bit are shifted in from the left. Since the new leftmost bit has the same value as the previous leftmost bit, the sign bit (the leftmost bit) does not change. Hence the name \x26quot;sign-propagating\x26quot;.\x3c/p\x3e\n\x3cp\x3eFor example, \x3ccode\x3e9 \x26gt;\x26gt; 2\x3c/code\x3e yields 2:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     9 (base 10): 00000000000000000000000000001001 (base 2)\n                  --------------------------------\n9 \x26gt;\x26gt; 2 (base 10): 00000000000000000000000000000010 (base 2) \x3d 2 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eLikewise, \x3ccode\x3e-9 \x26gt;\x26gt; 2\x3c/code\x3e yields -3, because the sign is preserved:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n     -9 (base 10): 11111111111111111111111111110111 (base 2)\n                   --------------------------------\n-9 \x26gt;\x26gt; 2 (base 10): 11111111111111111111111111111101 (base 2) \x3d -3 (base 10)\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d ".3E.3E.3E_.28Zero-fill_right_shift.29"\x3e\x3c/span\x3e\x3cspan id \x3d ".3E.3E.3E_(Zero-fill_right_shift)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x26gt;\x26gt;\x26gt; (Zero-fill right shift)\x3c/h4\x3e\n\x3cp\x3eThis operator shifts the first operand the specified number of bits to the right. Excess bits shifted off to the right are discarded. Zero bits are shifted in from the left. The sign bit becomes 0, so the result is always positive.\x3c/p\x3e\n\x3cp\x3eFor non-negative numbers, zero-fill right shift and sign-propagating right shift yield the same result. For example, \x3ccode\x3e9 \x26gt;\x26gt;\x26gt; 2\x3c/code\x3e yields 2, the same as \x3ccode\x3e9 \x26gt;\x26gt; 2\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n      9 (base 10): 00000000000000000000000000001001 (base 2)\n                   --------------------------------\n9 \x26gt;\x26gt;\x26gt; 2 (base 10): 00000000000000000000000000000010 (base 2) \x3d 2 (base 10)\n\x3c/pre\x3e\n\x3cp\x3eHowever, this is not the case for negative numbers. For example, \x3ccode\x3e-9 \x26gt;\x26gt;\x26gt; 2\x3c/code\x3e yields 1073741821, which is different than \x3ccode\x3e-9 \x26gt;\x26gt; 2\x3c/code\x3e (which yields -3):\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n      -9 (base 10): 11111111111111111111111111110111 (base 2)\n                    --------------------------------\n-9 \x26gt;\x26gt;\x26gt; 2 (base 10): 00111111111111111111111111111101 (base 2) \x3d 1073741821 (base 10)\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Example:_Flags_and_bitmasks"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Flags and bitmasks\x3c/h4\x3e\n\x3cp\x3eThe bitwise logical operators are often used to create, manipulate, and read sequences of \x3cem\x3eflags\x3c/em\x3e, which are like binary variables. Variables could be used instead of these sequences, but binary flags take much less memory (by a factor of 32).\x3c/p\x3e\n\x3cp\x3eSuppose there are 4 flags:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eflag A: we have an ant problem\x3c/li\x3e \x3cli\x3eflag B: we own a bat\x3c/li\x3e \x3cli\x3eflag C: we own a cat\x3c/li\x3e \x3cli\x3eflag D: we own a duck\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eThese flags are represented by a sequence of bits: DCBA. When a flag is \x3cem\x3eset\x3c/em\x3e, it has a value of 1. When a flag is \x3cem\x3ecleared\x3c/em\x3e, it has a value of 0. Suppose a variable \x3ccode\x3eflags\x3c/code\x3e has the binary value 0101:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar flags \x3d 0x5;   // binary 0101\n\x3c/pre\x3e\n\x3cp\x3eThis value indicates:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eflag A is true (we have an ant problem);\x3c/li\x3e \x3cli\x3eflag B is false (we don\'t own a bat);\x3c/li\x3e \x3cli\x3eflag C is true (we own a cat);\x3c/li\x3e \x3cli\x3eflag D is false (we don\'t own a duck);\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eSince bitwise operators are 32-bit, 0101 is actually 00000000000000000000000000000101, but the preceding zeroes can be neglected since they contain no meaningful information.\x3c/p\x3e\n\x3cp\x3eA \x3cem\x3ebitmask\x3c/em\x3e is a sequence of bits that can manipulate and/or read flags. Typically, a \x26quot;primitive\x26quot; bitmask for each flag is defined:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar FLAG_A \x3d 0x1; // 0001\nvar FLAG_B \x3d 0x2; // 0010\nvar FLAG_C \x3d 0x4; // 0100\nvar FLAG_D \x3d 0x8; // 1000\n\x3c/pre\x3e\n\x3cp\x3eNew bitmasks can be created by using the bitwise logical operators on these primitive bitmasks. For example, the bitmask 1011 can be created by ORing FLAG_A, FLAG_B, and FLAG_D:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar mask \x3d FLAG_A | FLAG_B | FLAG_D; // 0001 | 0010 | 1000 \x3d\x26gt; 1011\n\x3c/pre\x3e\n\x3cp\x3eIndividual flag values can be extracted by ANDing them with a bitmask, where each bit with the value of one will \x26quot;extract\x26quot; the corresponding flag. The bitmask \x3cem\x3emasks\x3c/em\x3e out the non-relevant flags by ANDing with zeros (hence the term \x26quot;bitmask\x26quot;). For example, the bitmask 0100 can be used to see if flag C is set:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// if we own a cat\nif (flags \x26amp; FLAG_C) { // 0101 \x26amp; 0100 \x3d\x26gt; 0100 \x3d\x26gt; true\n   // do stuff\n}\n\x3c/pre\x3e\n\x3cp\x3eA bitmask with multiple set flags acts like an \x26quot;either/or\x26quot;. For example, the following two are equivalent:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// if we own a bat or we own a cat\nif ((flags \x26amp; FLAG_B) || (flags \x26amp; FLAG_C)) { // (0101 \x26amp; 0010) || (0101 \x26amp; 0100) \x3d\x26gt; 0000 || 0100 \x3d\x26gt; true\n   // do stuff\n}\n\x3c/pre\x3e\n\x3cpre class \x3d "eval"\x3e\n// if we own a bat or cat\nvar mask \x3d FLAG_B | FLAG_C; // 0010 | 0100 \x3d\x26gt; 0110\nif (flags \x26amp; mask) { // 0101 \x26amp; 0110 \x3d\x26gt; 0100 \x3d\x26gt; true\n   // do stuff\n}\n\x3c/pre\x3e\n\x3cp\x3eFlags can be set by ORing them with a bitmask, where each bit with the value one will set the corresponding flag, if that flag isn\'t already set. For example, the bitmask 1010 can be used to set flags C and D:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// yes, we own a cat and a duck\nvar mask \x3d FLAG_C | FLAG_D; // 0100 | 1000 \x3d\x26gt; 1100\nflags |\x3d mask;   // 0101 | 1100 \x3d\x26gt; 1101\n\x3c/pre\x3e\n\x3cp\x3eFlags can be cleared by ANDing them with a bitmask, where each bit with the value zero will clear the corresponding flag, if it isn\'t already cleared. This bitmask can be created by NOTing primitive bitmasks. For example, the bitmask 1010 can be used to clear flags A and C:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// no, we don\'t neither have an ant problem nor own a cat\nvar mask \x3d ~(FLAG_A | FLAG_C); // ~0101 \x3d\x26gt; 1010\nflags \x26amp;\x3d mask;   // 1101 \x26amp; 1010 \x3d\x26gt; 1000\n\x3c/pre\x3e\n\x3cp\x3eThe mask could also have been created with \x3ccode\x3e~FLAG_A \x26amp; ~FLAG_C\x3c/code\x3e (De Morgan\'s law):\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// no, we don\'t have an ant problem, and we don\'t own a cat\nvar mask \x3d ~FLAG_A \x26amp; ~FLAG_C;\nflags \x26amp;\x3d mask;   // 1101 \x26amp; 1010 \x3d\x26gt; 1000\n\x3c/pre\x3e\n\x3cp\x3eFlags can be toggled by XORing them with a bitmask, where each bit with the value one will toggle the corresponding flag. For example, the bitmask 0110 can be used to toggle flags B and C:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// if we didn\'t have a bat, we have one now, and if we did have one, bye-bye bat\n// same thing for cats\nvar mask \x3d FLAG_B | FLAG_C;\nflags \x3d flags ^ mask;   // 1100 ^ 0110 \x3d\x26gt; 1010\n\x3c/pre\x3e\n\x3cp\x3eFinally, the flags can all be flipped with the NOT operator:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// entering parallel universe...\nflags \x3d ~flags;    // ~1010 \x3d\x26gt; 0101\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Example:_Flags_and_bitmasks"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Flags and bitmasks\x3c/h4\x3e\n\x3cp\x3eThe bitwise logical operators are often used to create, manipulate, and read sequences of \x3cem\x3eflags\x3c/em\x3e, which are like binary variables. Variables could be used instead of these sequences, but binary flags take much less memory (by a factor of 32).\x3c/p\x3e\n\x3cp\x3eSuppose there are 4 flags:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eflag A: we have an ant problem\x3c/li\x3e \x3cli\x3eflag B: we own a bat\x3c/li\x3e \x3cli\x3eflag C: we own a cat\x3c/li\x3e \x3cli\x3eflag D: we own a duck\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eThese flags are represented by a sequence of bits: DCBA. When a flag is \x3cem\x3eset\x3c/em\x3e, it has a value of 1. When a flag is \x3cem\x3ecleared\x3c/em\x3e, it has a value of 0. Suppose a variable \x3ccode\x3eflags\x3c/code\x3e has the binary value 0101:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar flags \x3d 0x5;   // binary 0101\n\x3c/pre\x3e\n\x3cp\x3eThis value indicates:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eflag A is true (we have an ant problem);\x3c/li\x3e \x3cli\x3eflag B is false (we don\'t own a bat);\x3c/li\x3e \x3cli\x3eflag C is true (we own a cat);\x3c/li\x3e \x3cli\x3eflag D is false (we don\'t own a duck);\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eSince bitwise operators are 32-bit, 0101 is actually 00000000000000000000000000000101, but the preceding zeroes can be neglected since they contain no meaningful information.\x3c/p\x3e\n\x3cp\x3eA \x3cem\x3ebitmask\x3c/em\x3e is a sequence of bits that can manipulate and/or read flags. Typically, a \x26quot;primitive\x26quot; bitmask for each flag is defined:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar FLAG_A \x3d 0x1; // 0001\nvar FLAG_B \x3d 0x2; // 0010\nvar FLAG_C \x3d 0x4; // 0100\nvar FLAG_D \x3d 0x8; // 1000\n\x3c/pre\x3e\n\x3cp\x3eNew bitmasks can be created by using the bitwise logical operators on these primitive bitmasks. For example, the bitmask 1011 can be created by ORing FLAG_A, FLAG_B, and FLAG_D:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar mask \x3d FLAG_A | FLAG_B | FLAG_D; // 0001 | 0010 | 1000 \x3d\x26gt; 1011\n\x3c/pre\x3e\n\x3cp\x3eIndividual flag values can be extracted by ANDing them with a bitmask, where each bit with the value of one will \x26quot;extract\x26quot; the corresponding flag. The bitmask \x3cem\x3emasks\x3c/em\x3e out the non-relevant flags by ANDing with zeros (hence the term \x26quot;bitmask\x26quot;). For example, the bitmask 0100 can be used to see if flag C is set:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// if we own a cat\nif (flags \x26amp; FLAG_C) { // 0101 \x26amp; 0100 \x3d\x26gt; 0100 \x3d\x26gt; true\n   // do stuff\n}\n\x3c/pre\x3e\n\x3cp\x3eA bitmask with multiple set flags acts like an \x26quot;either/or\x26quot;. For example, the following two are equivalent:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// if we own a bat or we own a cat\nif ((flags \x26amp; FLAG_B) || (flags \x26amp; FLAG_C)) { // (0101 \x26amp; 0010) || (0101 \x26amp; 0100) \x3d\x26gt; 0000 || 0100 \x3d\x26gt; true\n   // do stuff\n}\n\x3c/pre\x3e\n\x3cpre class \x3d "eval"\x3e\n// if we own a bat or cat\nvar mask \x3d FLAG_B | FLAG_C; // 0010 | 0100 \x3d\x26gt; 0110\nif (flags \x26amp; mask) { // 0101 \x26amp; 0110 \x3d\x26gt; 0100 \x3d\x26gt; true\n   // do stuff\n}\n\x3c/pre\x3e\n\x3cp\x3eFlags can be set by ORing them with a bitmask, where each bit with the value one will set the corresponding flag, if that flag isn\'t already set. For example, the bitmask 1010 can be used to set flags C and D:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// yes, we own a cat and a duck\nvar mask \x3d FLAG_C | FLAG_D; // 0100 | 1000 \x3d\x26gt; 1100\nflags |\x3d mask;   // 0101 | 1100 \x3d\x26gt; 1101\n\x3c/pre\x3e\n\x3cp\x3eFlags can be cleared by ANDing them with a bitmask, where each bit with the value zero will clear the corresponding flag, if it isn\'t already cleared. This bitmask can be created by NOTing primitive bitmasks. For example, the bitmask 1010 can be used to clear flags A and C:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// no, we don\'t neither have an ant problem nor own a cat\nvar mask \x3d ~(FLAG_A | FLAG_C); // ~0101 \x3d\x26gt; 1010\nflags \x26amp;\x3d mask;   // 1101 \x26amp; 1010 \x3d\x26gt; 1000\n\x3c/pre\x3e\n\x3cp\x3eThe mask could also have been created with \x3ccode\x3e~FLAG_A \x26amp; ~FLAG_C\x3c/code\x3e (De Morgan\'s law):\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// no, we don\'t have an ant problem, and we don\'t own a cat\nvar mask \x3d ~FLAG_A \x26amp; ~FLAG_C;\nflags \x26amp;\x3d mask;   // 1101 \x26amp; 1010 \x3d\x26gt; 1000\n\x3c/pre\x3e\n\x3cp\x3eFlags can be toggled by XORing them with a bitmask, where each bit with the value one will toggle the corresponding flag. For example, the bitmask 0110 can be used to toggle flags B and C:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// if we didn\'t have a bat, we have one now, and if we did have one, bye-bye bat\n// same thing for cats\nvar mask \x3d FLAG_B | FLAG_C;\nflags \x3d flags ^ mask;   // 1100 ^ 0110 \x3d\x26gt; 1010\n\x3c/pre\x3e\n\x3cp\x3eFinally, the flags can all be flipped with the NOT operator:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// entering parallel universe...\nflags \x3d ~flags;    // ~1010 \x3d\x26gt; 0101\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Signed 32-bit integers","Bitwise logical operators","\x26amp; (Bitwise AND)","| (Bitwise OR)","^ (Bitwise XOR)","~ (Bitwise NOT)","Bitwise shift operators","\x26lt;\x26lt; (Left shift)","\x26gt;\x26gt; (Sign-propagating right shift)","\x26gt;\x26gt;\x26gt; (Zero-fill right shift)","Examples","Example: Flags and bitmasks"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators","title":"Comparison Operators","_id":"4eea841da4c86c4dba00003d",
"sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe operands can be numerical or string values. Strings are compared based on standard lexicographical ordering, using Unicode values.\x3c/p\x3e\n\x3cp\x3eJavaScript has both strict and type-converting equality comparison. For strict equality the objects being compared must have the same type and:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eTwo strings are strictly equal when they have the same sequence of characters, same length, and same characters in corresponding positions.\x3c/li\x3e \x3cli\x3eTwo numbers are strictly equal when they are numerically equal (have the same number value). NaN is not equal to anything, including NaN. Positive and negative zeros are equal to one another.\x3c/li\x3e \x3cli\x3eTwo Boolean operands are strictly equal if both are \x3ccode\x3etrue\x3c/code\x3e or both are \x3ccode\x3efalse\x3c/code\x3e.\x3c/li\x3e \x3cli\x3eTwo objects are strictly equal if they refer to the same Object.\x3c/li\x3e \x3cli\x3eNull and Undefined types are \x3ccode\x3e\x3d\x3d\x3c/code\x3e (but not \x3ccode\x3e\x3d\x3d\x3d\x3c/code\x3e).\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eThe following table describes the comparison operators:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eOperator\x3c/th\x3e \x3cth\x3eDescription\x3c/th\x3e \x3cth\x3eExamples returning true\x3csup\x3e1\x3c/sup\x3e\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eEqual (\x3ccode\x3e\x3d\x3d\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3eIf the two operands are \x3cstrong\x3enot of the same type\x3c/strong\x3e, JavaScript converts the operands then applies strict comparison. If either operand is \x3cstrong\x3ea number or a boolean\x3c/strong\x3e, the operands are converted to numbers if possible; else if either operand is\x3cstrong\x3e a string\x3c/strong\x3e, the other operand is converted to a string if possible. If \x3cstrong\x3eboth operands are objects\x3c/strong\x3e, then JavaScript compares internal references which are equal when operands refer to the same object in memory.\x3c/td\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3e3 \x3d\x3d var1\x3cbr/\x3e \x26quot;3\x26quot; \x3d\x3d var1\x3cbr/\x3e 3 \x3d\x3d \'3\'\x3cbr/\x3e \x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eNot equal (\x3ccode\x3e!\x3d\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3eReturns true if the operands are not equal. If the two operands are \x3cstrong\x3enot of the same type\x3c/strong\x3e, JavaScript attempts to convert the operands to an appropriate type for the comparison.\x26nbsp;If \x3cstrong\x3eboth operands are\x26nbsp;objects\x3c/strong\x3e, then JavaScript compares internal references which are not equal when operands refer to different objects in memory.\x3c/td\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3evar1\x26nbsp;!\x3d 4\x3cbr/\x3e var1\x26nbsp;!\x3d \x26quot;5\x26quot;\x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eStrict equal (\x3ccode\x3e\x3d\x3d\x3d\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3eReturns true if the operands are strictly equal (see above) with no type conversion.\x3c/td\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3e3 \x3d\x3d\x3d var1\x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eStrict not equal (\x3ccode\x3e!\x3d\x3d\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3eReturns true if the operands are not equal and/or not of the same type.\x3c/td\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3evar2\x26nbsp;!\x3d\x3d 3\x3cbr/\x3e 3\x26nbsp;!\x3d\x3d \'3\'\x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eGreater than (\x3ccode\x3e\x26gt;\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3eReturns true if the left operand is greater than the right operand.\x3c/td\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3evar2 \x26gt; var1\x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eGreater than or equal (\x3ccode\x3e\x26gt;\x3d\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3eReturns true if the left operand is greater than or equal to the right operand.\x3c/td\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3evar2 \x26gt;\x3d var1\x3cbr/\x3e var1 \x26gt;\x3d 3\x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eLess than (\x3ccode\x3e\x26lt;\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3eReturns true if the left operand is less than the right operand.\x3c/td\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3evar1 \x26lt; var2\x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eLess than or equal to (\x3ccode\x3e\x26lt;\x3d\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3eReturns true if the left operand is less than or equal to the right operand.\x3c/td\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3evar1 \x26lt;\x3d var2\x3cbr/\x3e var2 \x26lt;\x3d 5\x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3e\x3csmall\x3e\x3csup\x3e1\x3c/sup\x3e These examples assume that \x3ccode\x3evar1\x3c/code\x3e has been assigned the value 3 and \x3ccode\x3evar2\x3c/code\x3e has been assigned the value 4.\x3c/small\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Using_the_Equality_Operators"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eUsing the Equality Operators\x3c/h2\x3e\n\x3cp\x3eThe standard equality operators (\x3ccode\x3e\x3d\x3d\x3c/code\x3e and \x3ccode\x3e!\x3d\x3c/code\x3e) compare two operands without regard to their type. The strict equality operators (\x3ccode\x3e\x3d\x3d\x3d\x3c/code\x3e and \x3ccode\x3e!\x3d\x3d\x3c/code\x3e) perform equality comparisons on operands of the same type. Use strict equality operators if the operands must be of a specific type as well as value or if the exact type of the operands is important. Otherwise, use the standard equality operators, which allow you to compare the identity of two operands even if they are not of the same type.\x3c/p\x3e\n\x3cp\x3eWhen type conversion is needed, JavaScript converts String, Number, Boolean, or Object operands as follows.\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eWhen comparing a number and a string, the string is converted to a number value. JavaScript attempts to convert the string numeric literal to a \x3ccode\x3eNumber\x3c/code\x3e type value. First, a mathematical value is derived from the string numeric literal. Next, this value is rounded to nearest \x3ccode\x3eNumber\x3c/code\x3e type value.\x3c/li\x3e \x3cli\x3eIf one of the operands is \x3ccode\x3eBoolean\x3c/code\x3e, the Boolean operand is converted to 1 if it is \x3ccode\x3etrue\x3c/code\x3e and +0 if it is \x3ccode\x3efalse\x3c/code\x3e.\x3c/li\x3e \x3cli\x3eIf an object is compared with a number or string, JavaScript attempts to return the default value for the object. Operators attempt to convert the object to a primitive value, a \x3ccode\x3eString\x3c/code\x3e or \x3ccode\x3eNumber\x3c/code\x3e value, using the \x3ccode\x3evalueOf\x3c/code\x3e and \x3ccode\x3etoString\x3c/code\x3e methods of the objects. If this attempt to convert the object fails, a runtime error is generated.\x3c/li\x3e \x3cli\x3eNote that an object is converted into a primitive if, and only if, its comparand is a primitive. If both operands are objects, they\'re compared as objects, and the equality test is true only if both refer the same object.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Using the Equality Operators"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/Logical_Operators","title":"Logical Operators","_id":"4eea8422a4c86c4dba00003e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eLogical operators are typically used with Boolean (logical) values; when they are, they return a Boolean value. However, the \x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e and \x3ccode\x3e||\x3c/code\x3e operators actually return the value of one of the specified operands, so if these operators are used with non-Boolean values, they may return a non-Boolean value.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eOperators\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eThe logical operators are described in the following table:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eOperator\x3c/th\x3e \x3cth\x3eUsage\x3c/th\x3e \x3cth\x3eDescription\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eLogical AND (\x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3eexpr1\x3c/em\x3e \x26amp;\x26amp; \x3cem\x3eexpr2\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eReturns \x3ccode\x3eexpr1\x3c/code\x3e if it can be converted to false; otherwise, returns \x3ccode\x3eexpr2\x3c/code\x3e. Thus, when used with Boolean values, \x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e returns true if both operands are true; otherwise, returns false.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eLogical OR (\x3ccode\x3e||\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3eexpr1\x3c/em\x3e || \x3cem\x3eexpr2\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eReturns \x3ccode\x3eexpr1\x3c/code\x3e if it can be converted to true; otherwise, returns \x3ccode\x3eexpr2\x3c/code\x3e. Thus, when used with Boolean values, \x3ccode\x3e||\x3c/code\x3e returns true if either operand is true; if both are false, returns false.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eLogical NOT (\x3ccode\x3e!\x3c/code\x3e)\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e!\x3cem\x3eexpr\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eReturns false if its single operand can be converted to true; otherwise, returns true.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eExamples of expressions that can be converted to false are those that evaluate to null, 0, the empty string (\x26quot;\x26quot;), or undefined.\x3c/p\x3e\n\x3cp\x3eEven though the \x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e and \x3ccode\x3e||\x3c/code\x3e operators can be used with operands that are not Boolean values, they can still be considered Boolean operators since their return values can always be converted to Boolean values.\x3c/p\x3e\n\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Short-Circuit_Evaluation"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eShort-Circuit Evaluation\x3c/h4\x3e\n\x3cp\x3eAs logical expressions are evaluated left to right, they are tested for possible \x26quot;short-circuit\x26quot; evaluation using the following rules:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3efalse \x26amp;\x26amp; \x3cem\x3eanything\x3c/em\x3e\x3c/code\x3e is short-circuit evaluated to false.\x3c/li\x3e \x3cli\x3e\x3ccode\x3etrue || \x3cem\x3eanything\x3c/em\x3e\x3c/code\x3e is short-circuit evaluated to true.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eThe rules of logic guarantee that these evaluations are always correct. Note that the anything part of the above expressions is not evaluated, so any side effects of doing so do not take effect.\x3c/p\x3e\n\x3cp\x3eFor example, the following two functions are equivalent.\x3c/p\x3e\n\x3cpre\x3efunction shortCircuitEvaluation() {\n\x26nbsp;\x26nbsp;doSomething() || doSomethingElse()\n}\n\nfunction equivalentEvaluation() {\n\x26nbsp; var flag \x3d doSomething();\n\x26nbsp; if (!flag) {\n\x26nbsp; \x26nbsp; doSomethingElse();\n\x26nbsp; }\n}\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Short-Circuit_Evaluation"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eShort-Circuit Evaluation\x3c/h4\x3e\n\x3cp\x3eAs logical expressions are evaluated left to right, they are tested for possible \x26quot;short-circuit\x26quot; evaluation using the following rules:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3efalse \x26amp;\x26amp; \x3cem\x3eanything\x3c/em\x3e\x3c/code\x3e is short-circuit evaluated to false.\x3c/li\x3e \x3cli\x3e\x3ccode\x3etrue || \x3cem\x3eanything\x3c/em\x3e\x3c/code\x3e is short-circuit evaluated to true.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eThe rules of logic guarantee that these evaluations are always correct. Note that the anything part of the above expressions is not evaluated, so any side effects of doing so do not take effect.\x3c/p\x3e\n\x3cp\x3eFor example, the following two functions are equivalent.\x3c/p\x3e\n\x3cpre\x3efunction shortCircuitEvaluation() {\n\x26nbsp;\x26nbsp;doSomething() || doSomethingElse()\n}\n\nfunction equivalentEvaluation() {\n\x26nbsp; var flag \x3d doSomething();\n\x26nbsp; if (!flag) {\n\x26nbsp; \x26nbsp; doSomethingElse();\n\x26nbsp; }\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Backward_Compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBackward Compatibility\x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "JavaScript_1.0_and_1.1"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eJavaScript 1.0 and 1.1\x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e and \x3ccode\x3e||\x3c/code\x3e operators behave as follows:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eOperator\x3c/th\x3e \x3cth\x3eUsage\x3c/th\x3e \x3cth\x3eBehavior\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3eexpr1\x3c/em\x3e \x26amp;\x26amp; \x3cem\x3eexpr2\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eIf the first operand (\x3ccode\x3eexpr1\x3c/code\x3e) can be converted to false, the \x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e operator returns false rather than the value of \x3ccode\x3eexpr1\x3c/code\x3e.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e||\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3eexpr1\x3c/em\x3e || \x3cem\x3eexpr2\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eIf the first operand (\x3ccode\x3eexpr1\x3c/code\x3e) can be converted to true, the \x3ccode\x3e||\x3c/code\x3e operator returns true rather than the value of \x3ccode\x3eexpr1\x3c/code\x3e.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "JavaScript_1.0_and_1.1"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eJavaScript 1.0 and 1.1\x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e and \x3ccode\x3e||\x3c/code\x3e operators behave as follows:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eOperator\x3c/th\x3e \x3cth\x3eUsage\x3c/th\x3e \x3cth\x3eBehavior\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3eexpr1\x3c/em\x3e \x26amp;\x26amp; \x3cem\x3eexpr2\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eIf the first operand (\x3ccode\x3eexpr1\x3c/code\x3e) can be converted to false, the \x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e operator returns false rather than the value of \x3ccode\x3eexpr1\x3c/code\x3e.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e||\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cem\x3eexpr1\x3c/em\x3e || \x3cem\x3eexpr2\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eIf the first operand (\x3ccode\x3eexpr1\x3c/code\x3e) can be converted to true, the \x3ccode\x3e||\x3c/code\x3e operator returns true rather than the value of \x3ccode\x3eexpr1\x3c/code\x3e.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Logical_AND_.28\x26amp;\x26amp;.29"\x3e\x3c/span\x3e\x3cspan id \x3d "Logical_AND_(.26.26)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eLogical AND (\x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e)\x3c/h4\x3e\n\x3cp\x3eThe following code shows examples of the \x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e (logical AND) operator.\x3c/p\x3e\n\x3cpre\x3e\na1\x3dtrue \x26amp;\x26amp; true       // t \x26amp;\x26amp; t returns true\na2\x3dtrue \x26amp;\x26amp; false      // t \x26amp;\x26amp; f returns false\na3\x3dfalse \x26amp;\x26amp; true      // f \x26amp;\x26amp; t returns false\na4\x3dfalse \x26amp;\x26amp; (3 \x3d\x3d 4)  // f \x26amp;\x26amp; f returns false\na5\x3d\x26quot;Cat\x26quot; \x26amp;\x26amp; \x26quot;Dog\x26quot;     // t \x26amp;\x26amp; t returns Dog\na6\x3dfalse \x26amp;\x26amp; \x26quot;Cat\x26quot;     // f \x26amp;\x26amp; t returns false\na7\x3d\x26quot;Cat\x26quot; \x26amp;\x26amp; false     // t \x26amp;\x26amp; f returns false\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Logical_OR_.28||.29"\x3e\x3c/span\x3e\x3cspan id \x3d "Logical_OR_(.7C.7C)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eLogical OR (\x3ccode\x3e||\x3c/code\x3e)\x3c/h4\x3e\n\x3cp\x3eThe following code shows examples of the \x3ccode\x3e||\x3c/code\x3e (logical OR) operator.\x3c/p\x3e\n\x3cpre\x3e\no1\x3dtrue || true       // t || t returns true\no2\x3dfalse || true      // f || t returns true\no3\x3dtrue || false      // t || f returns true\no4\x3dfalse || (3 \x3d\x3d 4)  // f || f returns false\no5\x3d\x26quot;Cat\x26quot; || \x26quot;Dog\x26quot;     // t || t returns Cat\no6\x3dfalse || \x26quot;Cat\x26quot;     // f || t returns Cat\no7\x3d\x26quot;Cat\x26quot; || false     // t || f returns Cat\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Logical_NOT_.28.21.29"\x3e\x3c/span\x3e\x3cspan id \x3d "Logical_NOT_(!)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eLogical NOT (\x3ccode\x3e!\x3c/code\x3e)\x3c/h4\x3e\n\x3cp\x3eThe following code shows examples of the \x3ccode\x3e!\x3c/code\x3e (logical NOT) operator.\x3c/p\x3e\n\x3cpre\x3e\nn1\x3d!true              //\x26nbsp;!t returns false\nn2\x3d!false             //\x26nbsp;!f returns true\nn3\x3d!\x26quot;Cat\x26quot;             //\x26nbsp;!t returns false\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Logical_AND_.28\x26amp;\x26amp;.29"\x3e\x3c/span\x3e\x3cspan id \x3d "Logical_AND_(.26.26)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eLogical AND (\x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e)\x3c/h4\x3e\n\x3cp\x3eThe following code shows examples of the \x3ccode\x3e\x26amp;\x26amp;\x3c/code\x3e (logical AND) operator.\x3c/p\x3e\n\x3cpre\x3e\na1\x3dtrue \x26amp;\x26amp; true       // t \x26amp;\x26amp; t returns true\na2\x3dtrue \x26amp;\x26amp; false      // t \x26amp;\x26amp; f returns false\na3\x3dfalse \x26amp;\x26amp; true      // f \x26amp;\x26amp; t returns false\na4\x3dfalse \x26amp;\x26amp; (3 \x3d\x3d 4)  // f \x26amp;\x26amp; f returns false\na5\x3d\x26quot;Cat\x26quot; \x26amp;\x26amp; \x26quot;Dog\x26quot;     // t \x26amp;\x26amp; t returns Dog\na6\x3dfalse \x26amp;\x26amp; \x26quot;Cat\x26quot;     // f \x26amp;\x26amp; t returns false\na7\x3d\x26quot;Cat\x26quot; \x26amp;\x26amp; false     // t \x26amp;\x26amp; f returns false\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Logical_OR_.28||.29"\x3e\x3c/span\x3e\x3cspan id \x3d "Logical_OR_(.7C.7C)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eLogical OR (\x3ccode\x3e||\x3c/code\x3e)\x3c/h4\x3e\n\x3cp\x3eThe following code shows examples of the \x3ccode\x3e||\x3c/code\x3e (logical OR) operator.\x3c/p\x3e\n\x3cpre\x3e\no1\x3dtrue || true       // t || t returns true\no2\x3dfalse || true      // f || t returns true\no3\x3dtrue || false      // t || f returns true\no4\x3dfalse || (3 \x3d\x3d 4)  // f || f returns false\no5\x3d\x26quot;Cat\x26quot; || \x26quot;Dog\x26quot;     // t || t returns Cat\no6\x3dfalse || \x26quot;Cat\x26quot;     // f || t returns Cat\no7\x3d\x26quot;Cat\x26quot; || false     // t || f returns Cat\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Logical_NOT_.28.21.29"\x3e\x3c/span\x3e\x3cspan id \x3d "Logical_NOT_(!)"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eLogical NOT (\x3ccode\x3e!\x3c/code\x3e)\x3c/h4\x3e\n\x3cp\x3eThe following code shows examples of the \x3ccode\x3e!\x3c/code\x3e (logical NOT) operator.\x3c/p\x3e\n\x3cpre\x3e\nn1\x3d!true              //\x26nbsp;!t returns false\nn2\x3d!false             //\x26nbsp;!f returns true\nn3\x3d!\x26quot;Cat\x26quot;             //\x26nbsp;!t returns false\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Short-Circuit Evaluation","Backward Compatibility","JavaScript 1.0 and 1.1","Examples","Logical AND (\x26amp;\x26amp;)","Logical OR (||)","Logical NOT (!)"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/String_Operators","title":"String Operators","_id":"4eea8422a4c86c4dba00003f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eIn addition to the comparison operators, which can be used on string values, the concatenation operator (\x3ccode\x3e+\x3c/code\x3e) concatenates two string values together, returning another string that is the union of the two operand strings. For example, \x3ccode\x3e\x26quot;my \x26quot; + \x26quot;string\x26quot;\x3c/code\x3e returns the string \x3ccode\x3e\x26quot;my string\x26quot;\x3c/code\x3e.\n\x3c/p\x3e\x3cp\x3eThe shorthand assignment operator \x3ccode\x3e+\x3d\x3c/code\x3e can also be used to concatenate strings. For example, if the variable \x3ccode\x3emystring\x3c/code\x3e has the value \x26quot;\x3ccode\x3ealpha\x3c/code\x3e\x26quot;, then the expression \x3ccode\x3emystring +\x3d \x26quot;bet\x26quot;\x3c/code\x3e evaluates to \x26quot;\x3ccode\x3ealphabet\x3c/code\x3e\x26quot; and assigns this value to \x3ccode\x3emystring\x3c/code\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eOperator\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.0\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":[" Summary "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/Member_Operators","title":"Member Operators","_id":"4eea8424a4c86c4dba000040","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eMember operators provide access to an object\'s properties and methods.\x3c/p\x3e\n\x3cp\x3eAn object is actually an \x3cem\x3eassociative array\x3c/em\x3e (a.k.a. \x3cem\x3emap\x3c/em\x3e, \x3cem\x3edictionary\x3c/em\x3e, \x3cem\x3ehash\x3c/em\x3e, \x3cem\x3elookup table\x3c/em\x3e). The \x3cem\x3ekeys\x3c/em\x3e in this array are the names of object members. It\'s typical when speaking of an object\'s members to make a distinction between properties and methods. However, the property/method distinction is little more than a convention. A method is simply a property with a \x3ca title \x3d "en/JavaScript/Reference/Functions_and_function_scope" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope"\x3efunction\x3c/a\x3e as its value.\x3c/p\x3e\n\x3cp\x3eThere are two ways to access object members: dot notation and bracket notation (a.k.a. subscript operator).\x3c/p\x3e\n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;The ECMAScript specification labels these operators as \x26quot;property accessors\x26quot; rather than \x26quot;member operators\x26quot;. Given the property/method distinction above, however, we will use \x26quot;member\x26quot; as an inclusive term for properties and methods, for the sake of clarity.\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Dot_notation"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDot notation\x3c/h2\x3e\n\x3cpre\x3e\nget \x3d object.property;\nobject.property \x3d set;\n\x3c/pre\x3e\n\x3cp\x3e\x3ccode\x3eproperty\x3c/code\x3e must be a valid JavaScript identifier, i.e. a sequence of alphanumerical characters, also including the underscore (\x26quot;\x3ccode\x3e_\x3c/code\x3e\x26quot;) and dollar sign (\x26quot;\x3ccode\x3e$\x3c/code\x3e\x26quot;), that cannot start with a number. For example, \x3ccode\x3eobject.$1\x3c/code\x3e is valid, while \x3ccode\x3eobject.1\x3c/code\x3e is not.\x3c/p\x3e\n\x3cp\x3eExample:\x3c/p\x3e\n\x3cpre\x3e\ndocument.createElement(\'pre\');\n\x3c/pre\x3e\n\x3cp\x3eHere, the method named \x26quot;createElement\x26quot; is retrieved from \x3ccode\x3edocument\x3c/code\x3e and is called.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Bracket_notation"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBracket notation\x3c/h2\x3e\n\x3cpre\x3e\nget \x3d object[property_name];\nobject[property_name] \x3d set;\n\x3c/pre\x3e\n\x3cp\x3e\x3ccode\x3eproperty_name\x3c/code\x3e is a string. The string does not have to be a valid identifier; it can have any value, e.g. \x26quot;1foo\x26quot;, \x26quot;!bar!\x26quot;, or even \x26quot; \x26quot; (a space).\x3c/p\x3e\n\x3cp\x3eExample:\x3c/p\x3e\n\x3cpre\x3e\ndocument[\'createElement\'](\'pre\');\n\x3c/pre\x3e\n\x3cp\x3eThis does the exact same thing as the previous example.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Property_names"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperty names\x3c/h2\x3e\n\x3cp\x3eProperty names must be strings. This means that non-string objects cannot be used as keys in the object. Any non-string object, including a number, is typecasted into a string via the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e method.\x3c/p\x3e\n\x3cp\x3eExamples:\x3c/p\x3e\n\x3cpre\x3e\nvar object \x3d {};\nobject[\'1\'] \x3d \'value\';\nalert(object[1]);\n\x3c/pre\x3e\n\x3cp\x3eThis outputs \x26quot;value\x26quot;, since 1 is typecasted into \'1\'.\x3c/p\x3e\n\x3cpre\x3e\nvar foo \x3d {unique_prop: 1}, bar \x3d {unique_prop: 2}, object \x3d {};\nobject[foo] \x3d \'value\';\nalert(object[bar]);\n\x3c/pre\x3e\n\x3cp\x3eThis also outputs \x26quot;value\x26quot;, since both foo and bar are converted to the same string. In the \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e JavaScript engine, this string would be \x26quot;[object Object]\x26quot;.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Method_binding"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod binding\x3c/h2\x3e\n\x3cp\x3eA method is not bound to the object that it is a method of. Specifically, \x3ccode\x3ethis\x3c/code\x3e is not fixed in a method, i.e. \x3ccode\x3ethis\x3c/code\x3e does not necessarily refer to an object containing the method. \x3ccode\x3ethis\x3c/code\x3e is instead \x26quot;passed\x26quot; by the function call.\x3c/p\x3e\n\x3cp\x3eSee \x3ca title \x3d "en/JavaScript/Reference/Operators/Special/this#Method_binding" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/this#Method_binding"\x3emethod binding\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Note_on_eval"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eNote on \x3ccode\x3eeval\x3c/code\x3e\x3c/h2\x3e\n\x3cp\x3eJavaScript novices often make the mistake of using \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Functions/eval" class \x3d "new "\x3eeval\x3c/a\x3e where the bracket notation can be used instead. For example, the following syntax is often seen in many scripts.\x3c/p\x3e\n\x3cpre\x3e\nx \x3d eval(\'document.form_name.\' + strFormControl + \'.value\');\n\x3c/pre\x3e\n\x3cp\x3e\x3ccode\x3eeval\x3c/code\x3e is slow and should be avoided whenever possible. It is better to use the bracket notation instead:\x3c/p\x3e\n\x3cpre\x3e\nx \x3d document.form_name[strFormControl].value;\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Dot notation","Bracket notation","Property names","Method binding","Note on eval"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/Conditional_Operator","title":"Conditional Operator","_id":"4eea8424a4c86c4dba000041","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eThe conditional operator is the only JavaScript operator that takes three operands. This operator is frequently used as a shortcut for the \x3ccode\x3eif\x3c/code\x3e statement.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eOperator\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.0\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\n\x3ci\x3econdition\x3c/i\x3e\x26nbsp;? \x3ci\x3eexpr1\x3c/i\x3e\x26nbsp;: \x3ci\x3eexpr2\x3c/i\x3e\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3econdition\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An expression that evaluates to \x3ccode\x3etrue\x3c/code\x3e or \x3ccode\x3efalse\x3c/code\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eexpr1\x3c/code\x3e, \x3ccode\x3eexpr2\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Expressions with values of any type.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf \x3ccode\x3econdition\x3c/code\x3e is \x3ccode\x3etrue\x3c/code\x3e, the operator returns the value of \x3ccode\x3eexpr1\x3c/code\x3e; otherwise, it returns the value of \x3ccode\x3eexpr2\x3c/code\x3e. For example, to display a different message based on the value of the \x3ccode\x3eisMember\x3c/code\x3e variable, you could use this statement:\n\x3c/p\x3e\n\x3cpre\x3e\ndocument.write (\x26quot;The fee is \x26quot; + (isMember\x26nbsp;? \x26quot;$2.00\x26quot;\x26nbsp;: \x26quot;$10.00\x26quot;))\n\x3c/pre\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comma_Operator","title":"Comma Operator","_id":"4eea8426a4c86c4dba000042","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe comma operator evaluates both of its operands (from left to right)\x26nbsp;and returns the value of the second operand.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd colspan \x3d "2" class \x3d "header"\x3eOperator\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e \x3cem\x3eexpr1\x3c/em\x3e, \x3cem\x3eexpr2\x3c/em\x3e \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eexpr1\x3c/code\x3e, \x3ccode\x3eexpr2\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eAny expressions.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eYou can use the comma operator when you want to include multiple expressions in a location that requires a single expression. The most common usage of this operator is to supply multiple parameters in a \x3ccode\x3efor\x3c/code\x3e loop.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\x3cp\x3eIf \x3ccode\x3ea\x3c/code\x3e is a 2-dimensional array with 10 elements on a side, the following code uses the comma operator to increment two variables at once. The code prints the values of the diagonal elements in the array:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efor (var i \x3d 0, j \x3d 9; i \x26lt;\x3d 9; i++, j--)\n  document.writeln(\x26quot;a[\x26quot; + i + \x26quot;][\x26quot; + j + \x26quot;] \x3d \x26quot; + a[i][j]);\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Example"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/delete","title":"delete","_id":"4eea8436a4c86c4dba000043","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3edelete\x3c/code\x3e operator deletes a property of an object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth scope \x3d "row" colspan \x3d "2" class \x3d "header"\x3eOperator\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition:\x3c/td\x3e \x3ctd\x3eECMA-262 ? Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3edelete \x3cem\x3eexpression\x3c/em\x3e\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3ewhere \x3cem\x3eexpression\x3c/em\x3e should evaluate to a property reference, e.g.:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ndelete \x3cem\x3evariableName\x3c/em\x3e\ndelete \x3cem\x3eobjectExpression.property\x3c/em\x3e\ndelete \x3cem\x3eobjectExpression\x3c/em\x3e[\x26quot;\x3cem\x3eproperty\x3c/em\x3e\x26quot;]\ndelete \x3cem\x3eobjectExpression\x3c/em\x3e[\x3cem\x3eindex\x3c/em\x3e]\ndelete \x3cem\x3eproperty\x3c/em\x3e // legal only within a with statement\n\x3c/pre\x3e\n\x3cp\x3eIf \x3cem\x3eexpression\x3c/em\x3e does not evaluate to a property, \x3ccode\x3edelete\x3c/code\x3e does nothing.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eobjectName\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of an object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eproperty\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe property to delete.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eindex\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn integer representing the array index to delete.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3cspan id \x3d "Returns"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eReturns\x3c/h2\x3e\n\x3cp\x3eReturns false only if the property exists and cannot be deleted. It returns true in all other cases.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe fifth form is legal only within a \x3ccode\x3ewith\x3c/code\x3e statement, to delete a property from an object.\x3c/p\x3e\n\x3cp\x3eYou can use the \x3ccode\x3edelete\x3c/code\x3e operator to delete variables declared implicitly but not those declared with the \x3ccode\x3evar\x3c/code\x3e or the \x3ccode\x3efunction\x3c/code\x3e statement.\x3c/p\x3e\n\x3cp\x3eIf the \x3ccode\x3edelete\x3c/code\x3e operator succeeds, it removes the property from the object entirely, although this might reveal a similarly named property on a prototype of the object.\x3c/p\x3e\n\x3cp\x3eSome object properties cannot be deleted. In the ECMA 262 specification these are marked as \x3cem\x3eDontDelete\x3c/em\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ex \x3d 42;        // assigns as property of global object\nvar y \x3d 43;    // declares as variable\nmyobj \x3d new Number();\nmyobj.h \x3d 4;    // create property h\nmyobj.k \x3d 5;    // create property k\n\ndelete x;       // returns true (can delete if declared implicitly)\ndelete y;       // returns false (cannot delete if declared with var, property is DontDelete)\ndelete Math.PI; // returns false (cannot delete most predefined properties, declared DontDelete)\ndelete myobj.h; // returns true (can delete user-defined properties)\nwith(myobj) { \n  delete k;    // returns true (equivalent to delete myobj.k)\n} \ndelete myobj;   // returns true (can delete if declared implicitly, equivalent to x)\x3c/pre\x3e\r\n        \n\x3cp\x3eYou cannot delete a property on an object that it inherits from a prototype (although you can delete it directly on the prototype).\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Foo(){}\n Foo.prototype.bar \x3d 42;\n var foo \x3d new Foo();\n delete foo.bar;           // but doesn\'t do anything\n alert(foo.bar);           // alerts 42, property inherited\n delete Foo.prototype.bar; // deletes property on prototype\n alert(foo.bar);           // alerts \x26quot;undefined\x26quot;, property no longer inherited\x3c/pre\x3e\r\n        \n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Deleting_array_elements"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDeleting array elements\x3c/h3\x3e\n\x3cp\x3eWhen you delete an array element, the array length is not affected. For example, if you delete a[3], a[4] is still a[4] and a[3] is undefined. This holds even if you delete the last element of the array (\x3ccode\x3edelete a[a.length-1]\x3c/code\x3e).\x3c/p\x3e\n\x3cp\x3eWhen the \x3ccode\x3edelete\x3c/code\x3e operator removes an array element, that element is no longer in the array. In the following example, trees[3] is removed with \x3ccode\x3edelete\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar trees \x3d [\x26quot;redwood\x26quot;,\x26quot;bay\x26quot;,\x26quot;cedar\x26quot;,\x26quot;oak\x26quot;,\x26quot;maple\x26quot;];\ndelete trees[3];\nif (3 in trees) {\n   // this does not get executed\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eIf you want an array element to exist but have an undefined value, use the \x3ccode\x3eundefined\x3c/code\x3e value instead of the \x3ccode\x3edelete\x3c/code\x3e operator. In the following example, trees[3] is assigned the value undefined, but the array element still exists:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar trees \x3d [\x26quot;redwood\x26quot;,\x26quot;bay\x26quot;,\x26quot;cedar\x26quot;,\x26quot;oak\x26quot;,\x26quot;maple\x26quot;];\ntrees[3]\x3dundefined;\nif (3 in trees) {\n   // this gets executed\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Deleting_array_elements"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDeleting array elements\x3c/h3\x3e\n\x3cp\x3eWhen you delete an array element, the array length is not affected. For example, if you delete a[3], a[4] is still a[4] and a[3] is undefined. This holds even if you delete the last element of the array (\x3ccode\x3edelete a[a.length-1]\x3c/code\x3e).\x3c/p\x3e\n\x3cp\x3eWhen the \x3ccode\x3edelete\x3c/code\x3e operator removes an array element, that element is no longer in the array. In the following example, trees[3] is removed with \x3ccode\x3edelete\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar trees \x3d [\x26quot;redwood\x26quot;,\x26quot;bay\x26quot;,\x26quot;cedar\x26quot;,\x26quot;oak\x26quot;,\x26quot;maple\x26quot;];\ndelete trees[3];\nif (3 in trees) {\n   // this does not get executed\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eIf you want an array element to exist but have an undefined value, use the \x3ccode\x3eundefined\x3c/code\x3e value instead of the \x3ccode\x3edelete\x3c/code\x3e operator. In the following example, trees[3] is assigned the value undefined, but the array element still exists:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar trees \x3d [\x26quot;redwood\x26quot;,\x26quot;bay\x26quot;,\x26quot;cedar\x26quot;,\x26quot;oak\x26quot;,\x26quot;maple\x26quot;];\ntrees[3]\x3dundefined;\nif (3 in trees) {\n   // this gets executed\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Cross-browser_issues"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser issues\x3c/h2\x3e\n\x3cp\x3eAlthough ECMAScript makes iteration order of objects implementation-dependent, it may appear that all major browsers support an iteration order based on the earliest added property coming first (at least for properties not on the prototype). However, in the case of Internet Explorer, when one uses \x3ccode\x3edelete\x3c/code\x3e on a property, some confusing behavior results, preventing other browsers from using simple objects like object literals as ordered associative arrays. In Explorer, while the property \x3cem\x3evalue\x3c/em\x3e is indeed set to undefined, if one later adds back a property with the same name, the property will be iterated in its \x3cem\x3eold\x3c/em\x3e position--not at the end of the iteration sequence as one might expect after having deleted the property and then added it back.\x3c/p\x3e\n\x3cp\x3eSo if you want to simulate an ordered associative array in a cross-browser environment, you are forced to either use two separate arrays (one for the keys and the other for the values), or build an array of single-property objects, etc.\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Returns","Description","Deleting array elements","Cross-browser issues"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/get","title":"get","_id":"4eea8438a4c86c4dba000044","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eBinds an object property to a function that will be called when that property is looked up.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e{get \x3cem\x3eprop\x3c/em\x3e() { .\x26nbsp;.\x26nbsp;. } }\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ethe name of the property to bind to the given function\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eSometimes it is desirable to allow access to a property that returns a dynamically computed value, or you may want reflect the status of an internal variable without requiring the use of explicit method calls. In JavaScript, this can be accomplished with the use of a getter. It is not possible to simultaneously have a getter bound to a property and have that property actually hold a value, although it is possible to use a getter and a setter in conjunction to create a type of pseudo-property.\x3c/p\x3e\n\n\x3cdiv style \x3d "border: 0px none ; margin: 10px 0px; padding: 0px 10px; background-color: rgb(254, 244, 156); text-align: center;"\x3e\x3cp style \x3d "margin: 4px 0px; font-weight: bold;"\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e note\x3c/p\x3e\x3cp style \x3d "margin: 4px 0px;"\x3e\x3cp style \x3d "text-align: left;"\x3eStarting in JavaScript 1.8.5, the \x3ccode\x3eget\x3c/code\x3e operator:\x3c/p\x3e\n  \x3cul style \x3d "text-align: left;"\x3e\n    \x3cli\x3ecan have an identifier which is either a number or a string;\x3c/li\x3e\n    \x3cli\x3emust have exactly zero parameters (see \n      \x3ca href \x3d "http://whereswalden.com/2010/08/22/incompatible-es5-change-literal-getter-and-setter-functions-must-now-have-exactly-zero-or-one-arguments/" class \x3d "external" rel \x3d "external nofollow" target \x3d "_blank"\x3eIncompatible \x3cabbr title \x3d "ECMAScript 5th edition"\x3eES5\x3c/abbr\x3e change: literal getter and setter functions must now have exactly zero or one arguments\x3c/a\x3e\n      for more information);\x3c/li\x3e\n    \x3cli\x3emust not appear in an object literal with another \x3ccode\x3eget\x3c/code\x3e\n      or with a data entry for the same property (\x3ccode\x3e{ get x() { }, get x() { } }\x3c/code\x3e\n      and \x3ccode\x3e{ x: ..., get x() { } }\x3c/code\x3e are forbidden).\x3c/li\x3e\n  \x3c/ul\x3e\x3c/p\x3e\x3c/div\x3e\n\x3cp\x3eA getter can be removed using the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/delete_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete"\x3edelete\x3c/a\x3e\x3c/code\x3e operator.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Defining_a_getter_with_the_get_operator"\x3e\x3c/span\x3e\x3cspan id \x3d "Defining_a_getter_with_the_get_operator"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDefining a getter with the \x3ccode\x3eget\x3c/code\x3e operator\x3c/h3\x3e\n\x3cp\x3eThis will create a pseudo-property \x3ccode\x3elatest\x3c/code\x3e of object \x3ccode\x3eo\x3c/code\x3e that will return the most recent entry into \x3ccode\x3eo.log\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {\n  get latest () {\n    if (this.log.length \x26gt; 0) {\n      return this.log[this.log.length - 1];\n    }\n    else {\n      return null;\n    }\n  },\n  log: []\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that attempting to assign a value to \x3ccode\x3elatest\x3c/code\x3e will not change it.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Deleting_a_getter_using_the_delete_operator"\x3e\x3c/span\x3e\x3cspan id \x3d "Deleting_a_getter_using_the_delete_operator"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDeleting a getter using the \x3ccode\x3edelete\x3c/code\x3e operator\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3edelete o.latest;\x3c/pre\x3e\r\n         \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Defining_a_getter_with_the_get_operator"\x3e\x3c/span\x3e\x3cspan id \x3d "Defining_a_getter_with_the_get_operator"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDefining a getter with the \x3ccode\x3eget\x3c/code\x3e operator\x3c/h3\x3e\n\x3cp\x3eThis will create a pseudo-property \x3ccode\x3elatest\x3c/code\x3e of object \x3ccode\x3eo\x3c/code\x3e that will return the most recent entry into \x3ccode\x3eo.log\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {\n  get latest () {\n    if (this.log.length \x26gt; 0) {\n      return this.log[this.log.length - 1];\n    }\n    else {\n      return null;\n    }\n  },\n  log: []\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that attempting to assign a value to \x3ccode\x3elatest\x3c/code\x3e will not change it.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Deleting_a_getter_using_the_delete_operator"\x3e\x3c/span\x3e\x3cspan id \x3d "Deleting_a_getter_using_the_delete_operator"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDeleting a getter using the \x3ccode\x3edelete\x3c/code\x3e operator\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3edelete o.latest;\x3c/pre\x3e\r\n         \x3c/div\x3e','\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://robertnyman.com/javascript/javascript-getters-setters.html#regular-getters-and-setters" title \x3d "http://robertnyman.com/javascript/javascript-getters-setters.html#regular-getters-and-setters" target \x3d "_blank"\x3eRobert Nyman\'s page\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3eNo support (notably in IE6-8) means that the script will trigger a syntax error.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e2.0 (1.8.1)\n\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e9.5\x3c/td\x3e \x3ctd\x3e3\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/delete_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete"\x3edelete\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/set_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/set"\x3eset\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Guide/Working with Objects#Defining Getters and Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects#Defining_Getters_and_Setters"\x3eDefining Getters and Setters\x3c/a\x3e in JavaScript Guide\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Defining a getter with the get operator","Deleting a getter using the delete operator","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/in","title":"in","_id":"4eea8439a4c86c4dba000045","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3ein\x3c/code\x3e operator returns \x3ccode\x3etrue\x3c/code\x3e if the specified property is in the specified object.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eOperator\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.4\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e \x3cem\x3eprop\x3c/em\x3e in \x3cem\x3eobjectName\x3c/em\x3e \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA string or numeric expression representing a property name or array index.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eobjectName\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eName of an object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe following examples show some uses of the \x3ccode\x3ein\x3c/code\x3e operator.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// Arrays\nvar trees \x3d new Array(\x26quot;redwood\x26quot;, \x26quot;bay\x26quot;, \x26quot;cedar\x26quot;, \x26quot;oak\x26quot;, \x26quot;maple\x26quot;);\n0 in trees        // returns true\n3 in trees        // returns true\n6 in trees        // returns false\n\x26quot;bay\x26quot; in trees    // returns false (you must specify the index number,\n                  // not the value at that index)\n\x26quot;length\x26quot; in trees // returns true (length is an Array property)\n\n// Predefined objects\n\x26quot;PI\x26quot; in Math          // returns true\n\n// Custom objects\nvar mycar \x3d {make: \x26quot;Honda\x26quot;, model: \x26quot;Accord\x26quot;, year: 1998};\n\x26quot;make\x26quot; in mycar  // returns true\n\x26quot;model\x26quot; in mycar // returns true\n\x3c/pre\x3e\n\x3cp\x3eYou must specify an object on the right side of the \x3ccode\x3ein\x3c/code\x3e operator. For example, you can specify a string created with the \x3ccode\x3eString\x3c/code\x3e constructor, but you cannot specify a string literal.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar color1 \x3d new String(\x26quot;green\x26quot;);\n\x26quot;length\x26quot; in color1 // returns true\nvar color2 \x3d \x26quot;coral\x26quot;;\n\x26quot;length\x26quot; in color2 // generates an error (color is not a String object)\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Using_in_with_deleted_or_undefined_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing \x3ccode\x3ein\x3c/code\x3e with deleted or undefined properties\x3c/h4\x3e\n\x3cp\x3eIf you delete a property with the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special/delete" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete"\x3edelete\x3c/a\x3e\x3c/code\x3e operator, the \x3ccode\x3ein\x3c/code\x3e operator returns \x3ccode\x3efalse\x3c/code\x3e for that property.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar mycar \x3d {make: \x26quot;Honda\x26quot;, model: \x26quot;Accord\x26quot;, year: 1998};\ndelete mycar.make;\n\x26quot;make\x26quot; in mycar;  // returns false\n\nvar trees \x3d new Array(\x26quot;redwood\x26quot;, \x26quot;bay\x26quot;, \x26quot;cedar\x26quot;, \x26quot;oak\x26quot;, \x26quot;maple\x26quot;);\ndelete trees[3];\n3 in trees; // returns false\n\x3c/pre\x3e\n\x3cp\x3eIf you set a property to undefined but do not delete it, the \x3ccode\x3ein\x3c/code\x3e operator returns true for that property.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar mycar \x3d {make: \x26quot;Honda\x26quot;, model: \x26quot;Accord\x26quot;, year: 1998};\nmycar.make \x3d undefined;\n\x26quot;make\x26quot; in mycar;  // returns true\n\x3c/pre\x3e\n\x3cpre class \x3d "eval"\x3e\nvar trees \x3d new Array(\x26quot;redwood\x26quot;, \x26quot;bay\x26quot;, \x26quot;cedar\x26quot;, \x26quot;oak\x26quot;, \x26quot;maple\x26quot;);\ntrees[3] \x3d undefined;\n3 in trees; // returns true\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Inherited_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eInherited properties\x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3ein\x3c/code\x3e operator returns \x3ccode\x3etrue\x3c/code\x3e for properties in the prototype chain.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n\x26quot;toString\x26quot; in {}; // returns true\n\x3c/pre\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Using_in_with_deleted_or_undefined_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing \x3ccode\x3ein\x3c/code\x3e with deleted or undefined properties\x3c/h4\x3e\n\x3cp\x3eIf you delete a property with the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special/delete" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete"\x3edelete\x3c/a\x3e\x3c/code\x3e operator, the \x3ccode\x3ein\x3c/code\x3e operator returns \x3ccode\x3efalse\x3c/code\x3e for that property.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar mycar \x3d {make: \x26quot;Honda\x26quot;, model: \x26quot;Accord\x26quot;, year: 1998};\ndelete mycar.make;\n\x26quot;make\x26quot; in mycar;  // returns false\n\nvar trees \x3d new Array(\x26quot;redwood\x26quot;, \x26quot;bay\x26quot;, \x26quot;cedar\x26quot;, \x26quot;oak\x26quot;, \x26quot;maple\x26quot;);\ndelete trees[3];\n3 in trees; // returns false\n\x3c/pre\x3e\n\x3cp\x3eIf you set a property to undefined but do not delete it, the \x3ccode\x3ein\x3c/code\x3e operator returns true for that property.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar mycar \x3d {make: \x26quot;Honda\x26quot;, model: \x26quot;Accord\x26quot;, year: 1998};\nmycar.make \x3d undefined;\n\x26quot;make\x26quot; in mycar;  // returns true\n\x3c/pre\x3e\n\x3cpre class \x3d "eval"\x3e\nvar trees \x3d new Array(\x26quot;redwood\x26quot;, \x26quot;bay\x26quot;, \x26quot;cedar\x26quot;, \x26quot;oak\x26quot;, \x26quot;maple\x26quot;);\ntrees[3] \x3d undefined;\n3 in trees; // returns true\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Inherited_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eInherited properties\x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3ein\x3c/code\x3e operator returns \x3ccode\x3etrue\x3c/code\x3e for properties in the prototype chain.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n\x26quot;toString\x26quot; in {}; // returns true\n\x3c/pre\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special/delete" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete"\x3edelete\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty"\x3eObject.prototype.hasOwnProperty\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Using in with deleted or undefined properties","Inherited properties","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/instanceof","title":"instanceof","_id":"4eea843aa4c86c4dba000046","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3einstanceof\x3c/code\x3e operator tests whether an object has in its prototype chain the \x3ccode\x3eprototype\x3c/code\x3e property of a constructor.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2" scope \x3d "row"\x3eOperator\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.4\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition:\x3c/td\x3e \x3ctd\x3eECMA-262 ? Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3ccode\x3e\x3cem\x3eobject\x3c/em\x3e instanceof \x3cem\x3econstructor\x3c/em\x3e\x3c/code\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eobject\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe object to test.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eFunction to test against\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3einstanceof\x3c/code\x3e operator tests presence of \x3ccode\x3econstructor.prototype\x3c/code\x3e in \x3ccode\x3eobject\x3c/code\x3e prototype chain.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction C(){} // defining a constructor\nfunction D(){} // defining another constructor\n\nvar o \x3d new C();\no instanceof C; // true, because: Object.getPrototypeOf(o) \x3d\x3d\x3d C.prototype\no instanceof D; // false, because D.prototype is nowhere in o\'s prototype chain\no instanceof Object; // true, because:\nC.prototype instanceof Object // true\n\nC.prototype \x3d {};\nvar o2 \x3d new C();\no2 instanceof C; // true\no instanceof C; // false, because C.prototype is nowhere in o\'s prototype chain anymore\n\nD.prototype \x3d Object.getPrototypeOf(o);\no instanceof D; // true\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that if the value of an \x3ccode\x3einstanceof\x3c/code\x3e test can change based on changes to the \x3ccode\x3eprototype\x3c/code\x3e property of constructors, it cannot be changed by changing an object prototype, because changing an object prototype is not possible in standard ECMAScript. It is however possible using the non-standard \x3ccode\x3e__proto__\x3c/code\x3e pseudo-property.\x3c/p\x3e \x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "instanceof_and_multiple_context_(e.g._frames_or_windows)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3einstanceof\x3c/code\x3e and multiple context (e.g. frames or windows)\x3c/h3\x3e\n\x3cp\x3eDifferent scope have different execution environments. This means that they have different built-ins (different global object, different constructors, etc.). This may result in unexpected results. For instance, if \x3ccode\x3eArray2\x3c/code\x3e is the \x3ccode\x3eArray\x3c/code\x3e constructor of another context, \x3ccode\x3e[] instanceof Array2\x3c/code\x3e will return \x3ccode\x3efalse\x3c/code\x3e, because \x3ccode\x3eArray.prototype !\x3d\x3d Array2.prototype\x3c/code\x3e and arrays inherit from the former.\x3c/p\x3e\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Mozilla_developers"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMozilla developers\x3c/h3\x3e\n\x3cp\x3eIn code using XPCOM \x3ccode\x3einstanceof\x3c/code\x3e has special effect: \x3ccode\x3eobj instanceof \x3c/code\x3e\x3cem\x3e\x3ccode\x3expcomInterface\x3c/code\x3e\x3c/em\x3e (e.g. \x3ccode\x3eComponents.interfaces.nsIFile\x3c/code\x3e) calls \x3ccode\x3eobj.QueryInterface(\x3cem\x3expcomInterface\x3c/em\x3e)\x3c/code\x3e and returns \x3ccode\x3etrue\x3c/code\x3e if QueryInterface succeeded. A side effect of such call is that you can use \x3cem\x3e\x3ccode\x3expcomInterface\x3c/code\x3e\x3c/em\x3e\'s properties on \x3ccode\x3eobj\x3c/code\x3e after a successful \x3ccode\x3einstanceof\x3c/code\x3e test.\x3c/p\x3e\n\x3cp\x3eUnlike standard JavaScript globals, the test \x3ccode\x3eobj instanceof xpcomInterface \x3c/code\x3eworks as expected even if \x3ccode\x3eobj\x3c/code\x3e is from a different scope.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "instanceof_and_multiple_context_(e.g._frames_or_windows)"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3einstanceof\x3c/code\x3e and multiple context (e.g. frames or windows)\x3c/h3\x3e\n\x3cp\x3eDifferent scope have different execution environments. This means that they have different built-ins (different global object, different constructors, etc.). This may result in unexpected results. For instance, if \x3ccode\x3eArray2\x3c/code\x3e is the \x3ccode\x3eArray\x3c/code\x3e constructor of another context, \x3ccode\x3e[] instanceof Array2\x3c/code\x3e will return \x3ccode\x3efalse\x3c/code\x3e, because \x3ccode\x3eArray.prototype !\x3d\x3d Array2.prototype\x3c/code\x3e and arrays inherit from the former.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Mozilla_developers"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMozilla developers\x3c/h3\x3e\n\x3cp\x3eIn code using XPCOM \x3ccode\x3einstanceof\x3c/code\x3e has special effect: \x3ccode\x3eobj instanceof \x3c/code\x3e\x3cem\x3e\x3ccode\x3expcomInterface\x3c/code\x3e\x3c/em\x3e (e.g. \x3ccode\x3eComponents.interfaces.nsIFile\x3c/code\x3e) calls \x3ccode\x3eobj.QueryInterface(\x3cem\x3expcomInterface\x3c/em\x3e)\x3c/code\x3e and returns \x3ccode\x3etrue\x3c/code\x3e if QueryInterface succeeded. A side effect of such call is that you can use \x3cem\x3e\x3ccode\x3expcomInterface\x3c/code\x3e\x3c/em\x3e\'s properties on \x3ccode\x3eobj\x3c/code\x3e after a successful \x3ccode\x3einstanceof\x3c/code\x3e test.\x3c/p\x3e\n\x3cp\x3eUnlike standard JavaScript globals, the test \x3ccode\x3eobj instanceof xpcomInterface \x3c/code\x3eworks as expected even if \x3ccode\x3eobj\x3c/code\x3e is from a different scope.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cp\x3eAlso see the examples for \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/throw" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/throw"\x3ethrow\x3c/a\x3e.\x3c/p\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Determining_whether_theDay_is_a_Date_object"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Determining whether \x3ccode\x3etheDay\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object\x3c/h3\x3e\n\x3cp\x3eThe following code uses \x3ccode\x3einstanceof\x3c/code\x3e to determine whether \x3ccode\x3etheDay\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object. Because \x3ccode\x3etheDay\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object, the statements in the if statement execute.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar theDay \x3d new Date(1995, 11, 17); // Dec. 17, 1995\nif (theDay instanceof Date)\n{\n  print(\x26quot;theDay is a Date object\x26quot;);\n  // whatever else...\n} \n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Demonstrating_that_String_and_Date_are_of_type_Object"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Demonstrating that \x3ccode\x3eString\x3c/code\x3e and \x3ccode\x3eDate\x3c/code\x3e are of type \x3ccode\x3eObject\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following code uses \x3ccode\x3einstanceof\x3c/code\x3e to demonstrate that \x3ccode\x3eString\x3c/code\x3e and \x3ccode\x3eDate\x3c/code\x3e objects are also of type \x3ccode\x3eObject\x3c/code\x3e (they are derived from \x3ccode\x3eObject\x3c/code\x3e).\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar myString \x3d new String();\nvar myDate \x3d new Date();\n\nmyString instanceof String; // returns true\nmyString instanceof Object; // returns true\nmyString instanceof Date;   // returns false\n\nmyDate instanceof Date;     // returns true\nmyDate instanceof Object;   // returns true\nmyDate instanceof String;   // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example:_Demonstrating_that_mycar_is_of_type_Car_and_type_Object"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Demonstrating that \x3ccode\x3emycar\x3c/code\x3e is of type \x3ccode\x3eCar\x3c/code\x3e and type \x3ccode\x3eObject\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following code creates an object type \x3ccode\x3eCar\x3c/code\x3e and an instance of that object type, \x3ccode\x3emycar\x3c/code\x3e. The \x3ccode\x3einstanceof\x3c/code\x3e operator demonstrates that the \x3ccode\x3emycar\x3c/code\x3e object is of type \x3ccode\x3eCar\x3c/code\x3e and of type \x3ccode\x3eObject\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Car(make, model, year)\n{\n  this.make \x3d make;\n  this.model \x3d model;\n  this.year \x3d year;\n}\nvar mycar \x3d new Car(\x26quot;Honda\x26quot;, \x26quot;Accord\x26quot;, 1998);\nvar a \x3d mycar instanceof Car;    // returns true\nvar b \x3d mycar instanceof Object; // returns true\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Determining_whether_theDay_is_a_Date_object"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Determining whether \x3ccode\x3etheDay\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object\x3c/h3\x3e\n\x3cp\x3eThe following code uses \x3ccode\x3einstanceof\x3c/code\x3e to determine whether \x3ccode\x3etheDay\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object. Because \x3ccode\x3etheDay\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object, the statements in the if statement execute.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar theDay \x3d new Date(1995, 11, 17); // Dec. 17, 1995\nif (theDay instanceof Date)\n{\n  print(\x26quot;theDay is a Date object\x26quot;);\n  // whatever else...\n} \n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Demonstrating_that_String_and_Date_are_of_type_Object"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Demonstrating that \x3ccode\x3eString\x3c/code\x3e and \x3ccode\x3eDate\x3c/code\x3e are of type \x3ccode\x3eObject\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following code uses \x3ccode\x3einstanceof\x3c/code\x3e to demonstrate that \x3ccode\x3eString\x3c/code\x3e and \x3ccode\x3eDate\x3c/code\x3e objects are also of type \x3ccode\x3eObject\x3c/code\x3e (they are derived from \x3ccode\x3eObject\x3c/code\x3e).\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar myString \x3d new String();\nvar myDate \x3d new Date();\n\nmyString instanceof String; // returns true\nmyString instanceof Object; // returns true\nmyString instanceof Date;   // returns false\n\nmyDate instanceof Date;     // returns true\nmyDate instanceof Object;   // returns true\nmyDate instanceof String;   // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example:_Demonstrating_that_mycar_is_of_type_Car_and_type_Object"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Demonstrating that \x3ccode\x3emycar\x3c/code\x3e is of type \x3ccode\x3eCar\x3c/code\x3e and type \x3ccode\x3eObject\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following code creates an object type \x3ccode\x3eCar\x3c/code\x3e and an instance of that object type, \x3ccode\x3emycar\x3c/code\x3e. The \x3ccode\x3einstanceof\x3c/code\x3e operator demonstrates that the \x3ccode\x3emycar\x3c/code\x3e object is of type \x3ccode\x3eCar\x3c/code\x3e and of type \x3ccode\x3eObject\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Car(make, model, year)\n{\n  this.make \x3d make;\n  this.model \x3d model;\n  this.year \x3d year;\n}\nvar mycar \x3d new Car(\x26quot;Honda\x26quot;, \x26quot;Accord\x26quot;, 1998);\nvar a \x3d mycar instanceof Car;    // returns true\nvar b \x3d mycar instanceof Object; // returns true\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","instanceof and multiple context (e.g. frames or windows)","Mozilla developers","Examples","Example: Determining whether theDay is a Date object","Example: Demonstrating that String and Date are of type Object","Example: Demonstrating that mycar is of type Car and type Object"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/set","title":"set","_id":"4eea8444a4c86c4dba000047","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eBinds an object property to a function to be called when there is an attempt to set that property.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e{set \x3cem\x3eprop\x3c/em\x3e(\x3cem\x3eval\x3c/em\x3e) { .\x26nbsp;.\x26nbsp;. }}\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ethe name of the property to bind to the given function\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eval\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ean alias for the variable that holds the value attempted to be assigned to \x3ccode\x3eprop\x3c/code\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eIn JavaScript, a setter can be used to execute a function whenever a specified property is attempted to be changed. Setters are most often used in conjunction with getters to create a type of pseudo-property. It is not possible to simultaneously have a setter on a property that holds an actual value.\x3c/p\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 0px none ; margin: 10px 0px; padding: 0px 10px; background-color: rgb(254, 244, 156); text-align: center;"\x3e\x3cp style \x3d "margin: 4px 0px; font-weight: bold;"\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e note\x3c/p\x3e\x3cp style \x3d "margin: 4px 0px;"\x3eStarting in JavaScript 1.8.1, setters are no longer called when setting properties in object and array initializers.\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\n\x3cdiv style \x3d "border: 0px none ; margin: 10px 0px; padding: 0px 10px; background-color: rgb(254, 244, 156); text-align: center;"\x3e\x3cp style \x3d "margin: 4px 0px; font-weight: bold;"\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e note\x3c/p\x3e\x3cp style \x3d "margin: 4px 0px;"\x3e\x3cp style \x3d "text-align: left;"\x3eStarting in JavaScript 1.8.5, \x3ccode\x3eset\x3c/code\x3e operator:\x3c/p\x3e\n  \x3cul style \x3d "text-align: left;"\x3e\n    \x3cli\x3ecan have an identifier which is either a number or a string;\x3c/li\x3e\n    \x3cli\x3emust have exactly one parameter (see \n      \x3ca href \x3d "http://whereswalden.com/2010/08/22/incompatible-es5-change-literal-getter-and-setter-functions-must-now-have-exactly-zero-or-one-arguments/" class \x3d "external" rel \x3d "external nofollow" target \x3d "_blank"\x3eIncompatible \x3cabbr title \x3d "ECMAScript 5th edition"\x3eES5\x3c/abbr\x3e change: literal getter and setter functions must now have exactly zero or one arguments\x3c/a\x3e\n      for more information);\x3c/li\x3e\n    \x3cli\x3emust not appear in an object literal with another \x3ccode\x3eset\x3c/code\x3e\n      or with a data entry for the same property (\x3ccode\x3e{ set x(v) { }, set x(v) { } }\x3c/code\x3e\n      and \x3ccode\x3e{ x: ..., set x(v) { } }\x3c/code\x3e are forbidden).\x3c/li\x3e\n  \x3c/ul\x3e\x3c/p\x3e\x3c/div\x3e\n\x3cp\x3eA setter can be removed using the \x3ca title \x3d "en/JavaScript/Reference/Operators/Special/delete" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete"\x3e\x3ccode\x3edelete\x3c/code\x3e\x3c/a\x3e operator.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Defining_a_setter_with_the_set_operator"\x3e\x3c/span\x3e\x3cspan id \x3d "Defining_a_setter_with_the_set_operator"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDefining a setter with the \x3ccode\x3eset\x3c/code\x3e operator\x3c/h3\x3e\n\x3cp\x3eThis will define a pseudo-property \x3ccode\x3ecurrent\x3c/code\x3e of object \x3ccode\x3eo\x3c/code\x3e that, when assigned a value, will update \x3ccode\x3elog\x3c/code\x3e with that value:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {\n  set current (str) {\n    return this.log[this.log.length] \x3d str;\n  },\n  log: []\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that \x3ccode\x3ecurrent\x3c/code\x3e is not defined and any attempts to access it will result in \x3ccode\x3eundefined\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Removing_a_setter_with_the_delete_operator"\x3e\x3c/span\x3e\x3cspan id \x3d "Removing_a_setter_with_the_delete_operator"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eRemoving a setter with the \x3ccode\x3edelete\x3c/code\x3e operator\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3edelete o.current;\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Defining_a_setter_with_the_set_operator"\x3e\x3c/span\x3e\x3cspan id \x3d "Defining_a_setter_with_the_set_operator"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDefining a setter with the \x3ccode\x3eset\x3c/code\x3e operator\x3c/h3\x3e\n\x3cp\x3eThis will define a pseudo-property \x3ccode\x3ecurrent\x3c/code\x3e of object \x3ccode\x3eo\x3c/code\x3e that, when assigned a value, will update \x3ccode\x3elog\x3c/code\x3e with that value:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {\n  set current (str) {\n    return this.log[this.log.length] \x3d str;\n  },\n  log: []\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that \x3ccode\x3ecurrent\x3c/code\x3e is not defined and any attempts to access it will result in \x3ccode\x3eundefined\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Removing_a_setter_with_the_delete_operator"\x3e\x3c/span\x3e\x3cspan id \x3d "Removing_a_setter_with_the_delete_operator"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eRemoving a setter with the \x3ccode\x3edelete\x3c/code\x3e operator\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3edelete o.current;\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://robertnyman.com/javascript/javascript-getters-setters.html#regular-getters-and-setters" title \x3d "http://robertnyman.com/javascript/javascript-getters-setters.html#regular-getters-and-setters" target \x3d "_blank"\x3eRobert Nyman\'s page\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3eNo support (notably in IE6-8) means that the script will trigger a syntax error.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e2.0 (1.8.1)\n\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e9.5\x3c/td\x3e \x3ctd\x3e3\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/delete_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete"\x3edelete\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/get_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/get"\x3eget\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Guide/Working with Objects#Defining Getters and Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects#Defining_Getters_and_Setters"\x3eDefining Getters and Setters\x3c/a\x3e in JavaScript Guide\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Defining a setter with the set operator","Removing a setter with the delete operator","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/new","title":"new","_id":"4eea8445a4c86c4dba000048","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3enew\x3c/code\x3e operator creates an instance of a user-defined object type or of one of the built-in object types that has a constructor function.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eOperator\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3enew \x3cem\x3econstructor\x3c/em\x3e[([\x3cem\x3earguments\x3c/em\x3e])]\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA function that specifies the type of the object instance.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earguments\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA list of values that the \x3ccode\x3econstructor\x3c/code\x3e will be called with.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eCreating a user-defined object requires two steps:\x3c/p\x3e\n\x3col\x3e \x3cli\x3eDefine the object type by writing a function.\x3c/li\x3e \x3cli\x3eCreate an instance of the object with \x3ccode\x3enew\x3c/code\x3e.\x3c/li\x3e\n\x3c/ol\x3e\n\x3cp\x3eTo define an object type, create a function for the object type that specifies its name and properties. An object can have a property that is itself another object. See the examples below.\x3c/p\x3e\n\x3cp\x3eWhen the code \x3ccode\x3enew \x3cem\x3efoo\x3c/em\x3e(...)\x3c/code\x3e is executed, the following things happen:\x3c/p\x3e\n\x3col\x3e \x3cli\x3eA new object is created, inheriting from \x3ccode\x3e\x3cem\x3efoo\x3c/em\x3e.prototype\x3c/code\x3e.\x3c/li\x3e \x3cli\x3eThe constructor function \x3ccode\x3e\x3cem\x3efoo\x3c/em\x3e\x3c/code\x3e is called with the specified arguments and \x3ccode\x3e\x3ca title \x3d "this" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/this"\x3ethis\x3c/a\x3e\x3c/code\x3e bound to the newly created object. \x3ccode\x3enew \x3cem\x3efoo\x3c/em\x3e\x3c/code\x3e is equivalent to \x3ccode\x3enew \x3cem\x3efoo\x3c/em\x3e()\x3c/code\x3e, i.e. if no argument list is specified, \x3ccode\x3e\x3cem\x3efoo\x3c/em\x3e\x3c/code\x3e is called without arguments.\x3c/li\x3e \x3cli\x3eThe object returned by the constructor function becomes the result of the whole \x3ccode\x3enew\x3c/code\x3e expression. If the constructor function doesn\'t explicitly return an object, the object created in step 1 is used instead. (Normally constructors don\'t return a value, but they can choose to do so if they want to override the normal object creation process.)\x3c/li\x3e\n\x3c/ol\x3e\n\x3cp\x3eYou can always add a property to a previously defined object. For example, the statement \x3ccode\x3ecar1.color \x3d \x26quot;black\x26quot;\x3c/code\x3e adds a property color to \x3ccode\x3ecar1\x3c/code\x3e, and assigns it a value of \x26quot;\x3ccode\x3eblack\x3c/code\x3e\x26quot;. However, this does not affect any other objects. To add the new property to all objects of the same type, you must add the property to the definition of the \x3ccode\x3ecar\x3c/code\x3e object type.\x3c/p\x3e\n\x3cp\x3eYou can add a shared property to a previously defined object type by using the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eFunction.prototype\x3c/a\x3e\x3c/code\x3e property. This defines a property that is shared by all objects created with that function, rather than by just one instance of the object type. The following code adds a color property with value \x3ccode\x3enull\x3c/code\x3e to all objects of type \x3ccode\x3ecar\x3c/code\x3e, and then overwrites that value with the string \x26quot;\x3ccode\x3eblack\x3c/code\x3e\x26quot; only in the instance object \x3ccode\x3ecar1\x3c/code\x3e. For more information, see \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eprototype\x3c/a\x3e.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n function Car() {}\n car1 \x3d new Car()\n \n alert(car1.color)           // undefined\n \n Car.prototype.color \x3d null\n alert(car1.color)           // null\n \n car1.color \x3d \x26quot;black\x26quot;\n alert(car1.color)           // black\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Object_type_and_object_instance"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Object type and object instance\x3c/h4\x3e\n\x3cp\x3eSuppose you want to create an object type for cars. You want this type of object to be called \x3ccode\x3ecar\x3c/code\x3e, and you want it to have properties for make, model, and year. To do this, you would write the following function:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction car(make, model, year) {\n   this.make \x3d make;\n   this.model \x3d model;\n   this.year \x3d year;\n}\n\x3c/pre\x3e\n\x3cp\x3eNow you can create an object called \x3ccode\x3emycar\x3c/code\x3e as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar mycar \x3d new car(\x26quot;Eagle\x26quot;, \x26quot;Talon TSi\x26quot;, 1993);\n\x3c/pre\x3e\n\x3cp\x3eThis statement creates \x3ccode\x3emycar\x3c/code\x3e and assigns it the specified values for its properties. Then the value of \x3ccode\x3emycar.make\x3c/code\x3e is the string \x26quot;Eagle\x26quot;, \x3ccode\x3emycar.year\x3c/code\x3e is the integer 1993, and so on.\x3c/p\x3e\n\x3cp\x3eYou can create any number of \x3ccode\x3ecar\x3c/code\x3e objects by calls to \x3ccode\x3enew\x3c/code\x3e. For example:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar kenscar \x3d new car(\x26quot;Nissan\x26quot;, \x26quot;300ZX\x26quot;, 1992);\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Object_property_that_is_itself_another_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Object property that is itself another object\x3c/h4\x3e\n\x3cp\x3eSuppose you define an object called \x3ccode\x3eperson\x3c/code\x3e as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction person(name, age, sex) {\n   this.name \x3d name;\n   this.age \x3d age;\n   this.sex \x3d sex;\n}\n\x3c/pre\x3e\n\x3cp\x3eAnd then instantiate two new \x3ccode\x3eperson\x3c/code\x3e objects as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar rand \x3d new person(\x26quot;Rand McNally\x26quot;, 33, \x26quot;M\x26quot;);\nvar ken \x3d new person(\x26quot;Ken Jones\x26quot;, 39, \x26quot;M\x26quot;);\n\x3c/pre\x3e\n\x3cp\x3eThen you can rewrite the definition of \x3ccode\x3ecar\x3c/code\x3e to include an \x3ccode\x3eowner\x3c/code\x3e property that takes a person object, as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction car(make, model, year, owner) {\n   this.make \x3d make;\n   this.model \x3d model;\n   this.year \x3d year;\n   this.owner \x3d owner;\n}\n\x3c/pre\x3e\n\x3cp\x3eTo instantiate the new objects, you then use the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar car1 \x3d new car(\x26quot;Eagle\x26quot;, \x26quot;Talon TSi\x26quot;, 1993, rand);\nvar car2 \x3d new car(\x26quot;Nissan\x26quot;, \x26quot;300ZX\x26quot;, 1992, ken);\n\x3c/pre\x3e\n\x3cp\x3eInstead of passing a literal string or integer value when creating the new objects, the above statements pass the objects \x3ccode\x3erand\x3c/code\x3e and \x3ccode\x3eken\x3c/code\x3e as the parameters for the owners. To find out the name of the owner of \x3ccode\x3ecar2\x3c/code\x3e, you can access the following property:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ncar2.owner\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Object_type_and_object_instance"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Object type and object instance\x3c/h4\x3e\n\x3cp\x3eSuppose you want to create an object type for cars. You want this type of object to be called \x3ccode\x3ecar\x3c/code\x3e, and you want it to have properties for make, model, and year. To do this, you would write the following function:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction car(make, model, year) {\n   this.make \x3d make;\n   this.model \x3d model;\n   this.year \x3d year;\n}\n\x3c/pre\x3e\n\x3cp\x3eNow you can create an object called \x3ccode\x3emycar\x3c/code\x3e as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar mycar \x3d new car(\x26quot;Eagle\x26quot;, \x26quot;Talon TSi\x26quot;, 1993);\n\x3c/pre\x3e\n\x3cp\x3eThis statement creates \x3ccode\x3emycar\x3c/code\x3e and assigns it the specified values for its properties. Then the value of \x3ccode\x3emycar.make\x3c/code\x3e is the string \x26quot;Eagle\x26quot;, \x3ccode\x3emycar.year\x3c/code\x3e is the integer 1993, and so on.\x3c/p\x3e\n\x3cp\x3eYou can create any number of \x3ccode\x3ecar\x3c/code\x3e objects by calls to \x3ccode\x3enew\x3c/code\x3e. For example:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar kenscar \x3d new car(\x26quot;Nissan\x26quot;, \x26quot;300ZX\x26quot;, 1992);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Object_property_that_is_itself_another_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Object property that is itself another object\x3c/h4\x3e\n\x3cp\x3eSuppose you define an object called \x3ccode\x3eperson\x3c/code\x3e as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction person(name, age, sex) {\n   this.name \x3d name;\n   this.age \x3d age;\n   this.sex \x3d sex;\n}\n\x3c/pre\x3e\n\x3cp\x3eAnd then instantiate two new \x3ccode\x3eperson\x3c/code\x3e objects as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar rand \x3d new person(\x26quot;Rand McNally\x26quot;, 33, \x26quot;M\x26quot;);\nvar ken \x3d new person(\x26quot;Ken Jones\x26quot;, 39, \x26quot;M\x26quot;);\n\x3c/pre\x3e\n\x3cp\x3eThen you can rewrite the definition of \x3ccode\x3ecar\x3c/code\x3e to include an \x3ccode\x3eowner\x3c/code\x3e property that takes a person object, as follows:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction car(make, model, year, owner) {\n   this.make \x3d make;\n   this.model \x3d model;\n   this.year \x3d year;\n   this.owner \x3d owner;\n}\n\x3c/pre\x3e\n\x3cp\x3eTo instantiate the new objects, you then use the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar car1 \x3d new car(\x26quot;Eagle\x26quot;, \x26quot;Talon TSi\x26quot;, 1993, rand);\nvar car2 \x3d new car(\x26quot;Nissan\x26quot;, \x26quot;300ZX\x26quot;, 1992, ken);\n\x3c/pre\x3e\n\x3cp\x3eInstead of passing a literal string or integer value when creating the new objects, the above statements pass the objects \x3ccode\x3erand\x3c/code\x3e and \x3ccode\x3eken\x3c/code\x3e as the parameters for the owners. To find out the name of the owner of \x3ccode\x3ecar2\x3c/code\x3e, you can access the following property:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ncar2.owner\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Object type and object instance","Example: Object property that is itself another object"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/this","title":"this","_id":"4eea8446a4c86c4dba000049","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Introduction"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eIntroduction\x3c/h2\x3e\n\x3cp\x3eA function\'s \x3ccode\x3ethis\x3c/code\x3e keyword behaves a little differently in JavaScript compared to other languages. It also has some differences between \x3ca title \x3d "en/JavaScript/Strict mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Strict_mode"\x3estrict mode\x3c/a\x3e and non-strict mode.\x3c/p\x3e\n\x3cp\x3eIn general, the object bound to \x3ccode\x3ethis\x3c/code\x3e in the current scope is determined by how the current function was called, it can\'t be set by assignment during execution, and it can be different each time the function is called. ES5 introduced the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/bind" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind"\x3ebind\x3c/a\x3e\x3c/code\x3e method to \x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/this#Bound_functions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/this#Bound_functions"\x3efix a function\'s \x3ccode\x3ethis\x3c/code\x3e regardless of how it\'s called\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Global_context"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eGlobal context\x3c/h2\x3e\n\x3cp\x3eIn the global context (outside of any function), \x3ccode\x3ethis\x3c/code\x3e refers to the global object, whether in strict mode or not.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e0 \x26\x26 console.log(this.document \x3d\x3d\x3d document); // true\n\n// In web browsers, the window object is also the global object:\n0 \x26\x26 console.log(this \x3d\x3d\x3d window); // true\n\nthis.a \x3d 37;\n0 \x26\x26 console.log(window.a); // 37\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Function_context"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eFunction context\x3c/h2\x3e\n\x3cp\x3eWhen the \x3ccode\x3ethis\x3c/code\x3e keyword occurs inside a function, its value depends on how the function is called.\x3c/p\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Simple_call"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSimple call\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction f1(){\n  return this;\n}\n\nf1() \x3d\x3d\x3d window; // global object\n\n\nfunction f2(){\n  \x26quot;use strict\x26quot;; // see strict mode\n  return this;\n}\n\nf2() \x3d\x3d\x3d undefined;\x3c/pre\x3e\r\n        \n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In the second example, \x3ccode\x3ethis\x3c/code\x3e should be \x3ca title \x3d "undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3e\x3ccode\x3eundefined\x3c/code\x3e\x3c/a\x3e, because \x3ccode\x3ef2\x3c/code\x3e was called without providing any base (e.g. \x3ccode\x3ewindow.f2()\x3c/code\x3e). This feature wasn\'t implemented in some browsers when they first started to support \x3ca title \x3d "Strict mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Strict_mode"\x3estrict mode\x3c/a\x3e; because of this, they incorrectly returned the \x3ccode\x3ewindow\x3c/code\x3e object.\x3c/div\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "As_an_object_method"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAs an object method\x3c/h3\x3e\n\x3cp\x3eWhen a function is called as a method of an object, its \x3ccode\x3ethis\x3c/code\x3e is set to the object the method is called on.\x3c/p\x3e\n\x3cp\x3eIn the following example, when \x3ccode\x3eo.f()\x3c/code\x3e is invoked, inside the function \x3ccode\x3ethis\x3c/code\x3e is bound to the \x3ccode\x3eo\x3c/code\x3e object.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {\n  prop: 37,\n  f: function() {\n    return this.prop;\n  }\n};\n\n0 \x26\x26 console.log(o.f()); // logs 37\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that this behavior is not at all affected by how or where the function was defined. In the previous example, we defined the function inline as the \x3ccode\x3ef\x3c/code\x3e member during the definition of \x3ccode\x3eo\x3c/code\x3e.\x26nbsp; However, we could have just as easily defined the function first and later attached it to \x3ccode\x3eo.f\x3c/code\x3e. Doing so results in the same behavior:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {prop: 37};\n\nfunction independent() {\n  return this.prop;\n}\n\no.f \x3d independent;\n\n0 \x26\x26 console.log(o.f()); // logs 37\x3c/pre\x3e\r\n        \n\x3cp\x3eThis demonstrates that it matters only that the function was invoked from the \x3ccode\x3ef\x3c/code\x3e member of \x3ccode\x3eo\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eSimilarly, the \x3ccode\x3ethis\x3c/code\x3e binding is only affected by the most immediate member reference. In the following example, when we invoke the function, we call it as a method \x3ccode\x3eg\x3c/code\x3e of the object \x3ccode\x3eo.b\x3c/code\x3e. This time during execution, \x3ccode\x3ethis\x3c/code\x3e inside the function will refer to \x3ccode\x3eo.b\x3c/code\x3e. The fact that the object is itself a member of \x3ccode\x3eo\x3c/code\x3e has no consequence; the most immediate reference is all that matters.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo.b \x3d {g: independent, prop: 42};\n0 \x26\x26 console.log(o.b.g()); // logs 42\x3c/pre\x3e\r\n        \n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "..._on_the_prototype_chain"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e... on the prototype chain\x3c/h4\x3e\n\x3cp\x3eThe same notion holds true for methods defined somewhere on the object\'s prototype chain. If the method is on an object\'s prototype chain, \x3ccode\x3ethis\x3c/code\x3e refers to the object the method was called on, as if the method was on the object.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {f:function(){ return this.a + this.b; }};\nvar p \x3d Object.create(o);\np.a \x3d 1;\np.b \x3d 4;\n\n0 \x26\x26 console.log(p.f()); // 5\x3c/pre\x3e\r\n        \n\x3cp\x3eIn this example, the object assigned to the variable \x3ccode\x3ep\x3c/code\x3e doesn\'t have its own \x3ccode\x3ef\x3c/code\x3e property, it inherits it from its \x3ca title \x3d "Prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/Prototype" class \x3d "new "\x3eprototype\x3c/a\x3e. But it doesn\'t matter that the lookup for \x3ccode\x3ef\x3c/code\x3e eventually finds a member with that name on \x3ccode\x3eo\x3c/code\x3e; the lookup began as a reference to \x3ccode\x3ep.f\x3c/code\x3e, so \x3ccode\x3ethis\x3c/code\x3e inside the function takes the value of the object referred to as \x3ccode\x3ep\x3c/code\x3e. That is, since \x3ccode\x3ef\x3c/code\x3e is called as a method of \x3ccode\x3ep\x3c/code\x3e, its \x3ccode\x3ethis\x3c/code\x3e refers to \x3ccode\x3ep\x3c/code\x3e. This is an interesting feature of JavaScript\'s prototype inheritance.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "..._or_as_a_getter_or_setter"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e... or as a getter or setter\x3c/h4\x3e\n\x3cp\x3eAgain, the same notion holds true when a function is invoked from a getter or a setter. A function used as getter or setter has its \x3ccode\x3ethis\x3c/code\x3e bound to the object from which the property is being set or gotten.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction modulus(){\n  return Math.sqrt(this.re * this.re + this.im * this.im);\n}\n\nvar o \x3d {\n  re: 1,\n  im: -1,\n  get phase(){\n    return Math.atan2(this.im, this.re);\n  }\n};\n\nObject.defineProperty(o, \'modulus\', {get: modulus, enumerable:true, configurable:true});\n\n0 \x26\x26 console.log(o.phase, o.modulus); // logs -0.78 1.4142\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "As_a_constructor"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAs a constructor\x3c/h3\x3e\n\x3cp\x3eWhen a function is used as a constructor (with the \x3ccode\x3e\x3ca title \x3d "new" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/new"\x3enew\x3c/a\x3e\x3c/code\x3e keyword), its \x3ccode\x3ethis\x3c/code\x3e is bound to new object being constructed, unless execution of the constructor results in the JavaScript engine encountering a return statement where the value to be returned is an object.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e/*\n * Constructors work like this:\n *\n * function MyConstructor(){\n *   // Actual function body code goes here.  Create properties on |this| as\n *   // desired by assigning to them.  E.g.,\n *   this.fum \x3d \x26quot;nom\x26quot;;\n *   // et cetera...\n *\n *   // If the function has a return statement that returns an object, that\n *   // object will be the result of the |new| expression.  Otherwise, the\n *   // result of the expression is the object currently bound to |this|\n *   // (i.e., the common case most usually seen).\n * }\n */\n\nfunction C(){\n  this.a \x3d 37;\n}\n\nvar o \x3d new C();\n0 \x26\x26 console.log(o.a); // logs 37\n\n\nfunction C2(){\n  this.a \x3d 37;\n  return {a:38};\n}\n\no \x3d new C2();\n0 \x26\x26 console.log(o.a); // logs 38\x3c/pre\x3e\r\n        \n\x3cp\x3eIn the last example (\x3ccode\x3eC2\x3c/code\x3e), because an object was returned during construction, the new object that \x3ccode\x3ethis\x3c/code\x3e was bound to simply gets discarded. (This essentially makes the statement \x26quot;\x3ccode\x3ethis.a \x3d 37;\x3c/code\x3e\x26quot; dead code. It\'s not exactly dead, because it gets executed, but it can be eliminated with no outside effects.)\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "call_and_apply"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3ecall\x3c/code\x3e and \x3ccode\x3eapply\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eWhere a function uses the \x3ccode\x3ethis\x3c/code\x3e keyword in its body, its value can be bound to a particular object during execution using the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e\x3c/code\x3e or \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply\x3c/a\x3e\x3c/code\x3e methods that all functions inherit from \x3ccode\x3eFunction.prototype\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction add(c, d){\n  return this.a + this.b + c + d;\n}\n\nvar o \x3d {a:1, b:3};\n\n// The first parameter is the object to use as \'this\', subsequent parameters are passed as \n// arguments in the function call\nadd.call(o, 5, 7); // 1 + 3 + 5 + 7 \x3d 16\n\n// The first parameter is the object to use as \'this\', the second is an array whose\n// members are used as the arguments in the function call\nadd.apply(o, [10, 20]); // 1 + 3 + 10 + 20 \x3d 34\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Bound_functions"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBound functions\x3c/h3\x3e\n\x3cp\x3eECMAScript 5 introduced \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function/bind" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind"\x3eFunction.prototype.bind\x3c/a\x3e\x3c/code\x3e. Calling \x3ccode\x3ef.bind(someObject)\x3c/code\x3e creates a new function with the same body and scope as \x3ccode\x3ef\x3c/code\x3e, but where \x3ccode\x3ethis\x3c/code\x3e occurs in the original function, in the new function it is permanently bound to the first argument of \x3ccode\x3ebind\x3c/code\x3e, regardless of how the function is being used.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction f(){\n  return this.a;\n}\n\nvar g \x3d f.bind({a:\x26quot;azerty\x26quot;});\n0 \x26\x26 console.log(g()); // azerty\n\nvar o \x3d {a:37, f:f, g:g};\n0 \x26\x26 console.log(o.f(), o.g()); // 37, azerty\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "As_a_DOM_event_handler"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAs a DOM event handler\x3c/h3\x3e\n\x3cp\x3eWhen a function is used as an event handler, its \x3ccode\x3ethis\x3c/code\x3e is set to the element the event fired from (some browsers do not follow this convention for listeners added dynamically with methods other than \x3ccode\x3eaddEventListener\x3c/code\x3e).\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// When called as a listener, turns the related element blue\nfunction bluify(e){\n  0 \x26\x26 console.log(this \x3d\x3d\x3d e.currentTarget); // Always true\n  0 \x26\x26 console.log(this \x3d\x3d\x3d e.target);        // true when currentTarget and target are the same object\n  this.style.backgroundColor \x3d \'#A5D9F3\';\n}\n\n// Get a list of every element in the document\nvar elements \x3d document.getElementsByTagName(\'*\');\n\n// Add bluify as a click listener so when the element is clicked on,\n// it turns blue\nfor(var i\x3d0 ; i\x26lt;elements.length ; i++){\n  elements[i].addEventListener(\'click\', bluify, false);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Simple_call"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSimple call\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction f1(){\n  return this;\n}\n\nf1() \x3d\x3d\x3d window; // global object\n\n\nfunction f2(){\n  \x26quot;use strict\x26quot;; // see strict mode\n  return this;\n}\n\nf2() \x3d\x3d\x3d undefined;\x3c/pre\x3e\r\n        \n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e In the second example, \x3ccode\x3ethis\x3c/code\x3e should be \x3ca title \x3d "undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3e\x3ccode\x3eundefined\x3c/code\x3e\x3c/a\x3e, because \x3ccode\x3ef2\x3c/code\x3e was called without providing any base (e.g. \x3ccode\x3ewindow.f2()\x3c/code\x3e). This feature wasn\'t implemented in some browsers when they first started to support \x3ca title \x3d "Strict mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Strict_mode"\x3estrict mode\x3c/a\x3e; because of this, they incorrectly returned the \x3ccode\x3ewindow\x3c/code\x3e object.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "As_an_object_method"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAs an object method\x3c/h3\x3e\n\x3cp\x3eWhen a function is called as a method of an object, its \x3ccode\x3ethis\x3c/code\x3e is set to the object the method is called on.\x3c/p\x3e\n\x3cp\x3eIn the following example, when \x3ccode\x3eo.f()\x3c/code\x3e is invoked, inside the function \x3ccode\x3ethis\x3c/code\x3e is bound to the \x3ccode\x3eo\x3c/code\x3e object.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {\n  prop: 37,\n  f: function() {\n    return this.prop;\n  }\n};\n\n0 \x26\x26 console.log(o.f()); // logs 37\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that this behavior is not at all affected by how or where the function was defined. In the previous example, we defined the function inline as the \x3ccode\x3ef\x3c/code\x3e member during the definition of \x3ccode\x3eo\x3c/code\x3e.\x26nbsp; However, we could have just as easily defined the function first and later attached it to \x3ccode\x3eo.f\x3c/code\x3e. Doing so results in the same behavior:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {prop: 37};\n\nfunction independent() {\n  return this.prop;\n}\n\no.f \x3d independent;\n\n0 \x26\x26 console.log(o.f()); // logs 37\x3c/pre\x3e\r\n        \n\x3cp\x3eThis demonstrates that it matters only that the function was invoked from the \x3ccode\x3ef\x3c/code\x3e member of \x3ccode\x3eo\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eSimilarly, the \x3ccode\x3ethis\x3c/code\x3e binding is only affected by the most immediate member reference. In the following example, when we invoke the function, we call it as a method \x3ccode\x3eg\x3c/code\x3e of the object \x3ccode\x3eo.b\x3c/code\x3e. This time during execution, \x3ccode\x3ethis\x3c/code\x3e inside the function will refer to \x3ccode\x3eo.b\x3c/code\x3e. The fact that the object is itself a member of \x3ccode\x3eo\x3c/code\x3e has no consequence; the most immediate reference is all that matters.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo.b \x3d {g: independent, prop: 42};\n0 \x26\x26 console.log(o.b.g()); // logs 42\x3c/pre\x3e\r\n        \n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "..._on_the_prototype_chain"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e... on the prototype chain\x3c/h4\x3e\n\x3cp\x3eThe same notion holds true for methods defined somewhere on the object\'s prototype chain. If the method is on an object\'s prototype chain, \x3ccode\x3ethis\x3c/code\x3e refers to the object the method was called on, as if the method was on the object.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {f:function(){ return this.a + this.b; }};\nvar p \x3d Object.create(o);\np.a \x3d 1;\np.b \x3d 4;\n\n0 \x26\x26 console.log(p.f()); // 5\x3c/pre\x3e\r\n        \n\x3cp\x3eIn this example, the object assigned to the variable \x3ccode\x3ep\x3c/code\x3e doesn\'t have its own \x3ccode\x3ef\x3c/code\x3e property, it inherits it from its \x3ca title \x3d "Prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/Prototype" class \x3d "new "\x3eprototype\x3c/a\x3e. But it doesn\'t matter that the lookup for \x3ccode\x3ef\x3c/code\x3e eventually finds a member with that name on \x3ccode\x3eo\x3c/code\x3e; the lookup began as a reference to \x3ccode\x3ep.f\x3c/code\x3e, so \x3ccode\x3ethis\x3c/code\x3e inside the function takes the value of the object referred to as \x3ccode\x3ep\x3c/code\x3e. That is, since \x3ccode\x3ef\x3c/code\x3e is called as a method of \x3ccode\x3ep\x3c/code\x3e, its \x3ccode\x3ethis\x3c/code\x3e refers to \x3ccode\x3ep\x3c/code\x3e. This is an interesting feature of JavaScript\'s prototype inheritance.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "..._or_as_a_getter_or_setter"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e... or as a getter or setter\x3c/h4\x3e\n\x3cp\x3eAgain, the same notion holds true when a function is invoked from a getter or a setter. A function used as getter or setter has its \x3ccode\x3ethis\x3c/code\x3e bound to the object from which the property is being set or gotten.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction modulus(){\n  return Math.sqrt(this.re * this.re + this.im * this.im);\n}\n\nvar o \x3d {\n  re: 1,\n  im: -1,\n  get phase(){\n    return Math.atan2(this.im, this.re);\n  }\n};\n\nObject.defineProperty(o, \'modulus\', {get: modulus, enumerable:true, configurable:true});\n\n0 \x26\x26 console.log(o.phase, o.modulus); // logs -0.78 1.4142\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "..._on_the_prototype_chain"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e... on the prototype chain\x3c/h4\x3e\n\x3cp\x3eThe same notion holds true for methods defined somewhere on the object\'s prototype chain. If the method is on an object\'s prototype chain, \x3ccode\x3ethis\x3c/code\x3e refers to the object the method was called on, as if the method was on the object.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {f:function(){ return this.a + this.b; }};\nvar p \x3d Object.create(o);\np.a \x3d 1;\np.b \x3d 4;\n\n0 \x26\x26 console.log(p.f()); // 5\x3c/pre\x3e\r\n        \n\x3cp\x3eIn this example, the object assigned to the variable \x3ccode\x3ep\x3c/code\x3e doesn\'t have its own \x3ccode\x3ef\x3c/code\x3e property, it inherits it from its \x3ca title \x3d "Prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/Prototype" class \x3d "new "\x3eprototype\x3c/a\x3e. But it doesn\'t matter that the lookup for \x3ccode\x3ef\x3c/code\x3e eventually finds a member with that name on \x3ccode\x3eo\x3c/code\x3e; the lookup began as a reference to \x3ccode\x3ep.f\x3c/code\x3e, so \x3ccode\x3ethis\x3c/code\x3e inside the function takes the value of the object referred to as \x3ccode\x3ep\x3c/code\x3e. That is, since \x3ccode\x3ef\x3c/code\x3e is called as a method of \x3ccode\x3ep\x3c/code\x3e, its \x3ccode\x3ethis\x3c/code\x3e refers to \x3ccode\x3ep\x3c/code\x3e. This is an interesting feature of JavaScript\'s prototype inheritance.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "..._or_as_a_getter_or_setter"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e... or as a getter or setter\x3c/h4\x3e\n\x3cp\x3eAgain, the same notion holds true when a function is invoked from a getter or a setter. A function used as getter or setter has its \x3ccode\x3ethis\x3c/code\x3e bound to the object from which the property is being set or gotten.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction modulus(){\n  return Math.sqrt(this.re * this.re + this.im * this.im);\n}\n\nvar o \x3d {\n  re: 1,\n  im: -1,\n  get phase(){\n    return Math.atan2(this.im, this.re);\n  }\n};\n\nObject.defineProperty(o, \'modulus\', {get: modulus, enumerable:true, configurable:true});\n\n0 \x26\x26 console.log(o.phase, o.modulus); // logs -0.78 1.4142\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "As_a_constructor"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAs a constructor\x3c/h3\x3e\n\x3cp\x3eWhen a function is used as a constructor (with the \x3ccode\x3e\x3ca title \x3d "new" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/new"\x3enew\x3c/a\x3e\x3c/code\x3e keyword), its \x3ccode\x3ethis\x3c/code\x3e is bound to new object being constructed, unless execution of the constructor results in the JavaScript engine encountering a return statement where the value to be returned is an object.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e/*\n * Constructors work like this:\n *\n * function MyConstructor(){\n *   // Actual function body code goes here.  Create properties on |this| as\n *   // desired by assigning to them.  E.g.,\n *   this.fum \x3d \x26quot;nom\x26quot;;\n *   // et cetera...\n *\n *   // If the function has a return statement that returns an object, that\n *   // object will be the result of the |new| expression.  Otherwise, the\n *   // result of the expression is the object currently bound to |this|\n *   // (i.e., the common case most usually seen).\n * }\n */\n\nfunction C(){\n  this.a \x3d 37;\n}\n\nvar o \x3d new C();\n0 \x26\x26 console.log(o.a); // logs 37\n\n\nfunction C2(){\n  this.a \x3d 37;\n  return {a:38};\n}\n\no \x3d new C2();\n0 \x26\x26 console.log(o.a); // logs 38\x3c/pre\x3e\r\n        \n\x3cp\x3eIn the last example (\x3ccode\x3eC2\x3c/code\x3e), because an object was returned during construction, the new object that \x3ccode\x3ethis\x3c/code\x3e was bound to simply gets discarded. (This essentially makes the statement \x26quot;\x3ccode\x3ethis.a \x3d 37;\x3c/code\x3e\x26quot; dead code. It\'s not exactly dead, because it gets executed, but it can be eliminated with no outside effects.)\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "call_and_apply"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3ecall\x3c/code\x3e and \x3ccode\x3eapply\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eWhere a function uses the \x3ccode\x3ethis\x3c/code\x3e keyword in its body, its value can be bound to a particular object during execution using the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e\x3c/code\x3e or \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply\x3c/a\x3e\x3c/code\x3e methods that all functions inherit from \x3ccode\x3eFunction.prototype\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction add(c, d){\n  return this.a + this.b + c + d;\n}\n\nvar o \x3d {a:1, b:3};\n\n// The first parameter is the object to use as \'this\', subsequent parameters are passed as \n// arguments in the function call\nadd.call(o, 5, 7); // 1 + 3 + 5 + 7 \x3d 16\n\n// The first parameter is the object to use as \'this\', the second is an array whose\n// members are used as the arguments in the function call\nadd.apply(o, [10, 20]); // 1 + 3 + 10 + 20 \x3d 34\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Bound_functions"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBound functions\x3c/h3\x3e\n\x3cp\x3eECMAScript 5 introduced \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function/bind" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind"\x3eFunction.prototype.bind\x3c/a\x3e\x3c/code\x3e. Calling \x3ccode\x3ef.bind(someObject)\x3c/code\x3e creates a new function with the same body and scope as \x3ccode\x3ef\x3c/code\x3e, but where \x3ccode\x3ethis\x3c/code\x3e occurs in the original function, in the new function it is permanently bound to the first argument of \x3ccode\x3ebind\x3c/code\x3e, regardless of how the function is being used.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction f(){\n  return this.a;\n}\n\nvar g \x3d f.bind({a:\x26quot;azerty\x26quot;});\n0 \x26\x26 console.log(g()); // azerty\n\nvar o \x3d {a:37, f:f, g:g};\n0 \x26\x26 console.log(o.f(), o.g()); // 37, azerty\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "As_a_DOM_event_handler"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAs a DOM event handler\x3c/h3\x3e\n\x3cp\x3eWhen a function is used as an event handler, its \x3ccode\x3ethis\x3c/code\x3e is set to the element the event fired from (some browsers do not follow this convention for listeners added dynamically with methods other than \x3ccode\x3eaddEventListener\x3c/code\x3e).\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// When called as a listener, turns the related element blue\nfunction bluify(e){\n  0 \x26\x26 console.log(this \x3d\x3d\x3d e.currentTarget); // Always true\n  0 \x26\x26 console.log(this \x3d\x3d\x3d e.target);        // true when currentTarget and target are the same object\n  this.style.backgroundColor \x3d \'#A5D9F3\';\n}\n\n// Get a list of every element in the document\nvar elements \x3d document.getElementsByTagName(\'*\');\n\n// Add bluify as a click listener so when the element is clicked on,\n// it turns blue\nfor(var i\x3d0 ; i\x26lt;elements.length ; i++){\n  elements[i].addEventListener(\'click\', bluify, false);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e'],
"sectionNames":["Introduction","Global context","Function context","Simple call","As an object method","... on the prototype chain","... or as a getter or setter","As a constructor","call and apply","Bound functions","As a DOM event handler"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/typeof","title":"typeof","_id":"4eea8446a4c86c4dba00004a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3etypeof\x3c/code\x3e operator returns a string indicating the type of the unevaluated operand.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" scope \x3d "col"\x3eOperator\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262 (and ECMA-357 for E4X objects)\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3etypeof\x3c/code\x3e operator is used in either of the following ways:\x3c/p\x3e\n\x3col\x3e \x3cli\x3e\x3ccode\x3etypeof \x3cem\x3eoperand\x3c/em\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3etypeof (\x3cem\x3eoperand\x3c/em\x3e)\x3c/code\x3e\x3c/li\x3e\n\x3c/ol\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eoperand\x3c/em\x3e\x3c/code\x3e is the string, variable, keyword, or object for which the type is to be returned. The parentheses are optional.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThis table summarizes the possible return values of \x3ccode\x3etypeof\x3c/code\x3e:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth scope \x3d "col"\x3eType\x3c/th\x3e \x3cth scope \x3d "col"\x3eResult\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eUndefined\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot;undefined\x26quot;\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eNull\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot;object\x26quot;\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBoolean\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot;boolean\x26quot;\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eNumber\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot;number\x26quot;\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eString\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot;string\x26quot;\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eHost object (provided by the JS environment)\x3c/td\x3e \x3ctd\x3e\x3cem\x3eImplementation-dependent\x3c/em\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eFunction object (implements [[Call]] in ECMA-262 terms)\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot;function\x26quot;\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eE4X\x26nbsp;XML\x26nbsp;object\x3c/td\x3e \x3ctd\x3e\x26quot;xml\x26quot;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eE4X\x26nbsp;XMLList object\x3c/td\x3e \x3ctd\x3e\x26quot;xml\x26quot;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eAny other object\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot;object\x26quot;\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_5\"\x3e\x3cspan id \x3d \"Examples\"\x3e\x3c/span\x3e\x3ch2 class \x3d \"editable\"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Normal_cases\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eNormal cases\x3c/h3\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3e// Numbers\ntypeof 37 \x3d\x3d\x3d 'number';\ntypeof 3.14 \x3d\x3d\x3d 'number';\ntypeof Math.LN2 \x3d\x3d\x3d 'number';\ntypeof Infinity \x3d\x3d\x3d 'number';\ntypeof NaN \x3d\x3d\x3d 'number'; // Despite being \x26quot;Not-A-Number\x26quot;\ntypeof Number(1) \x3d\x3d\x3d 'number'; // but never use this form!\n\n// Strings\ntypeof \x26quot;\x26quot; \x3d\x3d\x3d 'string';\ntypeof \x26quot;bla\x26quot; \x3d\x3d\x3d 'string';\ntypeof (typeof 1) \x3d\x3d\x3d 'string'; // typeof always return a string\ntypeof String(\x26quot;abc\x26quot;) \x3d\x3d\x3d 'string'; // but never use this form!\n\n// Booleans\ntypeof true \x3d\x3d\x3d 'boolean';\ntypeof false \x3d\x3d\x3d 'boolean';\ntypeof Boolean(true) \x3d\x3d\x3d 'boolean'; // but never use this form!\n\n// Undefined\ntypeof undefined \x3d\x3d\x3d 'undefined';\ntypeof blabla \x3d\x3d\x3d 'undefined'; // an undefined variable\n\n// Objects\ntypeof {a:1} \x3d\x3d\x3d 'object';\ntypeof [1, 2, 4] \x3d\x3d\x3d 'object'; // use Array.isArray or Object.prototype.toString.call to differentiate regular objects from arrays\ntypeof new Date() \x3d\x3d\x3d 'object';\n\ntypeof new Boolean(true) \x3d\x3d\x3d 'object' // this is confusing. Don't use!\ntypeof new Number(1) \x3d\x3d\x3d 'object' // this is confusing. Don't use!\ntypeof new String(\x26quot;abc\x26quot;) \x3d\x3d\x3d 'object';  // this is confusing. Don't use!\n\n// Functions\ntypeof function(){} \x3d\x3d\x3d 'function';\ntypeof Math.sin \x3d\x3d\x3d 'function';\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"null\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3e\x3ccode\x3enull\x3c/code\x3e\x3c/h3\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3etypeof null \x3d\x3d\x3d 'object'; // This stands since the beginning of JavaScript\x3c/pre\x3e\r\n        \n\x3cp\x3eIn the first implementation of JavaScript, JavaScript values were represented as a type tag and a value. The type tag for objects was 0. \x3ccode\x3enull\x3c/code\x3e was represented as the NULL pointer (0x00 is most platforms). Consequently, null had 0 as type tag, hence the bogus \x3ccode\x3etypeof\x3c/code\x3e return value. (reference needed)\x3c/p\x3e\n\x3cp\x3eThis is planned on \x3ca class \x3d \" external\" rel \x3d \"external\" href \x3d \"http://wiki.ecmascript.org/doku.php?id\x3dharmony:typeof_null\" title \x3d \"http://wiki.ecmascript.org/doku.php?id\x3dharmony:typeof_null\" target \x3d \"_blank\"\x3ebeing fixed in the next version of ECMAScript\x3c/a\x3e (which will be available via an opt-in). It will result in \x3ccode\x3etypeof null \x3d\x3d\x3d 'null'\x3c/code\x3e.\x3c/p\x3e\x3c/div\x3e\x3cdiv id \x3d \"section_8\"\x3e\x3cspan id \x3d \"Regular_expressions\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eRegular expressions\x3c/h3\x3e\n\x3cp\x3eCallable regular expressions were a non-standard addition in some browsers (need reference to say which).\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3etypeof /s/ \x3d\x3d\x3d 'function'; // Chrome 1-12 ... // Non-conform to ECMAScript 5.1\ntypeof /s/ \x3d\x3d\x3d 'object'; // Firefox 5+ ...    // Conform to ECMAScript 5.1\x3c/pre\x3e\r\n         \x3c/div\x3e\x3cdiv id \x3d \"section_9\"\x3e\x3cspan id \x3d \"Other_quirks\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eOther quirks\x3c/h3\x3e\n\x3cdiv id \x3d \"section_10\"\x3e\x3cspan id \x3d \"alert_in_old_Internet_Explorer_versions\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3e\x3ccode\x3ealert\x3c/code\x3e in old Internet Explorer versions\x3c/h4\x3e\n\x3cp\x3eOn IE 6, 7 and 8, \x3ccode\x3etypeof alert \x3d\x3d\x3d 'object'\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e",
"\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Normal_cases\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eNormal cases\x3c/h3\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3e// Numbers\ntypeof 37 \x3d\x3d\x3d 'number';\ntypeof 3.14 \x3d\x3d\x3d 'number';\ntypeof Math.LN2 \x3d\x3d\x3d 'number';\ntypeof Infinity \x3d\x3d\x3d 'number';\ntypeof NaN \x3d\x3d\x3d 'number'; // Despite being \x26quot;Not-A-Number\x26quot;\ntypeof Number(1) \x3d\x3d\x3d 'number'; // but never use this form!\n\n// Strings\ntypeof \x26quot;\x26quot; \x3d\x3d\x3d 'string';\ntypeof \x26quot;bla\x26quot; \x3d\x3d\x3d 'string';\ntypeof (typeof 1) \x3d\x3d\x3d 'string'; // typeof always return a string\ntypeof String(\x26quot;abc\x26quot;) \x3d\x3d\x3d 'string'; // but never use this form!\n\n// Booleans\ntypeof true \x3d\x3d\x3d 'boolean';\ntypeof false \x3d\x3d\x3d 'boolean';\ntypeof Boolean(true) \x3d\x3d\x3d 'boolean'; // but never use this form!\n\n// Undefined\ntypeof undefined \x3d\x3d\x3d 'undefined';\ntypeof blabla \x3d\x3d\x3d 'undefined'; // an undefined variable\n\n// Objects\ntypeof {a:1} \x3d\x3d\x3d 'object';\ntypeof [1, 2, 4] \x3d\x3d\x3d 'object'; // use Array.isArray or Object.prototype.toString.call to differentiate regular objects from arrays\ntypeof new Date() \x3d\x3d\x3d 'object';\n\ntypeof new Boolean(true) \x3d\x3d\x3d 'object' // this is confusing. Don't use!\ntypeof new Number(1) \x3d\x3d\x3d 'object' // this is confusing. Don't use!\ntypeof new String(\x26quot;abc\x26quot;) \x3d\x3d\x3d 'object';  // this is confusing. Don't use!\n\n// Functions\ntypeof function(){} \x3d\x3d\x3d 'function';\ntypeof Math.sin \x3d\x3d\x3d 'function';\x3c/pre\x3e\r\n        \n\x3c/div\x3e",
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "null"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3ccode\x3enull\x3c/code\x3e\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etypeof null \x3d\x3d\x3d \'object\'; // This stands since the beginning of JavaScript\x3c/pre\x3e\r\n        \n\x3cp\x3eIn the first implementation of JavaScript, JavaScript values were represented as a type tag and a value. The type tag for objects was 0. \x3ccode\x3enull\x3c/code\x3e was represented as the NULL pointer (0x00 is most platforms). Consequently, null had 0 as type tag, hence the bogus \x3ccode\x3etypeof\x3c/code\x3e return value. (reference needed)\x3c/p\x3e\n\x3cp\x3eThis is planned on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://wiki.ecmascript.org/doku.php?id\x3dharmony:typeof_null" title \x3d "http://wiki.ecmascript.org/doku.php?id\x3dharmony:typeof_null" target \x3d "_blank"\x3ebeing fixed in the next version of ECMAScript\x3c/a\x3e (which will be available via an opt-in). It will result in \x3ccode\x3etypeof null \x3d\x3d\x3d \'null\'\x3c/code\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Regular_expressions"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eRegular expressions\x3c/h3\x3e\n\x3cp\x3eCallable regular expressions were a non-standard addition in some browsers (need reference to say which).\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3etypeof /s/ \x3d\x3d\x3d \'function\'; // Chrome 1-12 ... // Non-conform to ECMAScript 5.1\ntypeof /s/ \x3d\x3d\x3d \'object\'; // Firefox 5+ ...    // Conform to ECMAScript 5.1\x3c/pre\x3e\r\n         \x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Other_quirks"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eOther quirks\x3c/h3\x3e\n\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "alert_in_old_Internet_Explorer_versions"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3ccode\x3ealert\x3c/code\x3e in old Internet Explorer versions\x3c/h4\x3e\n\x3cp\x3eOn IE 6, 7 and 8, \x3ccode\x3etypeof alert \x3d\x3d\x3d \'object\'\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "alert_in_old_Internet_Explorer_versions"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3ccode\x3ealert\x3c/code\x3e in old Internet Explorer versions\x3c/h4\x3e\n\x3cp\x3eOn IE 6, 7 and 8, \x3ccode\x3etypeof alert \x3d\x3d\x3d \'object\'\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Specification"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSpecification\x3c/h2\x3e\n\x3cp\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://bclary.com/2004/11/07/#a-11.4.3" title \x3d "http://bclary.com/2004/11/07/#a-11.4.3" target \x3d "_blank"\x3eECMA-262 section 11.4.3\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Normal cases","null","Regular expressions",
"Other quirks","alert in old Internet Explorer versions","Specification"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/void","title":"void","_id":"4eea844da4c86c4dba00004b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3evoid \x3cem\x3eexpression\x3c/em\x3e\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3evoid\x3c/code\x3e operator evaluates the given \x3ccode\x3e\x3cem\x3eexpression\x3c/em\x3e\x3c/code\x3e and then returns \x3ccode\x3eundefined\x3c/code\x3e.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header" colspan \x3d "2"\x3eOperator\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eImplemented in:\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMA Version:\x3c/td\x3e \x3ctd\x3eECMA-262\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Uses"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eUses\x3c/h2\x3e\n\x3cp\x3eThis operator allows inserting expressions that produce side effects into places where an expression that evaluates to \x3ccode\x3eundefined\x3c/code\x3e is desired.\x3c/p\x3e\n\x3cp\x3eThe \x3ccode\x3evoid\x3c/code\x3e operator is often used merely to obtain the \x3ccode\x3eundefined\x3c/code\x3e primitive value, usually using \x26quot;\x3ccode\x3evoid(0)\x3c/code\x3e\x26quot; (which is equivalent to \x26quot;\x3ccode\x3evoid 0\x3c/code\x3e\x26quot;). In these cases, the global variable \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3eundefined\x3c/a\x3e can be used instead (assuming it has not been assigned to a non-default value).\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "JavaScript_URIs"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eJavaScript URIs\x3c/h2\x3e\n\x3cp\x3eWhen a browser follows a \x3ccode\x3ejavascript:\x3c/code\x3e URI, it evaluates the code in the URI and then replaces the contents of the page with the returned value, unless the returned value is \x3ccode\x3eundefined\x3c/code\x3e. The \x3ccode\x3evoid\x3c/code\x3e operator can be used to return \x3ccode\x3eundefined\x3c/code\x3e. For example:\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;a href\x3d\x26quot;javascript:void(0);\x26quot;\x26gt;Click here to do nothing\x26lt;/a\x26gt;\n\x26lt;a href\x3d\x26quot;javascript:void(document.body.style.backgroundColor\x3d\'green\');\x26quot;\x26gt;Click here for green background\x26lt;/a\x26gt;\n\x3c/pre\x3e\n\x3cp\x3eNote, however, that the \x3ccode\x3ejavascript:\x3c/code\x3e pseudo protocol is discouraged over other alternatives, such as unobtrusive event handlers.\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Syntax","Summary","Uses","JavaScript URIs"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence","title":"Operator Precedence","_id":"4eea8451a4c86c4dba00004c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eOperator precedence determines the order in which operators are evaluated. Operators with higher precedence are evaluated first.\x3c/p\x3e\n\x3cp\x3eA common example:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n3 + 4 * 5 // returns 23\t \n\x3c/pre\x3e\n\x3cp\x3eThe multiplication operator (\x26quot;\x3ccode\x3e*\x3c/code\x3e\x26quot;) has higher precedence than the addition operator (\x26quot;\x3ccode\x3e+\x3c/code\x3e\x26quot;) and thus will be evaluated first.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Associativity"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAssociativity\x3c/h3\x3e\n\x3cp\x3eAssociativity determines the order in which operators of the same precedence are processed. For example, consider an expression:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\na OP b OP c\n\x3c/pre\x3e\n\x3cp\x3eLeft-associativity (left-to-right) means that it is processed as \x3ccode\x3e(a OP b) OP c\x3c/code\x3e, while right-associativity (right-to-left) means it is interpreted as \x3ccode\x3ea OP (b OP c)\x3c/code\x3e. Assignment operators are right-associative, so you can write:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\na \x3d b \x3d 5;\n\x3c/pre\x3e\n\x3cp\x3ewith the expected result that \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e get the value 5. This is because the assignment operator returns the value that it assigned. First, \x3ccode\x3eb\x3c/code\x3e is set to 5. Then the \x3ccode\x3ea\x3c/code\x3e is set to the value of \x3ccode\x3eb\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Table"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eTable\x3c/h3\x3e\n\x3cp\x3eThe following table is ordered from highest (1) to lowest (17) precedence.\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3ePrecedence\x3c/th\x3e \x3cth\x3eOperator type\x3c/th\x3e \x3cth\x3eAssociativity\x3c/th\x3e \x3cth\x3eIndividual operators\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "3"\x3e1\x3c/td\x3e \x3ctd rowspan \x3d "2"\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Member_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Member_Operators"\x3emember\x3c/a\x3e\x3c/td\x3e \x3ctd rowspan \x3d "2"\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e[]\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/new_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/new"\x3enew\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eright-to-left\x3c/td\x3e \x3ctd\x3enew\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e2\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_call" class \x3d "new "\x3efunction call\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e()\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "2"\x3e3\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators"\x3eincrement\x3c/a\x3e\x3c/td\x3e \x3ctd\x3en/a\x3c/td\x3e \x3ctd\x3e++\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators"\x3edecrement\x3c/a\x3e\x3c/td\x3e \x3ctd\x3en/a\x3c/td\x3e \x3ctd\x3e--\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "7"\x3e4\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Logical_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Logical_Operators"\x3elogical-not\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eright-to-left\x3c/td\x3e \x3ctd\x3e!\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators"\x3ebitwise not\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eright-to-left\x3c/td\x3e \x3ctd\x3e~\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators"\x3eunary +\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eright-to-left\x3c/td\x3e \x3ctd\x3e+\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators"\x3eunary negation\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eright-to-left\x3c/td\x3e \x3ctd\x3e-\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/typeof_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/typeof"\x3etypeof\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eright-to-left\x3c/td\x3e \x3ctd\x3etypeof\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/void_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/void"\x3evoid\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eright-to-left\x3c/td\x3e \x3ctd\x3evoid\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/delete_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete"\x3edelete\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eright-to-left\x3c/td\x3e \x3ctd\x3edelete\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "3"\x3e5\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators"\x3emultiplication\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e*\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators"\x3edivision\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e/\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators"\x3emodulus\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e\x3cundefined\x3e\x3c/undefined\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "2"\x3e6\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators"\x3eaddition\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e+\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators"\x3esubtraction\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e-\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "3"\x3e7\x3c/td\x3e \x3ctd rowspan \x3d "3"\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators"\x3ebitwise shift\x3c/a\x3e\x3c/td\x3e \x3ctd rowspan \x3d "3"\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e\x26lt;\x26lt;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x26gt;\x26gt;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x26gt;\x26gt;\x26gt;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "6"\x3e8\x3c/td\x3e \x3ctd rowspan \x3d "4"\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators"\x3erelational\x3c/a\x3e\x3c/td\x3e \x3ctd rowspan \x3d "4"\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e\x26lt;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x26lt;\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x26gt;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x26gt;\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/in_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/in"\x3ein\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3ein\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/instanceof_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/instanceof"\x3einstanceof\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3einstanceof\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "4"\x3e9\x3c/td\x3e \x3ctd rowspan \x3d "4"\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators"\x3eequality\x3c/a\x3e\x3c/td\x3e \x3ctd rowspan \x3d "4"\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e\x3d\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e!\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3d\x3d\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e!\x3d\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e10\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators"\x3ebitwise-and\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e\x26amp;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e11\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators"\x3ebitwise-xor\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e^\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e12\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators"\x3ebitwise-or\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e|\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e13\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Logical_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Logical_Operators"\x3elogical-and\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e\x26amp;\x26amp;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e14\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Logical_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Logical_Operators"\x3elogical-or\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e||\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e15\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/Conditional_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/Conditional_Operator"\x3econditional\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eright-to-left\x3c/td\x3e \x3ctd\x3e?:\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "12"\x3e16\x3c/td\x3e \x3ctd rowspan \x3d "12"\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Assignment_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Assignment_Operators"\x3eassignment\x3c/a\x3e\x3c/td\x3e \x3ctd rowspan \x3d "12"\x3eright-to-left\x3c/td\x3e \x3ctd\x3e\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e+\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e-\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e*\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e/\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e%\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x26lt;\x26lt;\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x26gt;\x26gt;\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x26gt;\x26gt;\x26gt;\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x26amp;\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e^\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e|\x3d\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e17\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/Comma_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/Comma_Operator"\x3ecomma\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eleft-to-right\x3c/td\x3e \x3ctd\x3e,\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Associativity","Table"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse","title":"Date.parse","_id":"4eea8451a4c86c4dba00004d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eParses a string representation of a date, and returns the number of milliseconds since January 1, 1970, 00:00:00 UTC.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e Date.parse(dateString) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3edateString\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA string representing an RFC822 or ISO 8601 date.\x3c/dd\x3e\n\x3c/dl\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eparse\x3c/code\x3e method takes a date string (such as \x26quot;\x3ccode\x3eDec 25, 1995\x3c/code\x3e\x26quot;) and returns the number of milliseconds since January 1, 1970, 00:00:00 UTC. The local time zone is used to interpret arguments that do not contain time zone information. This function is useful for setting date values based on string values, for example in conjunction with the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setTime" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setTime"\x3esetTime\x3c/a\x3e\x3c/code\x3e method and the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e\x3c/code\x3e object.\x3c/p\x3e\n\x3cp\x3eGiven a string representing a time, \x3ccode\x3eparse\x3c/code\x3e returns the time value. It accepts the RFC822 / IETF date syntax (\x3ca class \x3d "external" title \x3d "http://tools.ietf.org/html/rfc1123" rel \x3d "external" href \x3d "http://tools.ietf.org/html/rfc1123" target \x3d "_blank"\x3eRFC 1123\x3c/a\x3e Section 5.2.14 and elsewhere), e.g. \x26quot;\x3ccode\x3eMon, 25 Dec 1995 13:30:00 GMT\x3c/code\x3e\x26quot;. It understands the continental US time-zone abbreviations, but for general use, use a time-zone offset, for example, \x26quot;\x3ccode\x3eMon, 25 Dec 1995 13:30:00 GMT+0430\x3c/code\x3e\x26quot; (4 hours, 30 minutes east of the Greenwich meridian). If you do not specify a time zone, the local time zone is assumed. GMT and UTC are considered equivalent.\x3c/p\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 0px none ; margin: 10px 0px; padding: 0px 10px; background-color: rgb(254, 244, 156); text-align: center;"\x3e\x3cp style \x3d "margin: 4px 0px; font-weight: bold;"\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e note\x3c/p\x3e\x3cp style \x3d "margin: 4px 0px;"\x3eA \x3ca rel \x3d "external" href \x3d "http://www.w3.org/TR/NOTE-datetime" title \x3d "http://www.w3.org/TR/NOTE-datetime" target \x3d "_blank" class \x3d " external"\x3esubset of ISO 8601\x3c/a\x3e formatted date strings can now also be parsed.\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cp\x3eAlternatively, the date/time string may be in ISO 8601 format. Starting with JavaScript 1.8.5 / Firefox 4, a \x3ca class \x3d "external" title \x3d "http://www.w3.org/TR/NOTE-datetime" rel \x3d "external" href \x3d "http://www.w3.org/TR/NOTE-datetime" target \x3d "_blank"\x3esubset of ISO 8601\x3c/a\x3e is supported. For example, \x26quot;\x3ccode\x3e2011-10-10\x3c/code\x3e\x26quot; (just date) or \x26quot;\x3ccode\x3e2011-10-10T14:48:00\x3c/code\x3e (date and time) can be passed and parsed. \x3ca class \x3d "link-https" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d693077" rel \x3d "external" target \x3d "_blank" title \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d693077"\x3eTimezones in ISO dates are not yet supported\x3c/a\x3e, so e.g. \x26quot;\x3ccode\x3e2011-10-10T14:48:00+0200\x3c/code\x3e\x26quot; (with timezone) does not give the intended result yet.\x3c/p\x3e\n\x3cp\x3eNote that while time zone specifiers are used during date string parsing to properly interpret the argument, they do not affect the value returned, which is always the number of milliseconds between January 1, 1970 00:00:00 UTC and the point in time represented by the argument.\x3c/p\x3e\n\x3cp\x3eBecause \x3ccode\x3eparse\x3c/code\x3e is a static method of \x3ccode\x3eDate\x3c/code\x3e, you always use it as \x3ccode\x3eDate.parse()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eDate\x3c/code\x3e object you created.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_parse"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eparse\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIf \x3ccode\x3eIPOdate\x3c/code\x3e is an existing \x3ccode\x3eDate\x3c/code\x3e object, then you can set it to August 9, 1995 (local time) as follows:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eIPOdate.setTime(Date.parse(\x26quot;Aug 9, 1995\x26quot;));\x3c/pre\x3e\r\n        \n\x3cp\x3eSome other examples:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 807937200000 in time zone GMT-0300, and other values in other\n// timezones, since the argument does not specify a time zone.\nDate.parse(\x26quot;Aug 9, 1995\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 807926400000 no matter the local time zone.\nDate.parse(\x26quot;Wed, 09 Aug 1995 00:00:00 GMT\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 807937200000 in timezone GMT-0300, and other values in other\n// timezones, since there is no time zone specifier in the argument.\nDate.parse(\x26quot;Wed, 09 Aug 1995 00:00:00\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 0 no matter the local time zone.\nDate.parse(\x26quot;Thu, 01 Jan 1970 00:00:00 GMT\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 14400000 in timezone GMT-0400, and other values in other \n// timezones, since there is no time zone specifier in the argument.\nDate.parse(\x26quot;Thu, 01 Jan 1970 00:00:00\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 14400000 no matter the local time zone.\nDate.parse(\x26quot;Thu, 01 Jan 1970 00:00:00 GMT-0400\x26quot;);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_parse"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eparse\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIf \x3ccode\x3eIPOdate\x3c/code\x3e is an existing \x3ccode\x3eDate\x3c/code\x3e object, then you can set it to August 9, 1995 (local time) as follows:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eIPOdate.setTime(Date.parse(\x26quot;Aug 9, 1995\x26quot;));\x3c/pre\x3e\r\n        \n\x3cp\x3eSome other examples:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 807937200000 in time zone GMT-0300, and other values in other\n// timezones, since the argument does not specify a time zone.\nDate.parse(\x26quot;Aug 9, 1995\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 807926400000 no matter the local time zone.\nDate.parse(\x26quot;Wed, 09 Aug 1995 00:00:00 GMT\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 807937200000 in timezone GMT-0300, and other values in other\n// timezones, since there is no time zone specifier in the argument.\nDate.parse(\x26quot;Wed, 09 Aug 1995 00:00:00\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 0 no matter the local time zone.\nDate.parse(\x26quot;Thu, 01 Jan 1970 00:00:00 GMT\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 14400000 in timezone GMT-0400, and other values in other \n// timezones, since there is no time zone specifier in the argument.\nDate.parse(\x26quot;Thu, 01 Jan 1970 00:00:00\x26quot;);\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns 14400000 no matter the local time zone.\nDate.parse(\x26quot;Thu, 01 Jan 1970 00:00:00 GMT-0400\x26quot;);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/UTC" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/UTC"\x3eDate.UTC\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using parse",
"See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/prototype","title":"Date.prototype","_id":"4eea8453a4c86c4dba00004e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the prototype for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n JavaScript\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3e Date\x3c/code\x3e\x3c/a\x3e  instances inherit from  \x3ccode\x3eDate.prototype\x3c/code\x3e . You can modify the constructor\'s prototype object to affect properties and methods inherited by JavaScript\x26nbsp;\x3ccode\x3eDate\x3c/code\x3e instances. \x3cp\x3eFor compatibility with millennium calculations (in other words, to take into account the year 2000), you should always specify the year in full; for example, use 1998, not 98. To assist you in specifying the complete year, JavaScript includes the methods \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear"\x3egetUTCFullYear\x3c/a\x3e\x3c/code\x3e, and \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear"\x3esetUTCFullYear\x3c/a\x3e\x3c/code\x3e.\x3c/p\x3e\n\t \x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e   \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the function that created an instance. This is the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e  \x3c/dd\x3e \x3c/dl\x3e \x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e  \x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e   \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDate"\x3egetDate\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the day of the month (1-31) for the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getDay" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDay"\x3egetDay\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the day of the week (0-6) for the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the year (4 digits for 4-digit years) of the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getHours"\x3egetHours\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the hour (0-23) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMilliseconds"\x3egetMilliseconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the milliseconds (0-999) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMinutes"\x3egetMinutes\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the minutes (0-59) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMonth"\x3egetMonth\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the month (0-11) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getSeconds"\x3egetSeconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the seconds (0-59) in the specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getTime" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTime"\x3egetTime\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the numeric value of the specified date as the number of milliseconds since January 1, 1970, 00:00:00 UTC (negative for prior times).\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset"\x3egetTimezoneOffset\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the time-zone offset in minutes for the current locale.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDate"\x3egetUTCDate\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the day (date) of the month (1-31) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDay" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDay"\x3egetUTCDay\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the day of the week (0-6) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear"\x3egetUTCFullYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the year (4 digits for 4-digit years) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCHours"\x3egetUTCHours\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the hours (0-23) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds"\x3egetUTCMilliseconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the milliseconds (0-999) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMinutes"\x3egetUTCMinutes\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the minutes (0-59) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMonth"\x3egetUTCMonth\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the month (0-11) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCSeconds"\x3egetUTCSeconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the seconds (0-59) in the specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getYear"\x3egetYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n\x3c/dd\x3e \x3cdd\x3eReturns the year (usually 2-3 digits) in the specified date according to local time. Use \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e instead.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setDate"\x3esetDate\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the day of the month (1-31) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the full year (4 digits for 4-digit years) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setHours"\x3esetHours\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the hours (0-23) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMilliseconds"\x3esetMilliseconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the milliseconds (0-999) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMinutes"\x3esetMinutes\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the minutes (0-59) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMonth"\x3esetMonth\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the month (0-11) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setSeconds"\x3esetSeconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the seconds (0-59) for a specified date according to local time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setTime" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setTime"\x3esetTime\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the \x3ccode\x3eDate\x3c/code\x3e object to the time represented by a number of milliseconds since January 1, 1970, 00:00:00 UTC, allowing for negative numbers for times prior.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCDate"\x3esetUTCDate\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the day of the month (1-31) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear"\x3esetUTCFullYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the full year (4 digits for 4-digit years) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCHours"\x3esetUTCHours\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the hour (0-23) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds"\x3esetUTCMilliseconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the milliseconds (0-999) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMinutes"\x3esetUTCMinutes\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the minutes (0-59) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMonth"\x3esetUTCMonth\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the month (0-11) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCSeconds"\x3esetUTCSeconds\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSets the seconds (0-59) for a specified date according to universal time.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setYear"\x3esetYear\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n\x3c/dd\x3e \x3cdd\x3eSets the year (usually 2-3 digits) for a specified date according to local time. Use \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e instead.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toDateString"\x3etoDateString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the \x26quot;date\x26quot; portion of the Date as a human-readable string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toISOString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toISOString"\x3etoISOString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eConverts a date to a string following the ISO 8601 Extended Format.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Date/toJSON" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toJSON"\x3etoJSON\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns a string encapsulating the Date object in JSON\x26nbsp;format.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toGMTString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toGMTString"\x3etoGMTString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n\x3c/dd\x3e \x3cdd\x3eConverts a date to a string, using the Internet GMT conventions. Use \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toUTCString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toUTCString"\x3etoUTCString\x3c/a\x3e instead.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString"\x3etoLocaleDateString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the \x26quot;date\x26quot; portion of the Date as a string, using the current locale\'s conventions.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toLocaleFormat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleFormat"\x3etoLocaleFormat\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eConverts a date to a string, using a format string.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eConverts a date to a string, using the current locale\'s conventions. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toLocaleString"\x3eObject.toLocaleString\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString"\x3etoLocaleTimeString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the \x26quot;time\x26quot; portion of the Date as a string, using the current locale\'s conventions.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eReturns a string representing the source for an equivalent \x3ccode\x3eDate\x3c/code\x3e object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified \x3ccode\x3eDate\x3c/code\x3e object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toTimeString"\x3etoTimeString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the \x26quot;time\x26quot; portion of the Date as a human-readable string.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toUTCString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toUTCString"\x3etoUTCString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eConverts a date to a string, using the universal time convention.\x3c/dd\x3e \x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/valueOf"\x3evalueOf\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of a \x3ccode\x3eDate\x3c/code\x3e object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.prototype.valueOf\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\n\x3cdiv class \x3d "noinclue"\x3e \x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3c/div\x3e\x3c/div\x3e\n\n \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e\n\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eFunction.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n \x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3c/div\x3e'],"sectionNames":["Summary","Description","Properties","MethodsSee also","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Arity","title":"Function.Arity","_id":"4eea8455a4c86c4dba00004f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eSpecifies the number of arguments expected by the function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp class \x3d "note"\x3eThe \x3ccode\x3earity\x3c/code\x3e property no longer exists and has been replaced by the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length"\x3eFunction.prototype.length\x3c/a\x3e\x3c/code\x3e property.\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Caller","title":"Function.Caller","_id":"4eea845aa4c86c4dba000050","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the function that invoked the specified function.\x3c/p\x3e\n\x3cp\x3eThis property is not part of ECMA-262 Edition 3 standard. It is implemented at least in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e (the JavaScript engine used in Mozilla) (see \n\x3ca rel \x3d "external" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d65683" class \x3d "external" title \x3d "RESOLVED FIXED - Function objects should have a caller property"\x3e\nbug 65683\x3c/a\x3e\n), V8 (the JavaScript engine used in Chrome) and JScript.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf the function \x3ccode\x3ef\x3c/code\x3e was invoked by the top level code, the value of \x3ccode\x3ef.caller\x3c/code\x3e is \x3ccode\x3enull\x3c/code\x3e, otherwise it\'s the function that called \x3ccode\x3ef\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3eThis property replaces deprecated \x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments/caller" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments/caller"\x3earguments.caller\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eNotes\x3c/h3\x3e\n\x3cp\x3eNote that in case of recursion, you can\'t reconstruct the call stack using this property. Consider:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction f(n) { g(n-1) }\nfunction g(n) { if(n\x26gt;0) f(n); else stop() }\nf(2)\n\x3c/pre\x3e\n\x3cp\x3eAt the moment \x3ccode\x3estop()\x3c/code\x3e is called the call stack will be:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nf(2) -\x26gt; g(1) -\x26gt; f(1) -\x26gt; g(0) -\x26gt; stop()\n\x3c/pre\x3e\n\x3cp\x3eThe following is true:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nstop.caller \x3d\x3d\x3d g \x26amp;\x26amp; f.caller \x3d\x3d\x3d g \x26amp;\x26amp; g.caller \x3d\x3d\x3d f\n\x3c/pre\x3e\n\x3cp\x3eso if you tried to get the stack trace in the \x3ccode\x3estop()\x3c/code\x3e function like this:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar f \x3d stop;\nvar stack \x3d \x26quot;Stack trace:\x26quot;;\nwhile (f) {\n  stack +\x3d \x26quot;\\n\x26quot; + f.name;\n  f \x3d f.caller;\n}\n\x3c/pre\x3e\n\x3cp\x3ethe loop would never stop.\x3c/p\x3e\n\x3cp\x3eThe special property \x3ccode\x3e__caller__\x3c/code\x3e, which returned the activation object of the caller thus allowing to reconstruct the stack, was removed for security reasons.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Checking_the_value_of_a_function.27s_caller_property"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Checking_the_value_of_a_function\'s_caller_property"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Checking the value of a function\'s \x3ccode\x3ecaller\x3c/code\x3e property\x3c/h4\x3e\n\x3cp\x3eThe following code checks the value a function\'s \x3ccode\x3ecaller\x3c/code\x3e property.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction myFunc() {\n   if (myFunc.caller \x3d\x3d null) {\n      return (\x26quot;The function was called from the top!\x26quot;);\n   } else\n      return (\x26quot;This function\'s caller was \x26quot; + myFunc.caller);\n}\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Checking_the_value_of_a_function.27s_caller_property"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Checking_the_value_of_a_function\'s_caller_property"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Checking the value of a function\'s \x3ccode\x3ecaller\x3c/code\x3e property\x3c/h4\x3e\n\x3cp\x3eThe following code checks the value a function\'s \x3ccode\x3ecaller\x3c/code\x3e property.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction myFunc() {\n   if (myFunc.caller \x3d\x3d null) {\n      return (\x26quot;The function was called from the top!\x26quot;);\n   } else\n      return (\x26quot;This function\'s caller was \x26quot; + myFunc.caller);\n}\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Browser_Support"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser Support\x3c/h3\x3e\n\x3cp\x3eFunction.caller is currently supported by all major browsers:\x26nbsp;Firefox, Safari, Chrome, Opera and IE. \x26nbsp;\x3ca title \x3d "http://dl.dropbox.com/u/534786/callertest.html" class \x3d " external" rel \x3d "external" href \x3d "http://dl.dropbox.com/u/534786/callertest.html" target \x3d "_blank"\x3eTest page with results\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Notes","Examples","Example: Checking the value of a function's caller property","Browser Support"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Constructor","title":"Function.Constructor","_id":"4eea845ba4c86c4dba000051","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eSee \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3eObject.constructor\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Length",
"title":"Function.Length","_id":"4eea845ca4c86c4dba000052","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eSpecifies the number of arguments expected by the function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3elength\x3c/code\x3e is a property of a function object, and indicates how many arguments the function expects, i.e. the number of formal parameters. By contrast, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Functions_and_function_scope/arguments/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments/length"\x3earguments.length\x3c/a\x3e\x3c/code\x3e is local to a function and provides the number of arguments actually passed to the function.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e0 \x26\x26 console.log((function () {}).length);  /* 0 */\n0 \x26\x26 console.log((function (a) {}).length); /* 1 */\n0 \x26\x26 console.log((function (a, b) {}).length); /* 2 etc. */\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Description","Example"]},
{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name","title":"Function.Name","_id":"4eea845ea4c86c4dba000053","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe name of the function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe name property returns the name of a function, or an empty string for anonymous functions:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction doSomething() {}\nalert(doSomething.name); // alerts \x26quot;doSomething\x26quot;\n\x3c/pre\x3e\n\x3cp\x3eFunctions created with the syntax \x3ccode\x3enew \x3ca title \x3d "Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e(...)\x3c/code\x3e or just \x3ccode\x3e\x3ca title \x3d "Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(...)\x3c/code\x3e have their name property set to \x26quot;anonymous\x26quot; on Firefox and Safari, or to an empty string on Chrome and Opera. This property is not supported on Internet Explorer.\x3c/p\x3e\n\x3cp\x3eNote that in these examples anonymous functions are created, so \x3ccode\x3ename\x3c/code\x3e returns an empty string:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar f \x3d function() { };\nvar object \x3d {\n  someMethod: function() {}\n};\n\nalert(f.name \x3d\x3d \x26quot;\x26quot;); // true\nalert(object.someMethod.name \x3d\x3d \x26quot;\x26quot;); // also true\n\x3c/pre\x3e\n\x3cp\x3eYou can define a function with a name in a \x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Functions#Function_constructor_vs._function_declaration_vs._function_expression" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Functions#Function_constructor_vs._function_declaration_vs._function_expression"\x3efunction expression\x3c/a\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar object \x3d {\n  someMethod: function object_someMethod() {}\n};\nalert(object.someMethod.name); // alerts \x26quot;object_someMethod\x26quot;\n\ntry { object_someMethod } catch(e) { alert(e); }\n// ReferenceError: object_someMethod is not defined\n\x3c/pre\x3e\n\x3cp\x3eYou cannot change the \x3ccode\x3ename\x3c/code\x3e of a function, this property is read-only:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar object \x3d {\n  // anonymous\n  someMethod: function(){}\n};\nobject.someMethod.name \x3d \x26quot;someMethod\x26quot;;\nalert(object.someMethod.name); // empty string, someMethod is anonymous\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cp\x3eYou can use \x3ccode\x3eobj.constructor.name\x3c/code\x3e to check the \x26quot;class\x26quot; of an object:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction a()\n{\n}\n\nvar b \x3d new a();\nalert(b.constructor.name); //Alerts \x26quot;a\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e'],"sectionNames":["Summary","Description","Examples"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/now",
"title":"Date.now","_id":"4eea8462a4c86c4dba000054","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Introduction"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eIntroduction\x3c/h2\x3e\n\x3cp\x3eReturns the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar timeInMs \x3d Date.now();\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3enow\x3c/code\x3e method returns the milliseconds elapsed since 1 January 1970 00:00:00 UTC up until now as a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/Number"\x3enumber\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eWhen using \x3ccode\x3enow\x3c/code\x3e to create timestamps or unique IDs, keep in mind that the resolution may be 15 milliseconds on Windows (see \n\x3ca rel \x3d "external" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d363258" class \x3d "external" title \x3d "VERIFIED FIXED - bad millisecond resolution for (new Date).getTime() / Date.now() on Windows"\x3e\nbug 363258\x3c/a\x3e\n), so you could end up with several equal values if \x3ccode\x3enow\x3c/code\x3e is called multiple times within a short time span.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cp\x3eThis method was standardized in ECMA-262 5th edition.\x26nbsp; Engines which have not been updated to support this method can work around the absence of this method using the following shim:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (!Date.now) {\n  Date.now \x3d function now() {\n    return +(new Date);\n  };\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e3\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e10.50\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Introduction","Syntax","Parameters","Description","Compatibility","Cross-browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/UTC","title":"Date.UTC","_id":"4eea8465a4c86c4dba000055","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eAccepts the same parameters as the longest form of the constructor, and returns the number of milliseconds in a \x3ccode\x3eDate\x3c/code\x3e object since January 1, 1970, 00:00:00, universal time.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nDate.UTC(\x3ci\x3eyear\x3c/i\x3e, \x3ci\x3emonth\x3c/i\x3e[, \x3ci\x3edate\x3c/i\x3e[, \x3ci\x3ehrs\x3c/i\x3e[, \x3ci\x3emin\x3c/i\x3e[, \x3ci\x3esec\x3c/i\x3e[, \x3cem\x3ems\x3c/em\x3e]]]]])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eyear\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A year after 1900. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emonth\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 11 representing the month. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3edate\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 1 and 31 representing the day of the month. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ehrs\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 23 representing the hours. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emin\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59 representing the minutes. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3esec\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59 representing the seconds. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ems\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 999 representing the milliseconds.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eUTC\x3c/code\x3e takes comma-delimited date parameters and returns the number of milliseconds between January 1, 1970, 00:00:00, universal time and the time you specified.\n\x3c/p\x3e\x3cp\x3eYou should specify a full year for the year; for example, 1998. If a year between 0 and 99 is specified, the method converts the year to a year in the 20th century (1900 + year); for example, if you specify 95, the year 1995 is used.\n\x3c/p\x3e\x3cp\x3eThe \x3ccode\x3eUTC\x3c/code\x3e method differs from the \x3ccode\x3eDate\x3c/code\x3e constructor in two ways.\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e \x3ccode\x3eDate.UTC\x3c/code\x3e uses universal time instead of the local time.\n\x3c/li\x3e\x3cli\x3e \x3ccode\x3eDate.UTC\x3c/code\x3e returns a time value as a number instead of creating a \x3ccode\x3eDate\x3c/code\x3e object.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eIf a parameter you specify is outside of the expected range, the \x3ccode\x3eUTC\x3c/code\x3e method updates the other parameters to allow for your number. For example, if you use 15 for month, the year will be incremented by 1 (year + 1), and 3 will be used for the month.\n\x3c/p\x3e\x3cp\x3eBecause \x3ccode\x3eUTC\x3c/code\x3e is a static method of \x3ccode\x3eDate\x3c/code\x3e, you always use it as \x3ccode\x3eDate.UTC()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eDate\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Date.UTC"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eDate.UTC\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following statement creates a \x3ccode\x3eDate\x3c/code\x3e object using GMT instead of local time:\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3egmtDate \x3d new Date(Date.UTC(96, 11, 1, 0, 0, 0));\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Date.UTC"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eDate.UTC\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following statement creates a \x3ccode\x3eDate\x3c/code\x3e object using GMT instead of local time:\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3egmtDate \x3d new Date(Date.UTC(96, 11, 1, 0, 0, 0));\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/parse" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/parse"\x3eparse\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Parameters "," Description "," Examples "," Example: Using Date.UTC "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply","title":"Function.Apply","_id":"4eea8469a4c86c4dba000056","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCalls a function with a given \x3ccode\x3ethis\x3c/code\x3e value and \x3ccode\x3earguments\x3c/code\x3e provided as an array.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNOTE:\x3c/strong\x3e\x26nbsp;While the syntax of this function is almost identical to that of\x26nbsp;\x3ccode style \x3d "font-style: inherit; "\x3e\x3ca href \x3d "/en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall()\x3c/a\x3e\x3c/code\x3e, the fundamental difference is that\x26nbsp;\x3ccode style \x3d "font-style: inherit; "\x3ecall()\x3c/code\x3e\x26nbsp;accepts an argument list, while\x26nbsp;\x3ccode style \x3d "font-style: inherit; "\x3eapply()\x3c/code\x3e\x26nbsp;accepts a single array of arguments.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2" scope \x3d "row"\x3eMethod of \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMA-262 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3efun\x3c/em\x3e.apply(\x3cem\x3ethisArg\x3c/em\x3e[, \x3cem\x3eargsArray\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 style \x3d "position: static; z-index: auto; " class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ethisArg\x3c/code\x3e\x3c/dt\x3e \x3cdd style \x3d "position: static; z-index: auto; "\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdd style \x3d "position: relative; z-index: 0; "\x3eThe value of\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3ethis\x3c/code\x3e\x26nbsp;provided for the call to\x26nbsp;\x3cem\x3e\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3efun\x3c/code\x3e\x3c/em\x3e. \x26nbsp;Note that this may not be the actual value seen by the method: if the method is a function in non-strict mode code,\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3enull\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3eundefined\x3c/code\x3e\x26nbsp;will be replaced with the global object, and primitive values will be boxed. \x3cdiv id \x3d "WebKit-Editing-Delete-Container" style \x3d "-webkit-user-drag: none; -webkit-user-select: none; -webkit-user-modify: none; visibility: hidden; position: absolute; cursor: default; top: 0px; right: 0px; bottom: 0px; left: 0px; "\x3e\x3cimg alt \x3d "" id \x3d "WebKit-Editing-Delete-Button" style \x3d "position: absolute; z-index: 1000000; top: -15px; left: -17px; width: 30px; height: 30px; visibility: visible;"/\x3e\x3c/div\x3e \x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eargsArray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array like object, specifying the arguments with which \x3cem\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/em\x3e should be called, or \x3ccode\x3enull\x3c/code\x3e or \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3eundefined\x3c/a\x3e if no arguments should be provided to the function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 0px none ; margin: 10px 0px; padding: 0px 10px; background-color: rgb(254, 244, 156); text-align: center;"\x3e\x3cp style \x3d "margin: 4px 0px; font-weight: bold;"\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e note\x3c/p\x3e\x3cp style \x3d "margin: 4px 0px;"\x3eStarting in JavaScript 1.8.5 (Firefox 4), this method works according to the ECMAScript 5 specification. That is, the arguments can be a generic array-like object instead of an array. See \n\x3ca rel \x3d "external" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d562448" class \x3d "external" title \x3d "RESOLVED FIXED - ES5 Function.prototype.apply does not require argArray be either Array or arguments"\x3e\nbug 562448\x3c/a\x3e\n for details on this change.\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eYou can assign a different \x3ccode\x3ethis\x3c/code\x3e object when calling an existing function. \x3ccode\x3ethis\x3c/code\x3e refers to the current object, the calling object. With \x3ccode\x3eapply\x3c/code\x3e, you can write a method once and then inherit it in another object, without having to rewrite the method for the new object.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eapply\x3c/code\x3e is very similar to \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e\x3c/code\x3e, except for the type of arguments it supports. You can use an arguments array instead of a named set of parameters. With \x3ccode\x3eapply\x3c/code\x3e, you can use an array literal, for example, \x3ccode\x3e\x3cem\x3efun\x3c/em\x3e.apply(this, [\'eat\', \'bananas\'])\x3c/code\x3e, or an \x3ccode\x3eArray\x3c/code\x3e object, for example, \x3ccode\x3e\x3cem\x3efun\x3c/em\x3e.apply(this, new Array(\'eat\', \'bananas\'))\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eYou can also use \x3ccode\x3e\x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments"\x3earguments\x3c/a\x3e\x3c/code\x3e for the \x3ccode\x3eargsArray\x3c/code\x3e parameter. \x3ccode\x3earguments\x3c/code\x3e is a local variable of a function. It can be used for all unspecified arguments of the called object. Thus, you do not have to know the arguments of the called object when you use the \x3ccode\x3eapply\x3c/code\x3e method. You can use \x3ccode\x3earguments\x3c/code\x3e to pass all the arguments to the called object. The called object is then responsible for handling the arguments.\x3c/p\x3e\n\x3cp\x3eSince ECMAScript 5th Edition you can also use any kind of object which is array like, so in practice this means it\'s going to have a property \x3ccode\x3elength\x3c/code\x3e and integer properties in the range \x3ccode\x3e[0...length)\x3c/code\x3e. As an example you can now use a \x3ca title \x3d "en/DOM/NodeList" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/DOM/NodeList"\x3eNodeList\x3c/a\x3e or a own custom object like \x3ccode\x3e{\'length\': 2, \'0\': \'eat\', \'1\':\x26nbsp;\'bananas\'}\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;Most browsers, including Chrome 14 and Internet Explorer 9, still do not accept array like objects and will throw an exception.\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_apply_to_chain_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eUsing \x3ccode\x3eapply\x3c/code\x3e to chain constructors\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3eapply\x3c/code\x3e to chain constructors for an object, similar to Java. In the following example, the constructor for the \x3ccode\x3eProduct\x3c/code\x3e object is defined with two parameters, \x3ccode\x3ename\x3c/code\x3e and \x3ccode\x3evalue\x3c/code\x3e. Two other functions \x3ccode\x3eFood\x3c/code\x3e and \x3ccode\x3eToy\x3c/code\x3e invoke \x3ccode\x3eProduct\x3c/code\x3e passing \x3ccode\x3ethis\x3c/code\x3e and \x3ccode\x3earguments\x3c/code\x3e. Product initializes the properties name and price, both specialized functions define the category. In this example, the \x3ccode\x3earguments\x3c/code\x3e object is fully passed to the product constructor and corresponds to the two defined parameters.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Product(name, price) {\n  this.name \x3d name;\n  this.price \x3d price;\n\n  if (price \x26lt; 0)\n    throw RangeError(\'Cannot create product \x26quot;\' + name + \'\x26quot; with a negative price\');\n  return this;\n}\n\nfunction Food(name, price) {\n  Product.apply(this, arguments);\n  this.category \x3d \'food\';\n}\nFood.prototype \x3d new Product();\n\nfunction Toy(name, price) {\n  Product.apply(this, arguments);\n  this.category \x3d \'toy\';\n}\nToy.prototype \x3d new Product();\n\nvar cheese \x3d new Food(\'feta\', 5);\nvar fun \x3d new Toy(\'robot\', 40);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "apply_and_built-in_functions"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eapply and built-in functions\x3c/h3\x3e\n\x3cp\x3eClever usage of \x3ccode\x3eapply\x3c/code\x3e allows you to use built-ins functions for some tasks that otherwise probably would have been written by looping over the array values. As an example here we are going to use Math.max/Math.min to find out the maximum/minimum value in an array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e/* min/max number in an array */\nvar numbers \x3d [5, 6, 2, 3, 7];\n\n/* using Math.min/Math.max apply */\nvar max \x3d Math.max.apply(null, numbers); /* This about equal to Math.max(numbers[0], ...) or Math.max(5, 6, ..) */\nvar min \x3d Math.min.apply(null, numbers);\n\n/* vs. simple loop based algorithm */\nmax \x3d -Infinity, min \x3d +Infinity;\n\nfor (var i \x3d 0; i \x26lt; numbers.length; i++) {\n  if (numbers[i] \x26gt; max)\n    max \x3d numbers[i];\n  if (numbers[i] \x26lt; min) \n    min \x3d numbers[i];\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eBut beware: in using \x3ccode\x3eapply\x3c/code\x3e this way, you run the risk of exceeding the JavaScript engine\'s argument length limit. The consequences of applying a function with too many arguments (think more than tens of thousands of arguments) vary across engines, because the limit (indeed even the nature of any excessively-large-stack behavior) is unspecified. Some engines will throw an exception. More perniciously, others will arbitrarily limit the number of arguments actually passed to the applied function. (To illustrate this latter case: if such an engine had a limit of four arguments [actual limits are of course significantly higher], it would be as if the arguments \x3ccode\x3e5, 6, 2, 3\x3c/code\x3e had been passed to \x3ccode\x3eapply\x3c/code\x3e in the examples above, rather than the full array.)\x26nbsp; If your value array might grow into the tens of thousands, use a hybrid strategy: apply your function to chunks of the array at a time:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction minOfArray(arr)\n{\n  var min \x3d Infinity;\n  var QUANTUM \x3d 32768;\n  for (var i \x3d 0, len \x3d arr.length; i \x26lt; len; i +\x3d QUANTUM)\n  {\n    var submin \x3d Math.min.apply(null, numbers.slice(i, Math.min(i + QUANTUM, len)));\n    min \x3d Math.min(submin, min);\n  }\n  return min;\n}\n\nvar min \x3d minOfArray([5, 6, 2, 3, 7]);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
"\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Using_apply_to_chain_constructors\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3eapply\x3c/code\x3e to chain constructors\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3eapply\x3c/code\x3e to chain constructors for an object, similar to Java. In the following example, the constructor for the \x3ccode\x3eProduct\x3c/code\x3e object is defined with two parameters, \x3ccode\x3ename\x3c/code\x3e and \x3ccode\x3evalue\x3c/code\x3e. Two other functions \x3ccode\x3eFood\x3c/code\x3e and \x3ccode\x3eToy\x3c/code\x3e invoke \x3ccode\x3eProduct\x3c/code\x3e passing \x3ccode\x3ethis\x3c/code\x3e and \x3ccode\x3earguments\x3c/code\x3e. Product initializes the properties name and price, both specialized functions define the category. In this example, the \x3ccode\x3earguments\x3c/code\x3e object is fully passed to the product constructor and corresponds to the two defined parameters.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3efunction Product(name, price) {\n  this.name \x3d name;\n  this.price \x3d price;\n\n  if (price \x26lt; 0)\n    throw RangeError('Cannot create product \x26quot;' + name + '\x26quot; with a negative price');\n  return this;\n}\n\nfunction Food(name, price) {\n  Product.apply(this, arguments);\n  this.category \x3d 'food';\n}\nFood.prototype \x3d new Product();\n\nfunction Toy(name, price) {\n  Product.apply(this, arguments);\n  this.category \x3d 'toy';\n}\nToy.prototype \x3d new Product();\n\nvar cheese \x3d new Food('feta', 5);\nvar fun \x3d new Toy('robot', 40);\x3c/pre\x3e\r\n        \n\x3c/div\x3e",
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "apply_and_built-in_functions"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eapply and built-in functions\x3c/h3\x3e\n\x3cp\x3eClever usage of \x3ccode\x3eapply\x3c/code\x3e allows you to use built-ins functions for some tasks that otherwise probably would have been written by looping over the array values. As an example here we are going to use Math.max/Math.min to find out the maximum/minimum value in an array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e/* min/max number in an array */\nvar numbers \x3d [5, 6, 2, 3, 7];\n\n/* using Math.min/Math.max apply */\nvar max \x3d Math.max.apply(null, numbers); /* This about equal to Math.max(numbers[0], ...) or Math.max(5, 6, ..) */\nvar min \x3d Math.min.apply(null, numbers);\n\n/* vs. simple loop based algorithm */\nmax \x3d -Infinity, min \x3d +Infinity;\n\nfor (var i \x3d 0; i \x26lt; numbers.length; i++) {\n  if (numbers[i] \x26gt; max)\n    max \x3d numbers[i];\n  if (numbers[i] \x26lt; min) \n    min \x3d numbers[i];\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eBut beware: in using \x3ccode\x3eapply\x3c/code\x3e this way, you run the risk of exceeding the JavaScript engine\'s argument length limit. The consequences of applying a function with too many arguments (think more than tens of thousands of arguments) vary across engines, because the limit (indeed even the nature of any excessively-large-stack behavior) is unspecified. Some engines will throw an exception. More perniciously, others will arbitrarily limit the number of arguments actually passed to the applied function. (To illustrate this latter case: if such an engine had a limit of four arguments [actual limits are of course significantly higher], it would be as if the arguments \x3ccode\x3e5, 6, 2, 3\x3c/code\x3e had been passed to \x3ccode\x3eapply\x3c/code\x3e in the examples above, rather than the full array.)\x26nbsp; If your value array might grow into the tens of thousands, use a hybrid strategy: apply your function to chunks of the array at a time:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction minOfArray(arr)\n{\n  var min \x3d Infinity;\n  var QUANTUM \x3d 32768;\n  for (var i \x3d 0, len \x3d arr.length; i \x26lt; len; i +\x3d QUANTUM)\n  {\n    var submin \x3d Math.min.apply(null, numbers.slice(i, Math.min(i + QUANTUM, len)));\n    min \x3d Math.min(submin, min);\n  }\n  return min;\n}\n\nvar min \x3d minOfArray([5, 6, 2, 3, 7]);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee Also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "/en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e, \x3ca title \x3d "/en/JavaScript/Reference/Global_Objects/Function/bind" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind"\x3ebind\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Functions_and_function_scope/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments"\x3earguments\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Using apply to chain constructors","apply and built-in functions","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call","title":"Function.Call","_id":"4eea846aa4c86c4dba000057","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCalls a function with a given \x3ccode\x3ethis\x3c/code\x3e value and arguments provided individually.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNOTE:\x3c/strong\x3e While the syntax of this function is almost identical to that of\x26nbsp;\x3ccode\x3e\x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply()\x3c/a\x3e\x3c/code\x3e, the fundamental difference is that \x3ccode\x3ecall()\x3c/code\x3e accepts an argument list, while \x3ccode\x3eapply()\x3c/code\x3e accepts a single array of arguments.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3efun\x3c/em\x3e.call(\x3cem\x3ethisArg\x3c/em\x3e[, \x3cem\x3earg1\x3c/em\x3e[, \x3cem\x3earg2\x3c/em\x3e[, ...]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 style \x3d "position: static; z-index: auto; " class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ethisArg\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe value of \x3ccode\x3ethis\x3c/code\x3e provided for the call to\x26nbsp;\x3cem\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/em\x3e. \x26nbsp;Note that this may not be the actual value seen by the method: if the method is a function in \x3ca title \x3d "en/JavaScript/Strict mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/Strict_mode"\x3enon-strict mode\x3c/a\x3e code, \x3ccode\x3enull\x3c/code\x3e and \x3ccode\x3eundefined\x3c/code\x3e will be replaced with the global object, and primitive values will be boxed.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earg1, arg2, ...\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eArguments for the object.\x3c/dd\x3e\n\x3c/dl\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eYou can assign a different \x3ccode\x3ethis\x3c/code\x3e object when calling an existing function. \x3ccode\x3ethis\x3c/code\x3e refers to the current object, the calling object.\x3c/p\x3e\n\x3cp\x3eWith \x3ccode\x3ecall\x3c/code\x3e, you can write a method once and then inherit it in another object, without having to rewrite the method for the new object.\x3c/p\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_5\"\x3e\x3cspan id \x3d \"Examples\"\x3e\x3c/span\x3e\x3ch2 class \x3d \"editable\"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Using_call_to_chain_constructors_for_an_object\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3ecall\x3c/code\x3e to chain constructors for an object\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3ecall\x3c/code\x3e to chain constructors for an object, similar to Java.\x26nbsp;In the following example, the constructor for the\x26nbsp;\x3ccode\x3eProduct\x3c/code\x3e\x26nbsp;object is defined with two parameters, \x3ccode\x3ename\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3evalue\x3c/code\x3e. Two other functions\x26nbsp;\x3ccode\x3eFood\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3eToy\x3c/code\x3e\x26nbsp;invoke\x26nbsp;\x3ccode\x3eProduct\x3c/code\x3e\x26nbsp;passing\x26nbsp;\x3ccode\x3ethis\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3ename\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3evalue\x3c/code\x3e. Product initializes the properties name and price, both specialized functions define the category.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3efunction Product(name, price) {\n  this.name \x3d name;\n  this.price \x3d price;\n\n  if (price \x26lt; 0)\n    throw RangeError('Cannot create product \x26quot;' + name + '\x26quot; with a negative price');\n  return this;\n}\n\nfunction Food(name, price) {\n  Product.call(this, name, price);\n  this.category \x3d 'food';\n}\nFood.prototype \x3d new Product();\n\nfunction Toy(name, price) {\n  Product.call(this, name, price);\n  this.category \x3d 'toy';\n}\nToy.prototype \x3d new Product();\n\nvar cheese \x3d new Food('feta', 5);\nvar fun \x3d new Toy('robot', 40);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"Using_call_to_invoke_an_anonymous_function\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3ecall\x3c/code\x3e to invoke an anonymous function\x3c/h3\x3e\n\x3cp\x3eIn this purely constructed example, we create anonymous function and use \x3ccode\x3ecall\x3c/code\x3e to invoke it on every object in an array. The main purpose of the anonymous function here is to add a print function to every object, which is able to print the right index of the object in the array. Passing the object as \x3ccode\x3ethis\x3c/code\x3e value was not strictly necessary, but is done for explanatory purpose.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar animals \x3d [\n  {species: 'Lion', name: 'King'},\n  {species: 'Whale', name: 'Fail'}\n];\n\nfor (var i \x3d 0; i \x26lt; animals.length; i++) {\n  (function (i) { \n    this.print \x3d function () { \n      0 \x26\x26 console.log('#' + i  + ' ' + this.species + ': ' + this.name); \n    } \n  }).call(animals[i], i);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e",
"\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Using_call_to_chain_constructors_for_an_object\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3ecall\x3c/code\x3e to chain constructors for an object\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3ecall\x3c/code\x3e to chain constructors for an object, similar to Java.\x26nbsp;In the following example, the constructor for the\x26nbsp;\x3ccode\x3eProduct\x3c/code\x3e\x26nbsp;object is defined with two parameters, \x3ccode\x3ename\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3evalue\x3c/code\x3e. Two other functions\x26nbsp;\x3ccode\x3eFood\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3eToy\x3c/code\x3e\x26nbsp;invoke\x26nbsp;\x3ccode\x3eProduct\x3c/code\x3e\x26nbsp;passing\x26nbsp;\x3ccode\x3ethis\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3ename\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3evalue\x3c/code\x3e. Product initializes the properties name and price, both specialized functions define the category.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3efunction Product(name, price) {\n  this.name \x3d name;\n  this.price \x3d price;\n\n  if (price \x26lt; 0)\n    throw RangeError('Cannot create product \x26quot;' + name + '\x26quot; with a negative price');\n  return this;\n}\n\nfunction Food(name, price) {\n  Product.call(this, name, price);\n  this.category \x3d 'food';\n}\nFood.prototype \x3d new Product();\n\nfunction Toy(name, price) {\n  Product.call(this, name, price);\n  this.category \x3d 'toy';\n}\nToy.prototype \x3d new Product();\n\nvar cheese \x3d new Food('feta', 5);\nvar fun \x3d new Toy('robot', 40);\x3c/pre\x3e\r\n        \n\x3c/div\x3e",
"\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"Using_call_to_invoke_an_anonymous_function\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3ecall\x3c/code\x3e to invoke an anonymous function\x3c/h3\x3e\n\x3cp\x3eIn this purely constructed example, we create anonymous function and use \x3ccode\x3ecall\x3c/code\x3e to invoke it on every object in an array. The main purpose of the anonymous function here is to add a print function to every object, which is able to print the right index of the object in the array. Passing the object as \x3ccode\x3ethis\x3c/code\x3e value was not strictly necessary, but is done for explanatory purpose.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar animals \x3d [\n  {species: 'Lion', name: 'King'},\n  {species: 'Whale', name: 'Fail'}\n];\n\nfor (var i \x3d 0; i \x26lt; animals.length; i++) {\n  (function (i) { \n    this.print \x3d function () { \n      0 \x26\x26 console.log('#' + i  + ' ' + this.species + ': ' + this.name); \n    } \n  }).call(animals[i], i);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e",
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee Also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Using call to chain constructors for an object",
"Using call to invoke an anonymous function","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToSource","title":"Function.ToSource","_id":"4eea846ca4c86c4dba000058","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code for the function.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3evar sourceString \x3d \x3cem\x3efunction\x3c/em\x3e.toSource();\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\n\x3c/p\x3e\x3cp\x3e\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For the built-in \x3ccode\x3eFunction\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\n\x3c/li\x3e\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3efunction Function() {\n   [native code]\n}\n\x3c/pre\x3e\n\x3cul\x3e\x3cli\x3e For custom functions, \x3ccode\x3etoSource\x3c/code\x3e returns the JavaScript source that defines the object as a string.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code. You can call \x3ccode\x3etoSource\x3c/code\x3e while debugging to examine the contents of an object.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cul\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toString"\x3etoString\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.prototype.valueOf\x3c/a\x3e\n\x3c/li\x3e\x3c/ul\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/ToString","title":"Function.ToString","_id":"4eea846da4c86c4dba000059","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eReturns a string representing the source code of the function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cvar\x3efunction\x3c/var\x3e.toString(\x3cvar\x3eindentation\x3c/var\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eindentation\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e The amount of spaces to indent the string representation of the source code. If \x3ccode\x3eindentation\x3c/code\x3e is less than or equal to \x3ccode\x3e-1\x3c/code\x3e, most unnecessary spaces are removed.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/code\x3e object overrides the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e method inherited from \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/code\x3e; it does not inherit \x3ccode\x3eObject.prototype.toString\x3c/code\x3e. For \x3ccode\x3eFunction\x3c/code\x3e objects, the \x3ccode\x3etoString\x3c/code\x3e method returns a string representation of the object in the form of a function declaration.\x26nbsp; That is, toString decompiles the function, and the string returned includes the \x3ccode\x3efunction\x3c/code\x3e keyword, the argument list, curly braces, and the source of the function body.\x3c/p\x3e\n\x3cp\x3eJavaScript calls the \x3ccode\x3etoString\x3c/code\x3e method automatically when a \x3ccode\x3eFunction\x3c/code\x3e is to be represented as a text value, e.g. when a function is concatenated with a string.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary",
"Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear","title":"Date.getFullYear","_id":"4eea8475a4c86c4dba00005a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the year of the specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetFullYear()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetFullYear\x3c/code\x3e is an absolute number. For dates between the years 1000 and 9999, \x3ccode\x3egetFullYear\x3c/code\x3e returns a four-digit number, for example, 1995. Use this function to make sure a year is compliant with years after 2000.\n\x3c/p\x3e\x3cp\x3eUse this method instead of the \x3ccode\x3egetYear\x3c/code\x3e method.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getFullYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetFullYear\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the four-digit value of the current year to the variable \x3ccode\x3eyr\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar today \x3d new Date();\nvar yr \x3d today.getFullYear(); \n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getFullYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetFullYear\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the four-digit value of the current year to the variable \x3ccode\x3eyr\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar today \x3d new Date();\nvar yr \x3d today.getFullYear(); \n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getYear"\x3egetYear\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear"\x3egetUTCFullYear\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getFullYear "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear","title":"Date.setFullYear","_id":"4eea8476a4c86c4dba00005b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the full year for a specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetFullYear(\x3cem\x3eyearValue\x3c/em\x3e[, \x3cem\x3emonthValue\x3c/em\x3e[, \x3cem\x3edayValue\x3c/em\x3e]])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eyearValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer specifying the numeric value of the year, for example, 1995.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emonthValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 11 representing the months January through December.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3edayValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 1 and 31 representing the day of the month. If you specify the dayValue parameter, you must also specify the monthValue. \x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3emonthValue\x3c/code\x3e and \x3ccode\x3edayValue\x3c/code\x3e parameters, the values returned from the \x3ccode\x3egetMonth\x3c/code\x3e and \x3ccode\x3egetDate\x3c/code\x3e methods are used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetFullYear\x3c/code\x3e attempts to update the other parameters and the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you specify 15 for \x3ccode\x3emonthValue\x3c/code\x3e, the year is incremented by 1 (year + 1), and 3 is used for the month.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setFullYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetFullYear\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setFullYear(1997);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setFullYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetFullYear\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setFullYear(1997);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear"\x3egetUTCFullYear\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear"\x3esetUTCFullYear\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setYear"\x3esetYear\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setFullYear "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear","title":"Date.getUTCFullYear","_id":"4eea8477a4c86c4dba00005c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the year in the specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetUTCFullYear()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetUTCFullYear\x3c/code\x3e is an absolute number that is compliant with year-2000, for example, 1995.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCFullYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCFullYear\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the four-digit value of the current year to the variable \x3ccode\x3eyr\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar yr;\nToday \x3d new Date();\nyr \x3d Today.getUTCFullYear(); \n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCFullYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCFullYear\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the four-digit value of the current year to the variable \x3ccode\x3eyr\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar yr;\nToday \x3d new Date();\nyr \x3d Today.getUTCFullYear(); \n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getUTCFullYear "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCFullYear","title":"Date.setUTCFullYear","_id":"4eea847aa4c86c4dba00005d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the full year for a specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetUTCFullYear(\x3cem\x3eyearValue\x3c/em\x3e[, \x3cem\x3emonthValue\x3c/em\x3e[, \x3cem\x3edayValue\x3c/em\x3e]])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eyearValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer specifying the numeric value of the year, for example, 1995. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emonthValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 11 representing the months January through December. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3edayValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 1 and 31 representing the day of the month. If you specify the \x3ccode\x3edayValue\x3c/code\x3e parameter, you must also specify the \x3ccode\x3emonthValue\x3c/code\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3emonthValue\x3c/code\x3e and \x3ccode\x3edayValue\x3c/code\x3e parameters, the values returned from the \x3ccode\x3egetMonth\x3c/code\x3e and \x3ccode\x3egetDate\x3c/code\x3e methods are used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetUTCFullYear\x3c/code\x3e attempts to update the other parameters and the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you specify 15 for \x3ccode\x3emonthValue\x3c/code\x3e, the year is incremented by 1 (year + 1), and 3 is used for the month.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCFullYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCFullYear\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCFullYear(1997);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCFullYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCFullYear\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCFullYear(1997);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCFullYear"\x3egetUTCFullYear\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setFullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setUTCFullYear "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/constructor","title":"Date.constructor","_id":"4eea847ba4c86c4dba00005e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eSee \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3eObject.constructor\x3c/a\x3e.\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent",
"title":"Object.Parent","_id":"4eea847da4c86c4dba00005f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3ePoints to an object\'s context.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__parent__\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eFor top-level objects, this is the e.g. window.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d " external" title \x3d "http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/" rel \x3d "external" href \x3d "http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/" target \x3d "_blank"\x3eSpiderMonkey change du jour: the special __parent__ property has been removed\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto","title":"Object.Proto","_id":"4eea847fa4c86c4dba000060","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRefers to the prototype of the object, which may be an object or \x3ccode\x3enull\x3c/code\x3e\x26nbsp;(which usually means the object is \x3ccode\x3eObject.prototype\x3c/code\x3e, which has no prototype). \x26nbsp;It is sometimes used to implement prototype-inheritance based property lookup.\x3c/p\x3e\n\x3cp\x3eThis property is deprecated and should not be used in new code: use \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/GetPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf"\x3eObject.getPrototypeOf\x3c/a\x3e\x3c/code\x3e\x26nbsp;instead.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3evar proto \x3d \x3cem\x3eobj\x3c/em\x3e.__proto__;\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3eNote: this is two underscores, followed by the five characters \x26quot;proto\x26quot;, followed by two more underscores.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eWhen an object is created, its \x3ccode\x3e__proto__\x3c/code\x3e property is set to constructing function\'s \x3ccode\x3eprototype\x3c/code\x3e property. For example \x3ccode\x3evar fred \x3d new Employee();\x3c/code\x3e will cause \x3ccode\x3efred.__proto__ \x3d Employee.prototype;\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eThis is used at runtime to look up properties which are not declared in the object directly. E.g. when \x3ccode\x3efred.doSomething()\x3c/code\x3e is executed and \x3ccode\x3efred\x3c/code\x3e does not contain a \x3ccode\x3edoSomething\x3c/code\x3e, \x3ccode\x3efred.__proto__\x3c/code\x3e is checked, which points to \x3ccode\x3eEmployee.prototype\x3c/code\x3e, which contains a \x3ccode\x3edoSomething\x3c/code\x3e, i.e. \x3ccode\x3efred.__proto__.doSomething()\x3c/code\x3e is invoked.\x3c/p\x3e\n\x3cp\x3eNote that \x3ccode\x3e\x3cem\x3e__proto__\x3c/em\x3e\x3c/code\x3e is a property of the instances, whereas \x3ccode\x3eprototype\x3c/code\x3e is a property of their constructor functions.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\x3cp\x3eThis example demonstrates that the \x3ccode\x3e__proto__\x3c/code\x3e property can be changed to point to a different object after initial construction. This change will alter the lookup results for object properties. This example also illustrates that all objects have \x3ccode\x3e__proto__\x3c/code\x3e, including the objects bound to the \x3ccode\x3eprototype\x3c/code\x3e property of functions. The object \x3ccode\x3e anOnion\x3c/code\x3e will have a \x3ccode\x3e__proto__\x3c/code\x3e property equal to \x3ccode\x3ePlant.prototype\x3c/code\x3e; if we write \x3ccode\x3eanOnion.foo\x3c/code\x3e, then we will lookup \x3ccode\x3efoo\x3c/code\x3e in the \x3ccode\x3eanOnion\x3c/code\x3e object first, then in \x3ccode\x3ePlant.prototype\x3c/code\x3e (the value of \x3ccode\x3eanOnion.__proto__\x3c/code\x3e), then in \x3ccode\x3eLifeform.prototype\x3c/code\x3e (the value of \x3ccode\x3ePlant.prototype\x3c/code\x3e set by the call to \x3ccode\x3eextend\x3c/code\x3e\x3ccode\x3e()\x3c/code\x3e), and finally in \x3ccode\x3eLifeform.__proto__\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction extend(child, supertype) {\n   child.prototype.__proto__ \x3d supertype.prototype;\n}\n\nextend(Animal, Lifeform);\nextend(Plant, Lifeform);\n\nvar anOnion \x3d new Plant();\x3c/pre\x3e\r\n        \n\x3cp\x3eHowever, this only applies to \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3eextensible\x3c/a\x3e objects:\x26nbsp;a non-extensible object\'s\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3e__proto__\x3c/code\x3e\x26nbsp;property (more generally, the object\'s prototype) cannot be changed:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar obj \x3d {};\nObject.preventExtensions(obj);\n\nobj.__proto__ \x3d {}; // throws a TypeError\x3c/pre\x3e\r\n        \n\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","Example"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDate","title":"Date.getDate","_id":"4eea847fa4c86c4dba000061","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the day of the month for the specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetDate()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetDate\x3c/code\x3e is an integer between 1 and 31.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getDate"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetDate\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 25 to the variable \x3ccode\x3eday\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nday \x3d Xmas95.getDate() \n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getDate"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetDate\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 25 to the variable \x3ccode\x3eday\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nday \x3d Xmas95.getDate() \n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDate"\x3egetUTCDate\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDay" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDay"\x3egetUTCDay\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setDate"\x3esetDate\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getDate "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDay","title":"Date.getDay","_id":"4eea8482a4c86c4dba000062","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the day of the week for the specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetDay()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetDay\x3c/code\x3e is an integer corresponding to the day of the week: 0 for Sunday, 1 for Monday, 2 for Tuesday, and so on.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getDay"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetDay\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 1 to \x3ccode\x3eweekday\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e. December 25, 1995, is a Monday.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;);\nweekday \x3d Xmas95.getDay();\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getDay"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetDay\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 1 to \x3ccode\x3eweekday\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e. December 25, 1995, is a Monday.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;);\nweekday \x3d Xmas95.getDay();\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDay" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDay"\x3egetUTCDay\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setDate"\x3esetDate\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getDay "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getHours","title":"Date.getHours","_id":"4eea8485a4c86c4dba000063","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the hour for the specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetHours()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetHours\x3c/code\x3e is an integer between 0 and 23.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getHours"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetHours\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 23 to the variable \x3ccode\x3ehours\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nhours \x3d Xmas95.getHours() \n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getHours"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetHours\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 23 to the variable \x3ccode\x3ehours\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nhours \x3d Xmas95.getHours() \n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCHours"\x3egetUTCHours\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setHours"\x3esetHours\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getHours "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMilliseconds","title":"Date.getMilliseconds","_id":"4eea848fa4c86c4dba000064","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the milliseconds in the specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetMilliseconds()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetMilliseconds\x3c/code\x3e is a number between 0 and 999.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getMilliseconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetMilliseconds\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the milliseconds portion of the current time to the variable \x3ccode\x3ems\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar ms;\nToday \x3d new Date();\nms \x3d Today.getMilliseconds(); \n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getMilliseconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetMilliseconds\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the milliseconds portion of the current time to the variable \x3ccode\x3ems\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar ms;\nToday \x3d new Date();\nms \x3d Today.getMilliseconds(); \n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds"\x3egetUTCMilliseconds\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMilliseconds"\x3esetMilliseconds\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getMilliseconds "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMinutes","title":"Date.getMinutes","_id":"4eea848fa4c86c4dba000065","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the minutes in the specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetMinutes()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetMinutes\x3c/code\x3e is an integer between 0 and 59.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getMinutes"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetMinutes\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 15 to the variable \x3ccode\x3eminutes\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nminutes \x3d Xmas95.getMinutes()\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getMinutes"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetMinutes\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 15 to the variable \x3ccode\x3eminutes\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nminutes \x3d Xmas95.getMinutes()\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMinutes"\x3egetUTCMinutes\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMinutes"\x3esetMinutes\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getMinutes "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMonth","title":"Date.getMonth","_id":"4eea8493a4c86c4dba000066","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the month in the specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetMonth()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetMonth\x3c/code\x3e is an integer between 0 and 11. 0 corresponds to January, 1 to February, and so on.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getMonth"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetMonth\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 11 to the variable \x3ccode\x3emonth\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nmonth \x3d Xmas95.getMonth() \n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getMonth"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetMonth\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 11 to the variable \x3ccode\x3emonth\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nmonth \x3d Xmas95.getMonth() \n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMonth"\x3egetUTCMonth\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMonth"\x3esetMonth\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getMonth "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getSeconds","title":"Date.getSeconds","_id":"4eea8497a4c86c4dba000067","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the seconds in the specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetSeconds()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetSeconds\x3c/code\x3e is an integer between 0 and 59.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getSeconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetSeconds\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 30 to the variable \x3ccode\x3esecs\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:30\x26quot;)\nsecs \x3d Xmas95.getSeconds()\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getSeconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetSeconds\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe second statement below assigns the value 30 to the variable \x3ccode\x3esecs\x3c/code\x3e, based on the value of the \x3ccode\x3eDate\x3c/code\x3e object \x3ccode\x3eXmas95\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas95 \x3d new Date(\x26quot;December 25, 1995 23:15:30\x26quot;)\nsecs \x3d Xmas95.getSeconds()\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCSeconds"\x3egetUTCSeconds\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setSeconds"\x3esetSeconds\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getSeconds "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTime","title":"Date.getTime","_id":"4eea849aa4c86c4dba000068","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the numeric value corresponding to the time for the specified date according to universal time.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e getTime() \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe value returned by the \x3ccode\x3egetTime\x3c/code\x3e method is the number of milliseconds since 1 January 1970 00:00:00 UTC. You can use this method to help assign a date and time to another \x3ccode\x3eDate\x3c/code\x3e object.\x3c/p\x3e\n\x3cp\x3eThis method is functionally equivalent to the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/valueOf"\x3evalueOf\x3c/a\x3e method.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3cspan id \x3d "Using_getTime_for_copying_dates"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing getTime for copying dates\x3c/h4\x3e\n\x3cp\x3eConstructing a date object with the identical time value.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar birthday \x3d new Date(1994, 12, 10);\nvar copy \x3d new Date();\ncopy.setTime(birthday.getTime());\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3cspan id \x3d "Measuring_execution_time"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eMeasuring execution time\x3c/h4\x3e\n\x3cp\x3eSubtracting two subsequent getTime calls on newly generated Date objects, give the time span between these two calls. This can be used to calculate the executing time of some operations.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar end, start;\n\nstart \x3d new Date();\nfor (var i \x3d 0; i \x26lt; 1000; i++)\n  Math.sqrt(i);\nend \x3d new Date();\n\n0 \x26\x26 console.log(\x26quot;Operation took \x26quot; + (end.getTime() - start.getTime()) + \x26quot; msec\x26quot;);\x3c/pre\x3e\r\n        \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3cspan id \x3d "Using_getTime_for_copying_dates"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing getTime for copying dates\x3c/h4\x3e\n\x3cp\x3eConstructing a date object with the identical time value.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar birthday \x3d new Date(1994, 12, 10);\nvar copy \x3d new Date();\ncopy.setTime(birthday.getTime());\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3cspan id \x3d "Measuring_execution_time"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eMeasuring execution time\x3c/h4\x3e\n\x3cp\x3eSubtracting two subsequent getTime calls on newly generated Date objects, give the time span between these two calls. This can be used to calculate the executing time of some operations.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar end, start;\n\nstart \x3d new Date();\nfor (var i \x3d 0; i \x26lt; 1000; i++)\n  Math.sqrt(i);\nend \x3d new Date();\n\n0 \x26\x26 console.log(\x26quot;Operation took \x26quot; + (end.getTime() - start.getTime()) + \x26quot; msec\x26quot;);\x3c/pre\x3e\r\n        \x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCHours"\x3egetUTCHours\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setTime" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setTime"\x3esetTime\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/valueOf"\x3evalueOf\x3c/a\x3e\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Using getTime for copying dates","Measuring execution time","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset","title":"Date.getTimezoneOffset","_id":"4eea849fa4c86c4dba000069","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the time-zone offset from UTC, in minutes, for the current locale.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e getTimezoneOffset() \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe time-zone offset is the difference, in minutes, between UTC\x26nbsp;and local time. Note that this means that the offset is positive if the local timezone is behind UTC\x26nbsp;and negative if it is ahead.\x26nbsp; For example, if your time zone is UTC+10 (Australian Eastern Standard Time), -600 will be returned. Daylight savings time prevents this value from being a constant even for a given locale\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getTimezoneOffset"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3egetTimezoneOffset\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3ex \x3d new Date()\ncurrentTimeZoneOffsetInHours \x3d x.getTimezoneOffset()/60\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getTimezoneOffset"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3egetTimezoneOffset\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3ex \x3d new Date()\ncurrentTimeZoneOffsetInHours \x3d x.getTimezoneOffset()/60\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using getTimezoneOffset"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDate","title":"Date.getUTCDate","_id":"4eea849fa4c86c4dba00006a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the day (date) of the month in the specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetUTCDate()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetUTCDate\x3c/code\x3e is an integer between 1 and 31.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCDate"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCDate\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the day portion of the current date to the variable \x3ccode\x3ed\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar d;\nToday \x3d new Date();\nd \x3d Today.getUTCDate(); \n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCDate"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCDate\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the day portion of the current date to the variable \x3ccode\x3ed\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar d;\nToday \x3d new Date();\nd \x3d Today.getUTCDate(); \n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDate"\x3egetDate\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDay" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDay"\x3egetUTCDay\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCDate"\x3esetUTCDate\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getUTCDate "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDay","title":"Date.getUTCDay","_id":"4eea84a3a4c86c4dba00006b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the day of the week in the specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetUTCDay()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetUTCDay\x3c/code\x3e is an integer corresponding to the day of the week: 0 for Sunday, 1 for Monday, 2 for Tuesday, and so on.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCDay"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCDay\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the weekday portion of the current date to the variable \x3ccode\x3eweekday\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar weekday;\nToday \x3d new Date()\nweekday \x3d Today.getUTCDay()\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCDay"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCDay\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the weekday portion of the current date to the variable \x3ccode\x3eweekday\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar weekday;\nToday \x3d new Date()\nweekday \x3d Today.getUTCDay()\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getDay" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDay"\x3egetDay\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDate"\x3egetUTCDate\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCDate"\x3esetUTCDate\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getUTCDay "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCHours","title":"Date.getUTCHours","_id":"4eea84a6a4c86c4dba00006c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the hours in the specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetUTCHours\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetUTCHours\x3c/code\x3e is an integer between 0 and 23.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCHours"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCHours\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the hours portion of the current time to the variable \x3ccode\x3ehrs\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar hrs;\nToday \x3d new Date();\nhrs \x3d Today.getUTCHours();\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCHours"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCHours\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the hours portion of the current time to the variable \x3ccode\x3ehrs\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar hrs;\nToday \x3d new Date();\nhrs \x3d Today.getUTCHours();\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getHours"\x3egetHours\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCHours"\x3esetUTCHours\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getUTCHours "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds","title":"Date.getUTCMilliseconds","_id":"4eea84a7a4c86c4dba00006d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the milliseconds in the specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetUTCMilliseconds()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetUTCMilliseconds\x3c/code\x3e is an integer between 0 and 999.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCMilliseconds_.3D"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCMilliseconds\x3c/code\x3e \x3d\x3c/h3\x3e\n\x3cp\x3eThe following example assigns the milliseconds portion of the current time to the variable \x3ccode\x3ems\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar ms;\nToday \x3d new Date();\nms \x3d Today.getUTCMilliseconds();\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMilliseconds"\x3egetMilliseconds\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds"\x3esetUTCmilliseconds\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getUTCMilliseconds \x3d"," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMinutes","title":"Date.getUTCMinutes","_id":"4eea84aaa4c86c4dba00006e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the minutes in the specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetUTCMinutes()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetUTCMinutes\x3c/code\x3e is an integer between 0 and 59.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCMinutes"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCMinutes\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the minutes portion of the current time to the variable \x3ccode\x3emin\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar min;\nToday \x3d new Date();\nmin \x3d Today.getUTCMinutes();\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCMinutes"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCMinutes\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the minutes portion of the current time to the variable \x3ccode\x3emin\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar min;\nToday \x3d new Date();\nmin \x3d Today.getUTCMinutes();\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMinutes"\x3egetMinutes\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMinutes"\x3esetUTCMinutes\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getUTCMinutes "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMonth","title":"Date.getUTCMonth","_id":"4eea84aca4c86c4dba00006f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the month of the specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetUTCMonth()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetUTCMonth\x3c/code\x3e is an integer between 0 and 11 corresponding to the month. 0 for January, 1 for February, 2 for March, and so on.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCMonth"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCMonth\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the month portion of the current date to the variable \x3ccode\x3emon\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar mon;\nToday \x3d new Date();\nmon \x3d Today.getUTCMonth();\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCMonth"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCMonth\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the month portion of the current date to the variable \x3ccode\x3emon\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar mon;\nToday \x3d new Date();\nmon \x3d Today.getUTCMonth();\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMonth"\x3egetMonth\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMonth"\x3esetUTCMonth\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getUTCMonth "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCSeconds","title":"Date.getUTCSeconds","_id":"4eea84ada4c86c4dba000070","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the seconds in the specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetUTCSeconds()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3egetUTCSeconds\x3c/code\x3e is an integer between 0 and 59.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCSeconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCSeconds\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the seconds portion of the current time to the variable \x3ccode\x3esec\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar sec;\nToday \x3d new Date();\nsec \x3d Today.getUTCSeconds();\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_getUTCSeconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3egetUTCSeconds\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example assigns the seconds portion of the current time to the variable \x3ccode\x3esec\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nvar sec;\nToday \x3d new Date();\nsec \x3d Today.getUTCSeconds();\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getSeconds"\x3egetSeconds\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCSeconds"\x3esetUTCSeconds\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using getUTCSeconds "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getYear","title":"Date.getYear","_id":"4eea84b1a4c86c4dba000071","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the year in the specified date according to local time.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ngetYear()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3egetYear\x3c/code\x3e is no longer used and has been replaced by the \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/getFullYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e method.\n\x3c/p\x3e\x3cp\x3eThe \x3ccode\x3egetYear\x3c/code\x3e method returns the year minus 1900; thus:\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For years greater than or equal to 2000, the value returned by \x3ccode\x3egetYear\x3c/code\x3e is 100 or greater. For example, if the year is 2026, \x3ccode\x3egetYear\x3c/code\x3e returns 126.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cul\x3e\x3cli\x3e For years between and including 1900 and 1999, the value returned by \x3ccode\x3egetYear\x3c/code\x3e is between 0 and 99. For example, if the year is 1976, \x3ccode\x3egetYear\x3c/code\x3e returns 76.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cul\x3e\x3cli\x3e For years less than 1900, the value returned by \x3ccode\x3egetYear\x3c/code\x3e is less than 0. For example, if the year is 1800, \x3ccode\x3egetYear\x3c/code\x3e returns -100.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eTo take into account years before and after 2000, you should use \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/getFullYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e\x3c/code\x3e instead of \x3ccode\x3egetYear\x3c/code\x3e so that the year is specified in full.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Backward_Compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Backward Compatibility \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "JavaScript_1.2_and_earlier"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e JavaScript 1.2 and earlier \x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3egetYear\x3c/code\x3e method returns either a 2-digit or 4-digit year:\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For years between and including 1900 and 1999, the value returned by \x3ccode\x3egetYear\x3c/code\x3e is the year minus 1900. For example, if the year is 1976, the value returned is 76.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cul\x3e\x3cli\x3e For years less than 1900 or greater than 1999, the value returned by \x3ccode\x3egetYear\x3c/code\x3e is the four-digit year. For example, if the year is 1856, the value returned is 1856. If the year is 2026, the value returned is 2026.\n\x3c/li\x3e\x3c/ul\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "JavaScript_1.2_and_earlier"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e JavaScript 1.2 and earlier \x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3egetYear\x3c/code\x3e method returns either a 2-digit or 4-digit year:\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For years between and including 1900 and 1999, the value returned by \x3ccode\x3egetYear\x3c/code\x3e is the year minus 1900. For example, if the year is 1976, the value returned is 76.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cul\x3e\x3cli\x3e For years less than 1900 or greater than 1999, the value returned by \x3ccode\x3egetYear\x3c/code\x3e is the four-digit year. For example, if the year is 1856, the value returned is 1856. If the year is 2026, the value returned is 2026.\n\x3c/li\x3e\x3c/ul\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Years_between_1900_and_1999"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Years between 1900 and 1999 \x3c/h4\x3e\n\x3cp\x3eThe second statement assigns the value 95 to the variable \x3ccode\x3eyear\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nyear \x3d Xmas.getYear() // returns 95\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Years_above_1999"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Years above 1999 \x3c/h4\x3e\n\x3cp\x3eThe second statement assigns the value 100 to the variable \x3ccode\x3eyear\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas \x3d new Date(\x26quot;December 25, 2000 23:15:00\x26quot;)\nyear \x3d Xmas.getYear() // returns 100\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example:_Years_below_1900"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Years below 1900 \x3c/h4\x3e\n\x3cp\x3eThe second statement assigns the value -100 to the variable \x3ccode\x3eyear\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas \x3d new Date(\x26quot;December 25, 1800 23:15:00\x26quot;)\nyear \x3d Xmas.getYear() // returns -100\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_Setting_and_getting_a_year_between_1900_and_1999"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Setting and getting a year between 1900 and 1999 \x3c/h4\x3e\n\x3cp\x3eThe second statement assigns the value 95 to the variable \x3ccode\x3eyear\x3c/code\x3e, representing the year 1995.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas.setYear(95)\nyear \x3d Xmas.getYear() // returns 95 \n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Years_between_1900_and_1999"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Years between 1900 and 1999 \x3c/h4\x3e\n\x3cp\x3eThe second statement assigns the value 95 to the variable \x3ccode\x3eyear\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas \x3d new Date(\x26quot;December 25, 1995 23:15:00\x26quot;)\nyear \x3d Xmas.getYear() // returns 95\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Years_above_1999"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Years above 1999 \x3c/h4\x3e\n\x3cp\x3eThe second statement assigns the value 100 to the variable \x3ccode\x3eyear\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas \x3d new Date(\x26quot;December 25, 2000 23:15:00\x26quot;)\nyear \x3d Xmas.getYear() // returns 100\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example:_Years_below_1900"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Years below 1900 \x3c/h4\x3e\n\x3cp\x3eThe second statement assigns the value -100 to the variable \x3ccode\x3eyear\x3c/code\x3e.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas \x3d new Date(\x26quot;December 25, 1800 23:15:00\x26quot;)\nyear \x3d Xmas.getYear() // returns -100\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_Setting_and_getting_a_year_between_1900_and_1999"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Setting and getting a year between 1900 and 1999 \x3c/h4\x3e\n\x3cp\x3eThe second statement assigns the value 95 to the variable \x3ccode\x3eyear\x3c/code\x3e, representing the year 1995.\n\x3c/p\x3e\n\x3cpre\x3e\nXmas.setYear(95)\nyear \x3d Xmas.getYear() // returns 95 \n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/getFullYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/getUTCFullYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/getUTCFullYear"\x3egetUTCFullYear\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/setYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/setYear"\x3esetYear\x3c/a\x3e\n\x3c/p\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Parameters "," Description "," Backward Compatibility "," JavaScript 1.2 and earlier "," Examples "," Example: Years between 1900 and 1999 "," Example: Years above 1999 "," Example: Years below 1900 "," Example: Setting and getting a year between 1900 and 1999 "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setDate","title":"Date.setDate","_id":"4eea84b2a4c86c4dba000072","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eSets the day of the month for a specified date according to local time.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e setDate(\x3cem\x3edayValue\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3edayValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eAn integer from 1 to 31, representing the day of the month.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf the parameter you specify is outside of the expected range, \x3ccode\x3esetDate\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 0 for \x3ccode\x3edayValue\x3c/code\x3e, the date will be set to the last day of the previous month.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setDate"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esetDate\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe second statement below changes the day for \x3ccode\x3etheBigDay\x3c/code\x3e to July 24 from its original value.\x3c/p\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date(\x26quot;July 27, 1962 23:30:00\x26quot;)\ntheBigDay.setDate(24) \n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setDate"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esetDate\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe second statement below changes the day for \x3ccode\x3etheBigDay\x3c/code\x3e to July 24 from its original value.\x3c/p\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date(\x26quot;July 27, 1962 23:30:00\x26quot;)\ntheBigDay.setDate(24) \n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDate"\x3egetDate\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCDate"\x3esetUTCDate\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using setDate","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setHours","title":"Date.setHours","_id":"4eea84c4a4c86c4dba000073","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eSets the hours for a specified date according to local time.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetHours(\x3ci\x3ehoursValue\x3c/i\x3e[, \x3ci\x3eminutesValue\x3c/i\x3e[, \x3ci\x3esecondsValue\x3c/i\x3e[, \x3cem\x3emsValue\x3c/em\x3e]]])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Versions_prior_to_JavaScript_1.3"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Versions prior to JavaScript 1.3 \x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3e\nsetHours(\x3ci\x3ehoursValue\x3c/i\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Versions_prior_to_JavaScript_1.3"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Versions prior to JavaScript 1.3 \x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3e\nsetHours(\x3ci\x3ehoursValue\x3c/i\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ehoursValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 23, representing the hour. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eminutesValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59, representing the minutes. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3esecondsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59, representing the seconds. If you specify the \x3ccode\x3esecondsValue\x3c/code\x3e parameter, you must also specify the \x3ccode\x3eminutesValue\x3c/code\x3e. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number between 0 and 999, representing the milliseconds. If you specify the \x3ccode\x3emsValue\x3c/code\x3e parameter, you must also specify the \x3ccode\x3eminutesValue\x3c/code\x3e and \x3ccode\x3esecondsValue\x3c/code\x3e. \x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3eminutesValue\x3c/code\x3e, \x3ccode\x3esecondsValue\x3c/code\x3e, and \x3ccode\x3emsValue\x3c/code\x3e parameters, the values returned from the \x3ccode\x3egetUTCMinutes\x3c/code\x3e, \x3ccode\x3egetUTCSeconds\x3c/code\x3e, and \x3ccode\x3egetMilliseconds\x3c/code\x3e methods are used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetHours\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 100 for \x3ccode\x3esecondsValue\x3c/code\x3e, the minutes will be incremented by 1 (min + 1), and 40 will be used for seconds.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_setHours"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetHours\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay.setHours(7)\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_setHours"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetHours\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay.setHours(7)\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/getHours" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/getHours"\x3egetHours\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCHours" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCHours"\x3esetUTCHours\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Versions prior to JavaScript 1.3 "," Parameters "," Description "," Examples "," Example: Using setHours "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMilliseconds","title":"Date.setMilliseconds","_id":"4eea84c6a4c86c4dba000074","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the milliseconds for a specified date according to local time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetMilliseconds(\x3cem\x3emillisecondsValue\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emillisecondsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number between 0 and 999, representing the milliseconds.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you specify a number outside the expected range, the date information in the \x3ccode\x3eDate\x3c/code\x3e object is updated accordingly. For example, if you specify 1005, the number of seconds is incremented by 1, and 5 is used for the milliseconds.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setMilliseconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetMilliseconds\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setMilliseconds(100);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setMilliseconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetMilliseconds\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setMilliseconds(100);\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMilliseconds"\x3egetMilliseconds\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds"\x3esetUTCMilliseconds\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setMilliseconds "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMinutes","title":"Date.setMinutes","_id":"4eea84c6a4c86c4dba000075","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eSets the minutes for a specified date according to local time.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetMinutes(\x3ci\x3eminutesValue\x3c/i\x3e[, \x3ci\x3esecondsValue\x3c/i\x3e[, \x3cem\x3emsValue\x3c/em\x3e]])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Versions_prior_to_JavaScript_1.3"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Versions prior to JavaScript 1.3 \x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3e\nsetMinutes(\x3ci\x3eminutesValue\x3c/i\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Versions_prior_to_JavaScript_1.3"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Versions prior to JavaScript 1.3 \x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3e\nsetMinutes(\x3ci\x3eminutesValue\x3c/i\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eminutesValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59, representing the minutes. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3esecondsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59, representing the seconds. If you specify the \x3ccode\x3esecondsValue\x3c/code\x3e parameter, you must also specify the \x3ccode\x3eminutesValue\x3c/code\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number between 0 and 999, representing the milliseconds. If you specify the \x3ccode\x3emsValue\x3c/code\x3e parameter, you must also specify the \x3ccode\x3eminutesValue\x3c/code\x3e and \x3ccode\x3esecondsValue\x3c/code\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3esecondsValue\x3c/code\x3e and \x3ccode\x3emsValue\x3c/code\x3e parameters, the values returned from \x3ccode\x3egetSeconds\x3c/code\x3e and \x3ccode\x3egetMilliseconds\x3c/code\x3e methods are used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetMinutes\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 100 for \x3ccode\x3esecondsValue\x3c/code\x3e, the minutes (\x3ccode\x3eminutesValue\x3c/code\x3e) will be incremented by 1 (\x3ccode\x3eminutesValue\x3c/code\x3e + 1), and 40 will be used for seconds.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_setMinutes"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetMinutes\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay.setMinutes(45)\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_setMinutes"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetMinutes\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay.setMinutes(45)\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/getMinutes" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/getMinutes"\x3egetMinutes\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCMinutes" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCMinutes"\x3esetUTCMinutes\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Versions prior to JavaScript 1.3 "," Parameters "," Description "," Examples "," Example: Using setMinutes "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setSeconds","title":"Date.setSeconds","_id":"4eea84c7a4c86c4dba000076","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eSets the seconds for a specified date according to local time.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetSeconds(\x3ci\x3esecondsValue\x3c/i\x3e[, \x3cem\x3emsValue\x3c/em\x3e])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Versions_prior_to_JavaScript_1.3"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Versions prior to JavaScript 1.3 \x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3e\nsetSeconds(\x3ci\x3esecondsValue\x3c/i\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Versions_prior_to_JavaScript_1.3"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Versions prior to JavaScript 1.3 \x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3e\nsetSeconds(\x3ci\x3esecondsValue\x3c/i\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3esecondsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number between 0 and 999, representing the milliseconds.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3emsValue\x3c/code\x3e parameter, the value returned from the \x3ccode\x3egetMilliseconds\x3c/code\x3e method is used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetSeconds\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 100 for \x3ccode\x3esecondsValue\x3c/code\x3e, the minutes stored in the \x3ccode\x3eDate\x3c/code\x3e object will be incremented by 1, and 40 will be used for seconds.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_setSeconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetSeconds\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay.setSeconds(30)\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_setSeconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetSeconds\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay.setSeconds(30)\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/getSeconds" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/getSeconds"\x3egetSeconds\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCSeconds" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCSeconds"\x3esetUTCSeconds\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Versions prior to JavaScript 1.3 "," Parameters "," Description "," Examples "," Example: Using setSeconds "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMonth","title":"Date.setMonth","_id":"4eea84caa4c86c4dba000077","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eSet the month for a specified date according to local time.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetMonth(\x3ci\x3emonthValue\x3c/i\x3e[, \x3cem\x3edayValue\x3c/em\x3e])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Versions_prior_to_JavaScript_1.3"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Versions prior to JavaScript 1.3 \x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3e\nsetMonth(\x3ci\x3emonthValue\x3c/i\x3e) \x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Versions_prior_to_JavaScript_1.3"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Versions prior to JavaScript 1.3 \x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3e\nsetMonth(\x3ci\x3emonthValue\x3c/i\x3e) \x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Parameter"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameter \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emonthValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 11 (representing the months January through December). \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3edayValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer from 1 to 31, representing the day of the month.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3edayValue\x3c/code\x3e parameter, the value returned from the \x3ccode\x3egetDate\x3c/code\x3e method is used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetMonth\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 15 for \x3ccode\x3emonthValue\x3c/code\x3e, the year will be incremented by 1 (year + 1), and 3 will be used for month.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_setMonth"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetMonth\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay.setMonth(6)\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_setMonth"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetMonth\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay.setMonth(6)\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/getMonth" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/getMonth"\x3egetMonth\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCMonth" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCMonth"\x3esetUTCMonth\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Versions prior to JavaScript 1.3 "," Parameter "," Description "," Examples "," Example: Using setMonth "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCDate","title":"Date.setUTCDate","_id":"4eea84cba4c86c4dba000078","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the day of the month for a specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetUTCDate(\x3cem\x3edayValue\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3edayValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer from 1 to 31, representing the day of the month.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetUTCDate\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 40 for \x3ccode\x3edayValue\x3c/code\x3e, and the month stored in the \x3ccode\x3eDate\x3c/code\x3e object is June, the day will be changed to 10 and the month will be incremented to July.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCDate"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCDate\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCDate(20);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCDate"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCDate\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCDate(20);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDate"\x3egetUTCDate\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setDate"\x3esetDate\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setUTCDate "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setTime","title":"Date.setTime","_id":"4eea84cba4c86c4dba000079","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the \x3ccode\x3eDate\x3c/code\x3e object to the time represented by a number of milliseconds since January 1, 1970, 00:00:00 UTC.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetTime(\x3cem\x3etimeValue\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3etimeValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer representing the number of milliseconds since 1 January 1970, 00:00:00 UTC.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3esetTime\x3c/code\x3e method to help assign a date and time to another \x3ccode\x3eDate\x3c/code\x3e object.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setTime"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetTime\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date(\x26quot;July 1, 1999\x26quot;)\nsameAsBigDay \x3d new Date()\nsameAsBigDay.setTime(theBigDay.getTime())\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setTime"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetTime\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date(\x26quot;July 1, 1999\x26quot;)\nsameAsBigDay \x3d new Date()\nsameAsBigDay.setTime(theBigDay.getTime())\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getTime" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTime"\x3egetTime\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setUTCHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCHours"\x3esetUTCHours\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setTime "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCHours","title":"Date.setUTCHours","_id":"4eea84cca4c86c4dba00007a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the hour for a specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetUTCHours(\x3cem\x3ehoursValue\x3c/em\x3e[, \x3cem\x3eminutesValue\x3c/em\x3e[, \x3cem\x3esecondsValue\x3c/em\x3e[, \x3cem\x3emsValue\x3c/em\x3e]]])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ehoursValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 23, representing the hour. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eminutesValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59, representing the minutes. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3esecondsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59, representing the seconds. If you specify the \x3ccode\x3esecondsValue\x3c/code\x3e parameter, you must also specify the \x3ccode\x3eminutesValue\x3c/code\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number between 0 and 999, representing the milliseconds. If you specify the \x3ccode\x3emsValue\x3c/code\x3e parameter, you must also specify the \x3ccode\x3eminutesValue\x3c/code\x3e and \x3ccode\x3esecondsValue\x3c/code\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3eminutesValue\x3c/code\x3e, \x3ccode\x3esecondsValue\x3c/code\x3e, and \x3ccode\x3emsValue\x3c/code\x3e parameters, the values returned from the \x3ccode\x3egetUTCMinutes\x3c/code\x3e, \x3ccode\x3egetUTCSeconds\x3c/code\x3e, and \x3ccode\x3egetUTCMilliseconds\x3c/code\x3e methods are used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetUTCHours\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 100 for \x3ccode\x3esecondsValue\x3c/code\x3e, the minutes will be incremented by 1 (min + 1), and 40 will be used for seconds.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCHours"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCHours\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCHours(8);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCHours"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCHours\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCHours(8);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCHours"\x3egetUTCHours\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setHours"\x3esetHours\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setUTCHours "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds","title":"Date.setUTCMilliseconds","_id":"4eea84cca4c86c4dba00007b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the milliseconds for a specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetUTCMilliseconds(\x3cem\x3emillisecondsValue\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emillisecondsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number between 0 and 999, representing the milliseconds.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetUTCMilliseconds\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 1100 for \x3ccode\x3emillisecondsValue\x3c/code\x3e, the seconds stored in the \x3ccode\x3eDate\x3c/code\x3e object will be incremented by 1, and 100 will be used for milliseconds.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCMilliseconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCMilliseconds\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCMilliseconds(500);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCMilliseconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCMilliseconds\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCMilliseconds(500);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds"\x3egetUTCMilliseconds\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMilliseconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMilliseconds"\x3esetMilliseconds\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setUTCMilliseconds "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMinutes","title":"Date.setUTCMinutes","_id":"4eea84cfa4c86c4dba00007c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the minutes for a specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetUTCMinutes(\x3cem\x3eminutesValue\x3c/em\x3e[, \x3cem\x3esecondsValue\x3c/em\x3e[, \x3cem\x3emsValue\x3c/em\x3e]])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eminutesValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59, representing the minutes. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3esecondsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59, representing the seconds. If you specify the \x3ccode\x3esecondsValue\x3c/code\x3e parameter, you must also specify the \x3ccode\x3eminutesValue\x3c/code\x3e. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number between 0 and 999, representing the milliseconds. If you specify the \x3ccode\x3emsValue\x3c/code\x3e parameter, you must also specify the \x3ccode\x3eminutesValue\x3c/code\x3e and \x3ccode\x3esecondsValue\x3c/code\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3esecondsValue\x3c/code\x3e and \x3ccode\x3emsValue\x3c/code\x3e parameters, the values returned from \x3ccode\x3egetUTCSeconds\x3c/code\x3e and \x3ccode\x3egetUTCMilliseconds\x3c/code\x3e methods are used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetUTCMinutes\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 100 for \x3ccode\x3esecondsValue\x3c/code\x3e, the minutes (\x3ccode\x3eminutesValue\x3c/code\x3e) will be incremented by 1 (\x3ccode\x3eminutesValue\x3c/code\x3e + 1), and 40 will be used for seconds.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCMinutes"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCMinutes\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCMinutes(43);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCMinutes"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCMinutes\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCMinutes(43);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMinutes"\x3egetUTCMinutes\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMinutes"\x3esetMinutes\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setUTCMinutes "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCMonth","title":"Date.setUTCMonth","_id":"4eea84d0a4c86c4dba00007d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the month for a specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetUTCMonth(\x3cem\x3emonthValue\x3c/em\x3e[, \x3cem\x3edayValue\x3c/em\x3e])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emonthValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 11, representing the months January through December. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3edayValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer from 1 to 31, representing the day of the month.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3edayValue\x3c/code\x3e parameter, the value returned from the \x3ccode\x3egetUTCDate\x3c/code\x3e method is used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetUTCMonth\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 15 for \x3ccode\x3emonthValue\x3c/code\x3e, the year will be incremented by 1 (year + 1), and 3 will be used for month.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCMonth"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCMonth\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCMonth(11);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCMonth"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCMonth\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCMonth(11);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCMonth"\x3egetUTCMonth\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setMonth"\x3esetMonth\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setUTCMonth "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setUTCSeconds","title":"Date.setUTCSeconds","_id":"4eea84d1a4c86c4dba00007e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eSets the seconds for a specified date according to universal time.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetUTCSeconds(\x3cem\x3esecondsValue\x3c/em\x3e[, \x3cem\x3emsValue\x3c/em\x3e])\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3esecondsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 0 and 59. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3emsValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number between 0 and 999, representing the milliseconds.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf you do not specify the \x3ccode\x3emsValue\x3c/code\x3e parameter, the value returned from the \x3ccode\x3egetUTCMilliseconds\x3c/code\x3e methods is used.\n\x3c/p\x3e\x3cp\x3eIf a parameter you specify is outside of the expected range, \x3ccode\x3esetUTCSeconds\x3c/code\x3e attempts to update the date information in the \x3ccode\x3eDate\x3c/code\x3e object accordingly. For example, if you use 100 for \x3ccode\x3esecondsValue\x3c/code\x3e, the minutes stored in the \x3ccode\x3eDate\x3c/code\x3e object will be incremented by 1, and 40 will be used for seconds.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCSeconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCSeconds\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCSeconds(20);\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setUTCSeconds"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetUTCSeconds\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\ntheBigDay \x3d new Date();\ntheBigDay.setUTCSeconds(20);\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getUTCSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCSeconds"\x3egetUTCSeconds\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/setSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setSeconds"\x3esetSeconds\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using setUTCSeconds "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setYear","title":"Date.setYear","_id":"4eea84d1a4c86c4dba00007f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eSets the year for a specified date according to local time.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsetYear(\x3ci\x3eyearValue\x3c/i\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eyearValue\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3esetYear\x3c/code\x3e is no longer used and has been replaced by the \x3ccode\x3esetFullYear\x3c/code\x3e method.\n\x3c/p\x3e\x3cp\x3eIf \x3ccode\x3eyearValue\x26lt;/code. is a number between 0 and 99 (inclusive), then the year for \x26lt;code\x26gt;dateObjectName\x3c/code\x3e is set to 1900 + \x3ccode\x3eyearValue\x3c/code\x3e. Otherwise, the year for \x3ccode\x3edateObjectName\x3c/code\x3e is set to \x3ccode\x3eyearValue\x3c/code\x3e.\n\x3c/p\x3e\x3cp\x3eTo take into account years before and after 2000, you should use \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/setFullYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e\x3c/code\x3e instead of \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/setYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/setYear"\x3esetYear\x3c/a\x3e\x3c/code\x3e so that the year is specified in full.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetYear\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe first two lines set the year to 1996. The third sets the year to 2000.\n\x3c/p\x3e\n\x3cpre\x3e\ntheBigDay.setYear(96)\ntheBigDay.setYear(1996)\ntheBigDay.setYear(2000)\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_setYear"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esetYear\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe first two lines set the year to 1996. The third sets the year to 2000.\n\x3c/p\x3e\n\x3cpre\x3e\ntheBigDay.setYear(96)\ntheBigDay.setYear(1996)\ntheBigDay.setYear(2000)\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/getYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/getYear"\x3egetYear\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/setFullYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/setFullYear"\x3esetFullYear\x3c/a\x3e,\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCFullYear" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Date/setUTCFullYear"\x3esetUTCFullYear\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Parameters "," Description "," Examples "," Example: Using setYear "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toDateString","title":"Date.toDateString","_id":"4eea84d2a4c86c4dba000080","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the date portion of a \x3ccode\x3eDate\x3c/code\x3e object in human readable form in American English.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript ?\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3edate\x3c/em\x3e.toDateString()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e instances refer to a specific point in time. Calling \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toString"\x3etoString\x3c/a\x3e will return the date formatted in a human readable form in American English. In \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, this consists of the date portion (day, month, and year) followed by the time portion (hours, minutes, seconds, and time zone). Sometimes it is desirable to obtain a string of the date portion; such a thing can be accomplished with the \x3ccode\x3etoDateString\x3c/code\x3e method.\x3c/p\x3e\n\x3cp\x3eThe \x3ccode\x3etoDateString\x3c/code\x3e method is especially useful because compliant engines implementing \x3ca title \x3d "en/ECMAScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e may differ in the string obtained from \x3ccode\x3etoString\x3c/code\x3e for \x3ccode\x3eDate\x3c/code\x3e objects, as the format is implementation-dependent and simple string slicing approaches may not produce consistent results across multiple engines.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_A_basic_usage_of_toDateString"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: A basic usage of \x3ccode\x3etoDateString\x3c/code\x3e\x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3evar d \x3d new Date(1993, 6, 28, 14, 39, 7);\nprintln(d.toString()); // prints Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)\nprintln(d.toDateString()); // prints Wed Jul 28 1993\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleDateString"\x3etoLocaleDateString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toTimeString"\x3etoTimeString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","Example","Example: A basic usage of toDateString","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toISOString","title":"Date.toISOString","_id":"4eea84d4a4c86c4dba000081","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eJavaScript provides a direct way to convert a date object into a string in ISO format, the \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://en.wikipedia.org/wiki/ISO_8601" title \x3d "http://en.wikipedia.org/wiki/ISO_8601" target \x3d "_blank"\x3eISO 8601 Extended Format\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eThe \x3ccode\x3eDate.prototype.toISOString\x3c/code\x3e is an ECMAScript 5 addition. Format is as follows: \x3cstrong\x3eYYYY-MM-DDTHH:mm:ss.sssZ\x3c/strong\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3emyDate.toISOString() \x3c/code\x3e\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e \x3ccode\x3emydate\x3c/code\x3e is a \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e object.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar today \x3d new Date(\x26quot;05 October 2011 14:48 UTC\x26quot;);\nalert(today.toISOString()); // Returns 2011-10-10T14:48:00.000z\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee Also\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3ca title \x3d "toUTCString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toUTCString"\x3etoUTCString()\x3c/a\x3e\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Examples","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toJSON",
"title":"Date.toJSON","_id":"4eea84d6a4c86c4dba000082","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a \x3ca title \x3d "en/JSON" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JSON"\x3eJSON\x3c/a\x3e representation of the Date object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3edate\x3c/em\x3e.toJSON()\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e instances refer to a specific point in time. Calling \x3ccode\x3etoJSON()\x3c/code\x3e returns a JSON formatted string representing the Date object\'s value. \x26nbsp;This method is generally intended to, by default, usefully serialize Date objects during JSON serialization.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_A_basic_usage_of_toDateString"\x3e\x3c/span\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar jsonDate \x3d (new Date()).toJSON();\nvar backToDate \x3d new Date(jsonDate);\n\n0 \x26\x26 console.log(\x26quot;Serialized date object: \x26quot; + jsonDate);\x3c/pre\x3e\r\n        \x3c/div\x3e'],"sectionNames":["Summary","Syntax","Description",
"Example"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toGMTString","title":"Date.toGMTString","_id":"4eea84d6a4c86c4dba000083","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eConverts a date to a string, using Internet GMT conventioins.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e toGMTString() \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cdiv class \x3d "note"\x3e\x3ccode\x3etoGMTString\x3c/code\x3e is deprecated and should no longer be used, it\'s only there for backwards compatibility, use \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Date/toUTCString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toUTCString"\x3etoUTCString\x3c/a\x3e instead.\x3c/div\x3e\n\x3cp\x3eThe exact format of the value returned by \x3ccode\x3etoGMTString\x3c/code\x3e varies according to the platform and browser, in general it should represent a human readable date string.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toGMTString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoGMTString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, today is a \x3ccode\x3eDate\x3c/code\x3e object:\x3c/p\x3e\n\x3cpre\x3etoday.toGMTString()\n\x3c/pre\x3e\n\x3cp\x3eIn this example, the \x3ccode\x3etoGMTString\x3c/code\x3e method converts the date to GMT (UTC) using the operating system\'s time-zone offset and returns a string value that is similar to the following form. The exact format depends on the platform.\x3c/p\x3e\n\x3cpre\x3eMon, 18 Dec 1995 17:28:35 GMT\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toGMTString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoGMTString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, today is a \x3ccode\x3eDate\x3c/code\x3e object:\x3c/p\x3e\n\x3cpre\x3etoday.toGMTString()\n\x3c/pre\x3e\n\x3cp\x3eIn this example, the \x3ccode\x3etoGMTString\x3c/code\x3e method converts the date to GMT (UTC) using the operating system\'s time-zone offset and returns a string value that is similar to the following form. The exact format depends on the platform.\x3c/p\x3e\n\x3cpre\x3eMon, 18 Dec 1995 17:28:35 GMT\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleString"\x3etoLocaleString\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toUTCString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toUTCString"\x3etoUTCString\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using toGMTString","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toUTCString","title":"Date.toUTCString","_id":"4eea84d7a4c86c4dba000084","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eConverts a date to a string, using the universal time convention.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3etoUTCString() \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3etoUTCString\x3c/code\x3e is a readable string in American English in the \x3cabbr title \x3d "Coordinated Universal Time"\x3eUTC\x3c/abbr\x3e time zone. The format of the return value may vary according to the platform. The most common return value is a RFC-1123 formatted date stamp, which is a slightly updated version of RFC-822 date stamps.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toUTCString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoUTCString\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3evar today \x3d new Date();\nvar UTCstring \x3d today.toUTCString();\n// Mon, 03 Jul 2006 21:44:38 GMT\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toUTCString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoUTCString\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3evar today \x3d new Date();\nvar UTCstring \x3d today.toUTCString();\n// Mon, 03 Jul 2006 21:44:38 GMT\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using toUTCString",
"See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString","title":"Date.toLocaleDateString","_id":"4eea84d7a4c86c4dba000085","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eConverts a date to a string, returning the \x26quot;date\x26quot; portion using the operating system\'s locale\'s conventions.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ntoLocaleDateString()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoLocaleDateString\x3c/code\x3e method relies on the underlying operating system in formatting dates. It converts the date to a string using the formatting convention of the operating system where the script is running. For example, in the United States, the month appears before the date (04/15/98), whereas in Germany the date appears before the month (15.04.98). If the operating system is not year-2000 compliant and does not use the full year for years before 1900 or over 2000, \x3ccode\x3etoLocaleDateString\x3c/code\x3e returns a string that is not year-2000 compliant. \x3ccode\x3etoLocaleDateString\x3c/code\x3e behaves similarly to \x3ccode\x3etoString\x3c/code\x3e when converting a year that the operating system does not properly format.\x3c/p\x3e\n\x3cp\x3eMethods such as \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDate"\x3egetDate\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMonth"\x3egetMonth\x3c/a\x3e\x3c/code\x3e, and \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getYullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e\x3c/code\x3e give more portable results than \x3ccode\x3etoLocaleDateString\x3c/code\x3e. Use \x3ccode\x3etoLocaleDateString\x3c/code\x3e when the intent is to display to the user a string formatted using the regional format chosen by the user. Be aware that this method, due to its nature, behaves differently depending on the operating system and on the user\'s settings.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLocaleDateString"\x3e\x3c/span\x3e\x3cspan id \x3d "Using_toLocaleDateString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing \x3ccode\x3etoLocaleDateString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3etoday\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object:\x3c/p\x3e\n\x3cpre\x3etoday \x3d new Date(95,11,18,17,28,35) //months are represented by 0 to 11\ntoday.toLocaleDateString()\n\x3c/pre\x3e\n\x3cp\x3eIn this example, \x3ccode\x3etoLocaleDateString\x3c/code\x3e returns a string value that is similar to the following form. The exact format depends on the platform, locale and user\'s settings.\x3c/p\x3e\n\x3cpre\x3e12/18/95\n\x3c/pre\x3e\n\x3cp\x3eYou shouldn\'t use this method in contexts where you rely on a particular format or locale.\x3c/p\x3e\n\x3cpre\x3e\x26quot;Last visit: \x26quot; + someDate.toLocaleDateString(); // Good example\n\x26quot;Last visit was at \x26quot; + someDate.toLocaleDateString(); // Bad example\x3c/pre\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLocaleDateString"\x3e\x3c/span\x3e\x3cspan id \x3d "Using_toLocaleDateString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing \x3ccode\x3etoLocaleDateString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3etoday\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object:\x3c/p\x3e\n\x3cpre\x3etoday \x3d new Date(95,11,18,17,28,35) //months are represented by 0 to 11\ntoday.toLocaleDateString()\n\x3c/pre\x3e\n\x3cp\x3eIn this example, \x3ccode\x3etoLocaleDateString\x3c/code\x3e returns a string value that is similar to the following form. The exact format depends on the platform, locale and user\'s settings.\x3c/p\x3e\n\x3cpre\x3e12/18/95\n\x3c/pre\x3e\n\x3cp\x3eYou shouldn\'t use this method in contexts where you rely on a particular format or locale.\x3c/p\x3e\n\x3cpre\x3e\x26quot;Last visit: \x26quot; + someDate.toLocaleDateString(); // Good example\n\x26quot;Last visit was at \x26quot; + someDate.toLocaleDateString(); // Bad example\x3c/pre\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toDateString"\x3etoDateString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString"\x3etoLocaleTimeString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters ","Description","Examples","Using toLocaleDateString","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toLocaleString","title":"Object.toLocaleString","_id":"4eea84d8a4c86c4dba000086","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the object. This method is meant to be overriden by derived objects for locale-specific purposes.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262 Edition 3\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ntoLocaleString()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eObject\x3c/code\x3e\'s \x3ccode\x3etoLocaleString\x3c/code\x3e returns the result of calling \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e.\n\x3c/p\x3e\x3cp\x3eThis function is provided to give objects a generic \x3ccode\x3etoLocaleString\x3c/code\x3e method, even though not all may use it. Currently, only \x3ccode\x3eArray\x3c/code\x3e, \x3ccode\x3eNumber\x3c/code\x3e, and \x3ccode\x3eDate\x3c/code\x3e override \x3ccode\x3etoLocaleString\x3c/code\x3e.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString",
"title":"Date.toLocaleTimeString","_id":"4eea84d9a4c86c4dba000087","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eConverts a date to a string, returning the \x26quot;time\x26quot; portion using the current locale\'s conventions.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e toLocaleTimeString() \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoLocaleTimeString\x3c/code\x3e method relies on the underlying operating system in formatting dates. It converts the date to a string using the formatting convention of the operating system where the script is running. For example, in the United States, the month appears before the date (04/15/98), whereas in Germany the date appears before the month (15.04.98).\x3c/p\x3e\n\x3cp\x3eMethods such as \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getHours"\x3egetHours\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMinutes"\x3egetMinutes\x3c/a\x3e\x3c/code\x3e, and \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getSeconds"\x3egetSeconds\x3c/a\x3e\x3c/code\x3e give more consistent results than \x3ccode\x3etoLocaleTimeString\x3c/code\x3e. Use \x3ccode\x3etoLocaleTimeString\x3c/code\x3e when the intent is to display to the user a string formatted using the regional format chosen by the user. Be aware that this method, due to its nature, behaves differently depending on the operating system and on the user\'s settings.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_toLocaleTimeString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing \x3ccode\x3etoLocaleTimeString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3etoday\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object:\x3c/p\x3e\n\x3cpre\x3e\ntoday \x3d new Date(95,11,18,17,28,35) //months are represented by 0 to 11\ntoday.toLocaleTimeString()\n\x3c/pre\x3e\n\x3cp\x3eIn this example, \x3ccode\x3etoLocaleTimeString\x3c/code\x3e returns a string value that is similar to the following form. The exact format depends on the platform.\x3c/p\x3e\n\x3cpre\x3e\n17:28:35\n\x3c/pre\x3e\n\x3cp\x3eYou shouldn\'t use this method in contexts where you rely on a particular format or locale.\x3c/p\x3e\n\x3cpre\x3e\n\x26quot;Last visit: \x26quot; + someDate.toLocaleTimeString(); // Good example\n\x26quot;Last visit was at \x26quot; + someDate.toLocaleTimeString(); // Bad example\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_toLocaleTimeString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing \x3ccode\x3etoLocaleTimeString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3etoday\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object:\x3c/p\x3e\n\x3cpre\x3e\ntoday \x3d new Date(95,11,18,17,28,35) //months are represented by 0 to 11\ntoday.toLocaleTimeString()\n\x3c/pre\x3e\n\x3cp\x3eIn this example, \x3ccode\x3etoLocaleTimeString\x3c/code\x3e returns a string value that is similar to the following form. The exact format depends on the platform.\x3c/p\x3e\n\x3cpre\x3e\n17:28:35\n\x3c/pre\x3e\n\x3cp\x3eYou shouldn\'t use this method in contexts where you rely on a particular format or locale.\x3c/p\x3e\n\x3cpre\x3e\n\x26quot;Last visit: \x26quot; + someDate.toLocaleTimeString(); // Good example\n\x26quot;Last visit was at \x26quot; + someDate.toLocaleTimeString(); // Bad example\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toTimeString"\x3etoTimeString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString"\x3etoLocaleDateString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Using toLocaleTimeString","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleFormat","title":"Date.toLocaleFormat","_id":"4eea84dba4c86c4dba000088","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eConverts a date to a string using the specified formatting.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3ccode\x3e\x3cem\x3edateObj\x3c/em\x3e.toLocaleFormat(\x3cem\x3eformatString\x3c/em\x3e)\x3c/code\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eformatString\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A format string in the same format expected by the \x3ccode\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html" title \x3d "http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html" target \x3d "_blank"\x3estrftime()\x3c/a\x3e\x3c/code\x3e function in C. \x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoLocaleFormat()\x3c/code\x3e provides greater software control over the formatting of the generated date and/or time. Names for months and days of the week are localized using the operating system\'s locale. However, ordering of the day and month and other localization tasks are not handled automatically since you have control over the order in which they occur.You should take care that the format string is localized properly according to the user\'s system settings. Be aware that the locale used is not necessarily the same as the locale of the browser. Extension and XulRunner developers should know that just loading the format string from a \x3ccode\x3e.dtd\x3c/code\x3e or \x3ccode\x3e.properties\x3c/code\x3e file using a \x3ccode\x3e\x3ca class \x3d " external" rel \x3d "external" href \x3d "chrome://" title \x3d "chrome://" target \x3d "_blank"\x3echrome://\x3c/a\x3e\x3cem\x3esomedomain\x3c/em\x3e/locale/\x3c/code\x3e\x3cem\x3e\x3ccode\x3esomefile.ext\x3c/code\x3e\x3c/em\x3e URI should be \x3cstrong\x3eavoided\x3c/strong\x3e, as the \x3ccode\x3edtd\x3c/code\x3e/\x3ccode\x3eproperties\x3c/code\x3e file and the \x3ccode\x3etoLocaleFormat\x3c/code\x3e method does not not necessarily use the same locale, which could result in odd looking or even ambiguous or unreadable dates. Also note that the behavior of the used locale depends on the platform, and the user might customize the locale used, so using the system locale the choose the format string might in some cases not even be adequate. You might consider using some of the more general \x3ccode\x3etoLocale*\x3c/code\x3e methods of the \x3ccode\x3eDate\x3c/code\x3e object or doing your own custom localization of the date to be displayed using some of the \x3ccode\x3eget*\x3c/code\x3e methods of the \x3ccode\x3eDate\x3c/code\x3e object instead of using this method.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLocaleFormat"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoLocaleFormat\x3c/code\x3e\x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3evar today \x3d new Date();\nvar date \x3d today.toLocaleFormat(\x26quot;%A,\x26nbsp;%B\x26nbsp;%e,\x26nbsp;%Y\x26quot;); //\x26nbsp;Bad example\n\x3c/pre\x3e\n\x3cp\x3eIn this example, \x3ccode\x3etoLocaleFormat()\x3c/code\x3e returns a string such as \x26quot;Wednesday, October 3, 2007\x26quot;. Note that the format string in this example is not properly localized, which will result in the problems described above.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLocaleFormat"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoLocaleFormat\x3c/code\x3e\x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3evar today \x3d new Date();\nvar date \x3d today.toLocaleFormat(\x26quot;%A,\x26nbsp;%B\x26nbsp;%e,\x26nbsp;%Y\x26quot;); //\x26nbsp;Bad example\n\x3c/pre\x3e\n\x3cp\x3eIn this example, \x3ccode\x3etoLocaleFormat()\x3c/code\x3e returns a string such as \x26quot;Wednesday, October 3, 2007\x26quot;. Note that the format string in this example is not properly localized, which will result in the problems described above.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleDateString"\x3etoLocaleDateString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleTimeString"\x3etoLocaleTimeString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using toLocaleFormat","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleString","title":"Date.toLocaleString","_id":"4eea84dca4c86c4dba000089","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eConverts a date to a string, using the operating system\'s locale\'s conventions.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ntoLocaleString()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoLocaleString\x3c/code\x3e method relies on the underlying operating system in formatting dates. It converts the date to a string using the formatting convention of the operating system where the script is running. For example, in the United States, the month appears before the date (04/15/98), whereas in Germany the date appears before the month (15.04.98). If the operating system is not year-2000 compliant and does not use the full year for years before 1900 or over 2000, \x3ccode\x3etoLocaleString\x3c/code\x3e returns a string that is not year-2000 compliant. \x3ccode\x3etoLocaleString\x3c/code\x3e behaves similarly to \x3ccode\x3etoString\x3c/code\x3e when converting a year that the operating system does not properly format.\x3c/p\x3e\n\x3cp\x3eMethods such as \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getDate" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDate"\x3egetDate\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getMonth" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMonth"\x3egetMonth\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getYullYear" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear"\x3egetFullYear\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getHours" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getHours"\x3egetHours\x3c/a\x3e\x3c/code\x3e, \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getMinutes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMinutes"\x3egetMinutes\x3c/a\x3e\x3c/code\x3e, and \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/getSeconds" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getSeconds"\x3egetSeconds\x3c/a\x3e\x3c/code\x3e give more portable results than \x3ccode\x3etoLocaleString\x3c/code\x3e. Use \x3ccode\x3etoLocaleString\x3c/code\x3e when the intent is to display to the user a string formatted using the regional format chosen by the user. Be aware that this method, due to its nature, behaves differently depending on the operating system and on the user\'s settings.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_toLocaleString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing \x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3etoday\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3etoday \x3d new Date(95,11,18,17,28,35); //months are represented by 0 to 11\ntoday.toLocaleString();\n\x3c/pre\x3e\n\x3cp\x3eIn this example, \x3ccode\x3etoLocaleString\x3c/code\x3e returns a string value that is similar to the following form. The exact format depends on the platform, locale and user\'s settings.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e12/18/95 17:28:35\n\x3c/pre\x3e\n\x3cp\x3eYou shouldn\'t use this method in contexts where you rely on a particular format or locale.\x3c/p\x3e\n\x3cpre\x3e\x26quot;Last visit: \x26quot; + someDate.toLocaleString(); // Good example\n\x26quot;Last visit was at \x26quot; + someDate.toLocaleString(); // Bad example\n\x3c/pre\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_toLocaleString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing \x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3etoday\x3c/code\x3e is a \x3ccode\x3eDate\x3c/code\x3e object:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3etoday \x3d new Date(95,11,18,17,28,35); //months are represented by 0 to 11\ntoday.toLocaleString();\n\x3c/pre\x3e\n\x3cp\x3eIn this example, \x3ccode\x3etoLocaleString\x3c/code\x3e returns a string value that is similar to the following form. The exact format depends on the platform, locale and user\'s settings.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e12/18/95 17:28:35\n\x3c/pre\x3e\n\x3cp\x3eYou shouldn\'t use this method in contexts where you rely on a particular format or locale.\x3c/p\x3e\n\x3cpre\x3e\x26quot;Last visit: \x26quot; + someDate.toLocaleString(); // Good example\n\x26quot;Last visit was at \x26quot; + someDate.toLocaleString(); // Bad example\n\x3c/pre\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toUTCString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toUTCString"\x3etoUTCString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString"\x3etoLocaleDateString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString"\x3etoLocaleTimeString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters ","Description","Examples","Using toLocaleString","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toSource","title":"Date.toSource","_id":"4eea84dda4c86c4dba00008a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code of the object.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3edate\x3c/em\x3e.toSource()\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\n\x3c/p\x3e\x3cp\x3e\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For the built-in \x3ccode\x3eDate\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\n\x3c/li\x3e\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3efunction Date() {\n   [native code]\n}\n\x3c/pre\x3e\n\x3cul\x3e\x3cli\x3e For instances of \x3ccode\x3eDate\x3c/code\x3e, \x3ccode\x3etoSource\x3c/code\x3e returns a string representing the source code.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.toSource\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource",
"title":"Object.toSource","_id":"4eea84dea4c86c4dba00008b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code of the object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.toSource()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eFor the built-in \x3ccode\x3eObject\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\x3c/li\x3e\n\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction Object() {\n   [native code]\n}\n\x3c/pre\x3e\n\x3cul\x3e \x3cli\x3eFor instances of \x3ccode\x3eObject\x3c/code\x3e, \x3ccode\x3etoSource\x3c/code\x3e returns a string representing the source code.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eYou can call \x3ccode\x3etoSource\x3c/code\x3e while debugging to examine the contents of an object.\x3c/p\x3e\n\x3cp\x3eIt is safe for objects to override the \x3ccode\x3etoSource\x3c/code\x3e method.\x26nbsp; For example:\x3c/p\x3e\n\x3cpre\x3e\nfunction Person(name) {\n    this.name \x3d name;\n}\nPerson.prototype.toSource \x3d function Person_toSource() {\n    return \x26quot;new Person(\x26quot; + uneval(this.name) + \x26quot;)\x26quot;;\n};\nalert(new Person(\x26quot;Joe\x26quot;).toSource());    // ---\x26gt;\x26nbsp;new Person(\x26quot;Joe\x26quot;)\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Built-in_toString_methods"\x3e\x3c/span\x3e\x3cspan id \x3d "Built-in_toSource_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eBuilt-in \x3ccode\x3etoSource\x3c/code\x3e methods\x3c/h4\x3e\n\x3cp\x3eEach core JavaScript type has its own \x3ccode\x3etoSource\x3c/code\x3e method. These objects are: \n\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e - Array Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toSource"\x3etoSource\x3c/a\x3e - Boolean Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toSource"\x3etoSource\x3c/a\x3e - Date Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toSource"\x3etoSource\x3c/a\x3e - Function Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource"\x3etoSource\x3c/a\x3e - Number Object method.\x3c/li\x3e \x3cli\x3e\x3cstrong\x3etoSource\x3c/strong\x3e - Object Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toSource"\x3etoSource\x3c/a\x3e - RegExp Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toSource"\x3etoSource\x3c/a\x3e - String Object method.\x3c/li\x3e\n\x3c/ul\x3e\n\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Built-in_toString_methods"\x3e\x3c/span\x3e\x3cspan id \x3d "Built-in_toSource_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eBuilt-in \x3ccode\x3etoSource\x3c/code\x3e methods\x3c/h4\x3e\n\x3cp\x3eEach core JavaScript type has its own \x3ccode\x3etoSource\x3c/code\x3e method. These objects are: \n\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e - Array Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toSource"\x3etoSource\x3c/a\x3e - Boolean Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toSource"\x3etoSource\x3c/a\x3e - Date Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toSource"\x3etoSource\x3c/a\x3e - Function Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource"\x3etoSource\x3c/a\x3e - Number Object method.\x3c/li\x3e \x3cli\x3e\x3cstrong\x3etoSource\x3c/strong\x3e - Object Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toSource"\x3etoSource\x3c/a\x3e - RegExp Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toSource"\x3etoSource\x3c/a\x3e - String Object method.\x3c/li\x3e\n\x3c/ul\x3e\n\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_toSource"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoSource\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following code defines the \x3ccode\x3eDog\x3c/code\x3e object type and creates \x3ccode\x3etheDog\x3c/code\x3e, an object of type \x3ccode\x3eDog\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction Dog(name, breed, color, sex) {\n   this.name\x3dname;\n   this.breed\x3dbreed;\n   this.color\x3dcolor;\n   this.sex\x3dsex;\n}\n\ntheDog \x3d new Dog(\x26quot;Gabby\x26quot;, \x26quot;Lab\x26quot;, \x26quot;chocolate\x26quot;, \x26quot;girl\x26quot;);\n\x3c/pre\x3e\n\x3cp\x3eCalling the \x3ccode\x3etoSource\x3c/code\x3e method of \x3ccode\x3etheDog\x3c/code\x3e displays the JavaScript source that defines the object:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheDog.toSource();\n\x3c/pre\x3e\n\x3cp\x3ereturns\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n({name:\x26quot;Gabby\x26quot;, breed:\x26quot;Lab\x26quot;, color:\x26quot;chocolate\x26quot;, sex:\x26quot;girl\x26quot;})\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_toSource"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoSource\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following code defines the \x3ccode\x3eDog\x3c/code\x3e object type and creates \x3ccode\x3etheDog\x3c/code\x3e, an object of type \x3ccode\x3eDog\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction Dog(name, breed, color, sex) {\n   this.name\x3dname;\n   this.breed\x3dbreed;\n   this.color\x3dcolor;\n   this.sex\x3dsex;\n}\n\ntheDog \x3d new Dog(\x26quot;Gabby\x26quot;, \x26quot;Lab\x26quot;, \x26quot;chocolate\x26quot;, \x26quot;girl\x26quot;);\n\x3c/pre\x3e\n\x3cp\x3eCalling the \x3ccode\x3etoSource\x3c/code\x3e method of \x3ccode\x3etheDog\x3c/code\x3e displays the JavaScript source that defines the object:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheDog.toSource();\n\x3c/pre\x3e\n\x3cp\x3ereturns\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n({name:\x26quot;Gabby\x26quot;, breed:\x26quot;Lab\x26quot;, color:\x26quot;chocolate\x26quot;, sex:\x26quot;girl\x26quot;})\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Built-in toSource methods","Examples",
"Example: Using toSource","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toString","title":"Date.toString","_id":"4eea84dfa4c86c4dba00008c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the specified Date object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e toString() \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e\x3c/code\x3e object overrides the \x3ccode\x3etoString\x3c/code\x3e method of the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/code\x3e object; it does not inherit \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\x3c/code\x3e. For \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e\x3c/code\x3e objects, the \x3ccode\x3etoString\x3c/code\x3e method returns a string representation of the object.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3etoString\x3c/code\x3e always returns a string representation of the date in American English.\x3c/p\x3e\n\x3cp\x3eJavaScript calls the \x3ccode\x3etoString\x3c/code\x3e method automatically when a date is to be represented as a text value or when a date is referred to in a string concatenation.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following assigns the \x3ccode\x3etoString\x3c/code\x3e value of a \x3ccode\x3eDate\x3c/code\x3e object to \x3ccode\x3emyVar\x3c/code\x3e:\x3c/p\x3e\n\x3cpre\x3ex \x3d new Date();\nmyVar\x3dx.toString();   //assigns a value to myVar similar to:\n     //Mon Sep 28 1998 14:36:22 GMT-0700 (Pacific Daylight Time)\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following assigns the \x3ccode\x3etoString\x3c/code\x3e value of a \x3ccode\x3eDate\x3c/code\x3e object to \x3ccode\x3emyVar\x3c/code\x3e:\x3c/p\x3e\n\x3cpre\x3ex \x3d new Date();\nmyVar\x3dx.toString();   //assigns a value to myVar similar to:\n     //Mon Sep 28 1998 14:36:22 GMT-0700 (Pacific Daylight Time)\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toDateString"\x3etoDateString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toTimeString"\x3etoTimeString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using toString","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString","title":"Object.toString","_id":"4eea84e2a4c86c4dba00008d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMSScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobject\x3c/em\x3e.toString()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eEvery object has a \x3ccode\x3etoString()\x3c/code\x3e method that is automatically called when the object is to be represented as a text value or when an object is referred to in a manner in which a string is expected. By default, the \x3ccode\x3etoString()\x3c/code\x3e method is inherited by every object descended from \x3ccode\x3eObject\x3c/code\x3e. If this method is not overridden in a custom object, \x3ccode\x3etoString()\x3c/code\x3e returns \x26quot;[object \x3cem\x3etype\x3c/em\x3e]\x26quot;, where \x3ccode\x3e\x3cem\x3etype\x3c/em\x3e\x3c/code\x3e is the object type. The following code illustrates this:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar o \x3d new Object();\no.toString();           // returns [object Object]\n\x3c/pre\x3e\n\x3cdiv class \x3d "note"\x3eStarting in JavaScript 1.8.5 \x3ccode\x3etoString()\x3c/code\x3e called on \x3ccode\x3enull\x3c/code\x3e returns \x3ccode\x3e[object \x3cem\x3eNull\x3c/em\x3e]\x3c/code\x3e, and \x3ccode\x3eundefined\x3c/code\x3e returns \x3ccode\x3e[object \x3cem\x3eUndefined\x3c/em\x3e]\x3c/code\x3e, as defined in the 5th Edition of ECMAScript and a subsequent Errata. See \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/toString#Using toString to detect object type" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString#Using_toString_to_detect_object_type"\x3eUsing toString to detect object type\x3c/a\x3e.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Overriding_the_default_toString_method"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eOverriding the default \x3ccode\x3etoString\x3c/code\x3e method\x3c/h4\x3e\n\x3cp\x3eYou can create a function to be called in place of the default \x3ccode\x3etoString()\x3c/code\x3e method. The \x3ccode\x3etoString()\x3c/code\x3e method takes no arguments and should return a string. The \x3ccode\x3etoString()\x3c/code\x3e method you create can be any value you want, but it will be most useful if it carries information about the object.\x3c/p\x3e\n\x3cp\x3eThe following code defines the \x3ccode\x3eDog\x3c/code\x3e object type and creates \x3ccode\x3etheDog\x3c/code\x3e, an object of type \x3ccode\x3eDog\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Dog(name,breed,color,sex) {\n   this.name\x3dname;\n   this.breed\x3dbreed;\n   this.color\x3dcolor;\n   this.sex\x3dsex;\n}\n\ntheDog \x3d new Dog(\x26quot;Gabby\x26quot;,\x26quot;Lab\x26quot;,\x26quot;chocolate\x26quot;,\x26quot;female\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eIf you call the \x3ccode\x3etoString()\x3c/code\x3e method on this custom object, it returns the default value inherited from \x3ccode\x3eObject\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheDog.toString(); //returns [object Object]\n\x3c/pre\x3e\n\x3cp\x3eThe following code creates and assigns \x3ccode\x3edogToString()\x3c/code\x3e to override the default \x3ccode\x3etoString()\x3c/code\x3e method. This function generates a string containing the name, breed, color, and sex of the object, in the form \x26quot;\x3ccode\x3eproperty \x3d value;\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eDog.prototype.toString \x3d function dogToString() {\n  var ret \x3d \x26quot;Dog \x26quot; + this.name + \x26quot; is a \x26quot; + this.sex + \x26quot; \x26quot; + this.color + \x26quot; \x26quot; + this.breed;\n  return ret;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eWith the preceding code in place, any time \x3ccode\x3etheDog\x3c/code\x3e is used in a string context, JavaScript automatically calls the \x3ccode\x3edogToString()\x3c/code\x3e function, which returns the following string:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nDog Gabby is a female chocolate Lab\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_toString_to_detect_object_type"\x3e\x3c/span\x3e\x3cspan id \x3d "Using_toString()_to_detect_object_class"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing toString() to detect object class\x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3etoString()\x3c/code\x3e can be used with every object and allows you to get its class. To use the \x3ccode\x3eObject.prototype.toString()\x3c/code\x3e with every object, you need to call \x3ccode\x3eFunction.prototype.call()\x3c/code\x3e or \x3ccode\x3eFunction.prototype.apply()\x3c/code\x3e on it, passing the object you want to inspect as the first parameter called \x3ccode\x3ethisArg\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar toString \x3d Object.prototype.toString;\n\ntoString.call(new Date); // [object Date]\ntoString.call(new String); // [object String]\ntoString.call(Math); // [object Math]\n\n//Since JavaScript 1.8.5\ntoString.call(undefined); // [object Undefined]\ntoString.call(null); // [object Null]\x3c/pre\x3e\r\n        \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Overriding_the_default_toString_method"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eOverriding the default \x3ccode\x3etoString\x3c/code\x3e method\x3c/h4\x3e\n\x3cp\x3eYou can create a function to be called in place of the default \x3ccode\x3etoString()\x3c/code\x3e method. The \x3ccode\x3etoString()\x3c/code\x3e method takes no arguments and should return a string. The \x3ccode\x3etoString()\x3c/code\x3e method you create can be any value you want, but it will be most useful if it carries information about the object.\x3c/p\x3e\n\x3cp\x3eThe following code defines the \x3ccode\x3eDog\x3c/code\x3e object type and creates \x3ccode\x3etheDog\x3c/code\x3e, an object of type \x3ccode\x3eDog\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Dog(name,breed,color,sex) {\n   this.name\x3dname;\n   this.breed\x3dbreed;\n   this.color\x3dcolor;\n   this.sex\x3dsex;\n}\n\ntheDog \x3d new Dog(\x26quot;Gabby\x26quot;,\x26quot;Lab\x26quot;,\x26quot;chocolate\x26quot;,\x26quot;female\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eIf you call the \x3ccode\x3etoString()\x3c/code\x3e method on this custom object, it returns the default value inherited from \x3ccode\x3eObject\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheDog.toString(); //returns [object Object]\n\x3c/pre\x3e\n\x3cp\x3eThe following code creates and assigns \x3ccode\x3edogToString()\x3c/code\x3e to override the default \x3ccode\x3etoString()\x3c/code\x3e method. This function generates a string containing the name, breed, color, and sex of the object, in the form \x26quot;\x3ccode\x3eproperty \x3d value;\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eDog.prototype.toString \x3d function dogToString() {\n  var ret \x3d \x26quot;Dog \x26quot; + this.name + \x26quot; is a \x26quot; + this.sex + \x26quot; \x26quot; + this.color + \x26quot; \x26quot; + this.breed;\n  return ret;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eWith the preceding code in place, any time \x3ccode\x3etheDog\x3c/code\x3e is used in a string context, JavaScript automatically calls the \x3ccode\x3edogToString()\x3c/code\x3e function, which returns the following string:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nDog Gabby is a female chocolate Lab\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_toString_to_detect_object_type"\x3e\x3c/span\x3e\x3cspan id \x3d "Using_toString()_to_detect_object_class"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing toString() to detect object class\x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3etoString()\x3c/code\x3e can be used with every object and allows you to get its class. To use the \x3ccode\x3eObject.prototype.toString()\x3c/code\x3e with every object, you need to call \x3ccode\x3eFunction.prototype.call()\x3c/code\x3e or \x3ccode\x3eFunction.prototype.apply()\x3c/code\x3e on it, passing the object you want to inspect as the first parameter called \x3ccode\x3ethisArg\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar toString \x3d Object.prototype.toString;\n\ntoString.call(new Date); // [object Date]\ntoString.call(new String); // [object String]\ntoString.call(Math); // [object Math]\n\n//Since JavaScript 1.8.5\ntoString.call(undefined); // [object Undefined]\ntoString.call(null); // [object Null]\x3c/pre\x3e\r\n        \x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3etoSource\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3evalueOf\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","Examples","Overriding the default toString method","Using toString() to detect object class","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toTimeString","title":"Date.toTimeString","_id":"4eea84e2a4c86c4dba00008e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3edate\x3c/em\x3e.toTimeString()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3eDate\x3c/a\x3e instances refer to a specific point in time. Calling \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toString"\x3etoString\x3c/a\x3e will return the date formatted in a human readable form in American English. In \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, this consists of the date portion (day, month, and year) followed by the time portion (hours, minutes, seconds, and time zone). Sometimes it is desirable to obtain a string of the time portion; such a thing can be accomplished with the \x3ccode\x3etoTimeString\x3c/code\x3e method.\x3c/p\x3e\n\x3cp\x3eThe \x3ccode\x3etoTimeString\x3c/code\x3e method is especially useful because compliant engines implementing \x3ca title \x3d "en/ECMAScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e may differ in the string obtained from \x3ccode\x3etoString\x3c/code\x3e for \x3ccode\x3eDate\x3c/code\x3e objects, as the format is implementation-dependent; simple string slicing approaches may not produce consistent results across multiple engines.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_A_basic_usage_of_toTimeString"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: A basic usage of \x3ccode\x3etoTimeString\x3c/code\x3e\x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3e\nvar d \x3d new Date(1993, 6, 28, 14, 39, 7);\nprintln(d.toString()); // prints Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)\nprintln(d.toTimeString()); // prints 14:39:07 GMT-0600 (PDT)\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toLocaleTimeString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString"\x3etoLocaleTimeString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toDateString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toDateString"\x3etoDateString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Date/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Syntax","Description","Example","Example: A basic usage of toTimeString","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/valueOf","title":"Date.valueOf","_id":"4eea84e4a4c86c4dba00008f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the primitive value of a Date object.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date" title \x3d "en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nvalueOf()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3evalueOf\x3c/code\x3e method returns the primitive value of a \x3ccode\x3eDate\x3c/code\x3e object as a number data type, the number of milliseconds since midnight 01 January, 1970 UTC.\n\x3c/p\x3e\x3cp\x3eThis method is functionally equivalent to the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getTime" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTime"\x3egetTime\x3c/a\x3e method.\n\x3c/p\x3e\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_valueOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3evalueOf\x3c/code\x3e \x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3ex \x3d new Date(56, 6, 17);\nmyVar \x3d x.valueOf();      //assigns -424713600000 to myVar\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_valueOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3evalueOf\x3c/code\x3e \x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3ex \x3d new Date(56, 6, 17);\nmyVar \x3d x.valueOf();      //assigns -424713600000 to myVar\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.valueOf\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/getTime" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTime"\x3egetTime\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using valueOf "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf","title":"Object.valueOf","_id":"4eea84e4a4c86c4dba000090","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the primitive value of the specified object\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nvalueOf()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eJavaScript calls the \x3ccode\x3evalueOf\x3c/code\x3e method to convert an object to a primitive value. You rarely need to invoke the \x3ccode\x3evalueOf\x3c/code\x3e method yourself; JavaScript automatically invokes it when encountering an object where a primitive value is expected.\n\x3c/p\x3e\x3cp\x3eBy default, the \x3ccode\x3evalueOf\x3c/code\x3e method is inherited by every object descended from \x3ccode\x3eObject\x3c/code\x3e. Every built-in core object overrides this method to return an appropriate value. If an object has no primitive value, \x3ccode\x3evalueOf\x3c/code\x3e returns the object itself, which is displayed as:\n\x3c/p\x3e\n\x3cpre\x3e\n[object Object]\n\x3c/pre\x3e\n\x3cp\x3eYou can use \x3ccode\x3evalueOf\x3c/code\x3e within your own code to convert a built-in object into a primitive value. When you create a custom object, you can override \x3ccode\x3eObject.valueOf\x3c/code\x3e to call a custom method instead of the default \x3ccode\x3eObject\x3c/code\x3e method.\n\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Overriding_valueOf_for_custom_objects"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Overriding \x3ccode\x3evalueOf\x3c/code\x3e for custom objects \x3c/h4\x3e\n\x3cp\x3eYou can create a function to be called in place of the default \x3ccode\x3evalueOf\x3c/code\x3e method. Your function must take no arguments.\n\x3c/p\x3e\x3cp\x3eSuppose you have an object type \x3ccode\x3emyNumberType\x3c/code\x3e and you want to create a \x3ccode\x3evalueOf\x3c/code\x3e method for it. The following code assigns a user-defined function to the object\'s \x3ccode\x3evalueOf\x3c/code\x3e method:\n\x3c/p\x3e\n\x3cpre\x3e\nmyNumberType.prototype.valueOf \x3d new Function(functionText)\n\x3c/pre\x3e\n\x3cp\x3eWith the preceding code in place, any time an object of type \x3ccode\x3emyNumberType\x3c/code\x3e is used in a context where it is to be represented as a primitive value, JavaScript automatically calls the function defined in the preceding code.\n\x3c/p\x3e\x3cp\x3eAn object\'s \x3ccode\x3evalueOf\x3c/code\x3e method is usually invoked by JavaScript, but you can invoke it yourself as follows:\n\x3c/p\x3e\n\x3cpre\x3e\nmyNumber.valueOf()\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Note"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eNote\x3c/h4\x3e\n\x3cp\x3eObjects in string contexts convert via the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e method, which is different from \x3ccode\x3eString\x3c/code\x3e objects converting to string primitives using \x3ccode\x3evalueOf\x3c/code\x3e. All objects have a string conversion, if only \x26quot;\x3ccode\x3e[object \x3cem\x3etype\x3c/em\x3e]\x3c/code\x3e\x26quot;. But many objects do not convert to number, boolean, or function.\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Overriding_valueOf_for_custom_objects"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Overriding \x3ccode\x3evalueOf\x3c/code\x3e for custom objects \x3c/h4\x3e\n\x3cp\x3eYou can create a function to be called in place of the default \x3ccode\x3evalueOf\x3c/code\x3e method. Your function must take no arguments.\n\x3c/p\x3e\x3cp\x3eSuppose you have an object type \x3ccode\x3emyNumberType\x3c/code\x3e and you want to create a \x3ccode\x3evalueOf\x3c/code\x3e method for it. The following code assigns a user-defined function to the object\'s \x3ccode\x3evalueOf\x3c/code\x3e method:\n\x3c/p\x3e\n\x3cpre\x3e\nmyNumberType.prototype.valueOf \x3d new Function(functionText)\n\x3c/pre\x3e\n\x3cp\x3eWith the preceding code in place, any time an object of type \x3ccode\x3emyNumberType\x3c/code\x3e is used in a context where it is to be represented as a primitive value, JavaScript automatically calls the function defined in the preceding code.\n\x3c/p\x3e\x3cp\x3eAn object\'s \x3ccode\x3evalueOf\x3c/code\x3e method is usually invoked by JavaScript, but you can invoke it yourself as follows:\n\x3c/p\x3e\n\x3cpre\x3e\nmyNumber.valueOf()\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Note"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eNote\x3c/h4\x3e\n\x3cp\x3eObjects in string contexts convert via the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e method, which is different from \x3ccode\x3eString\x3c/code\x3e objects converting to string primitives using \x3ccode\x3evalueOf\x3c/code\x3e. All objects have a string conversion, if only \x26quot;\x3ccode\x3e[object \x3cem\x3etype\x3c/em\x3e]\x3c/code\x3e\x26quot;. But many objects do not convert to number, boolean, or function.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/parseInt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt"\x3eparseInt\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Overriding valueOf for custom objects ","Note","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter","title":"Object.DefineGetter","_id":"4eea84e4a4c86c4dba000091","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eBinds an object\'s property to a function to be called when that property is looked up.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__defineGetter__(\x3cem\x3esprop\x3c/em\x3e, \x3cem\x3efun\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea string containing the name of the property to bind to the given function\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea function to be bound to a lookup of the specified property\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3e__defineGetter__\x3c/code\x3e allows a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/get_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/get"\x3egetter\x3c/a\x3e to be defined on a pre-existing object.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/get_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/get"\x3eget\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupGetter"\x3e__lookupGetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Creating_New_Objects/Defining_Getters_and_Setters"\x3eJS Guide:Defining Getters and Setters\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter","title":"Object.DefineSetter","_id":"4eea84e7a4c86c4dba000092","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eBinds an object\'s property to a function to be called when an attempt is made to set that property.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__defineSetter__(\x3cem\x3esprop\x3c/em\x3e, \x3cem\x3efun\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea string containing the name of the property to be bound to the given function\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea function to be called when there is an attempt to set the specified property. This function takes the form\x3c/dd\x3e \x3cdd\x3e\x3ccode\x3efunction (\x3cem\x3eval\x3c/em\x3e) { .\x26nbsp;.\x26nbsp;. }\x3c/code\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3eval\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ean alias for the variable that holds the value attempted to be assigned to \x3ccode\x3eprop\x3c/code\x3e\x3c/dd\x3e \x3c/dl\x3e \x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3e__defineSetter__\x3c/code\x3e method allows a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/set_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/set"\x3esetter\x3c/a\x3e to be defined on a pre-existing object.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/set_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/set"\x3eset\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupSetter"\x3e__lookupSetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Creating_New_Objects/Defining_Getters_and_Setters"\x3eJS Guide:Defining Getters and Setters\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty","title":"Object.HasOwnProperty","_id":"4eea84e7a4c86c4dba000093","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a boolean indicating whether the object has the specified property.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.hasOwnProperty(\x3cem\x3eprop\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of the property to test.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eEvery object descended from \x3ccode\x3eObject\x3c/code\x3e inherits the \x3ccode\x3ehasOwnProperty\x3c/code\x3e method. This method can be used to determine whether an object has the specified property as a direct property of that object; unlike the \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/in_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/in"\x3e\x3ccode\x3ein\x3c/code\x3e\x3c/a\x3e operator, this method does not check down the object\'s prototype chain.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_hasOwnProperty_to_test_for_a_property.27s_existence"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_hasOwnProperty_to_test_for_a_property\'s_existence"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3ehasOwnProperty\x3c/code\x3e to test for a property\'s existence\x3c/h4\x3e\n\x3cp\x3eThe following example determines whether the \x3ccode\x3eo\x3c/code\x3e object contains a property named \x3ccode\x3eprop\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo \x3d new Object();\no.prop \x3d \'exists\';\n\nfunction changeO() {\n  o.newprop \x3d o.prop;\n  delete o.prop;\n}\n\no.hasOwnProperty(\'prop\');   //returns true\nchangeO();\no.hasOwnProperty(\'prop\');   //returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Direct_versus_inherited_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Direct versus inherited properties\x3c/h4\x3e\n\x3cp\x3eThe following example differentiates between direct properties and properties inherited through the prototype chain:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo \x3d new Object();\no.prop \x3d \'exists\';\no.hasOwnProperty(\'prop\');             // returns true\no.hasOwnProperty(\'toString\');         // returns false\no.hasOwnProperty(\'hasOwnProperty\');   // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Itarate_over_properties_not_considering_inherited_properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Iterating_over_the_properties_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Iterating over the properties of an object\x3c/h4\x3e\n\x3cp\x3eThe following example shows how to iterate over the properties of an object without executing on inherit properties.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar buz \x3d {\n    fog: \'stack\'\n};\n\nfor (var name in buz) {\n    if (buz.hasOwnProperty(name)) {\n        alert(\x26quot;this is fog (\x26quot; + name + \x26quot;) for sure. Value: \x26quot; + buz[name]);\n    }\n    else {\n        alert(name); // toString or something else\n    }\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_hasOwnProperty_to_test_for_a_property.27s_existence"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_hasOwnProperty_to_test_for_a_property\'s_existence"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3ehasOwnProperty\x3c/code\x3e to test for a property\'s existence\x3c/h4\x3e\n\x3cp\x3eThe following example determines whether the \x3ccode\x3eo\x3c/code\x3e object contains a property named \x3ccode\x3eprop\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo \x3d new Object();\no.prop \x3d \'exists\';\n\nfunction changeO() {\n  o.newprop \x3d o.prop;\n  delete o.prop;\n}\n\no.hasOwnProperty(\'prop\');   //returns true\nchangeO();\no.hasOwnProperty(\'prop\');   //returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Direct_versus_inherited_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Direct versus inherited properties\x3c/h4\x3e\n\x3cp\x3eThe following example differentiates between direct properties and properties inherited through the prototype chain:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo \x3d new Object();\no.prop \x3d \'exists\';\no.hasOwnProperty(\'prop\');             // returns true\no.hasOwnProperty(\'toString\');         // returns false\no.hasOwnProperty(\'hasOwnProperty\');   // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Itarate_over_properties_not_considering_inherited_properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Iterating_over_the_properties_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Iterating over the properties of an object\x3c/h4\x3e\n\x3cp\x3eThe following example shows how to iterate over the properties of an object without executing on inherit properties.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar buz \x3d {\n    fog: \'stack\'\n};\n\nfor (var name in buz) {\n    if (buz.hasOwnProperty(name)) {\n        alert(\x26quot;this is fog (\x26quot; + name + \x26quot;) for sure. Value: \x26quot; + buz[name]);\n    }\n    else {\n        alert(name); // toString or something else\n    }\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in"\x3efor...in\x3c/a\x3e\x3cbr/\x3e\n\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/in_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/in"\x3ein\x3c/a\x3e\x3cbr/\x3e\n\x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Inheritance_Revisited" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Inheritance_Revisited"\x3einheritance\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using hasOwnProperty to test for a property's existence","Example: Direct versus inherited properties","Example: Iterating over the properties of an object","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf","title":"Object.IsPrototypeOf","_id":"4eea84e9a4c86c4dba000094","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eTests for an object in another object\'s prototype chain.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eprototype\x3c/em\x3e.isPrototypeOf(\x3cem\x3eobject\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eprototype\x3c/dt\x3e \x3cdd\x3e\x26nbsp; an object to be tested against each link in the prototype chain of the \x3cstrong\x3eobject\x3c/strong\x3e\x26nbsp; argument\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;\x3ccode\x3eisPrototypeOf\x3c/code\x3e differs from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/instanceof_Operator" title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/instanceof_Operator"\x3einstanceof operator\x3c/a\x3e. In the expression \x3ccode\x3eobject instanceof AFunction\x3c/code\x3e, the \x3ccode\x3eobject\x3c/code\x3e prototype chain is checked against \x3ccode\x3eAFunction.prototype\x3c/code\x3e, not against \x3ccode\x3eAFunction\x3c/code\x3e itself\x3c/div\x3e\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3eobject\x3c/dt\x3e \x3cdd\x3ethe object whose prototype chain will be searched\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e allows you to check whether or not an object exists within another object\'s prototype chain.\x3c/p\x3e\n\x3cp\x3eFor example, consider the following prototype chain:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction Fee() {\n  // . . .\n}\n\nfunction Fi() {\n  // . . .\n}\nFi.prototype \x3d new Fee();\n\nfunction Fo() {\n  // . . .\n}\nFo.prototype \x3d new Fi();\n\nfunction Fum() {\n  // . . .\n}\nFum.prototype \x3d new Fo();\n\x3c/pre\x3e\n\x3cp\x3eLater on down the road, if you instantiate \x3ccode\x3eFum\x3c/code\x3e and need to check if \x3ccode\x3eFi\x3c/code\x3e\'s prototype exists within the \x3ccode\x3eFum\x3c/code\x3e prototype chain, you could do this:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar fum \x3d new Fum();\n. . .\n\nif (Fi.prototype.isPrototypeOf(fum)) {\n  // do something safe\n}\n\x3c/pre\x3e\n\x3cp\x3eThis, along with the \x3ccode\x3einstanceof\x3c/code\x3e operator particularly comes in handy if you have code that can only function when dealing with objects descended from a specific prototype chain, e.g., to guarantee that certain methods or properties will be present on that object.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/instanceof_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/instanceof"\x3einstanceof\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d "internal" title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/Object/GetPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf"\x3egetProtoypeOf\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter","title":"Object.LookupGetter","_id":"4eea84e9a4c86c4dba000095","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturn the function bound as a getter to the specified property.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone, but see \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor"\x3egetOwnPropertyDescriptor\x3c/a\x3e and \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf"\x3egetPrototypeOf\x3c/a\x3e.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__lookupGetter__(\x3cem\x3esprop\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea string containing the name of the property whose getter should be returned\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf a getter has been defined for an object\'s property, it\'s not possible to reference the getter function through that property, because that property refers to the return value of that function. \x3ccode\x3e__lookupGetter__\x3c/code\x3e can be used to obtain a reference to the getter function.\x3c/p\x3e\n\x3cp\x3eIt is now possible to do this in a standardized way using \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor" title \x3d "en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor"\x3egetOwnPropertyDescriptor\x3c/a\x3e and \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/getPrototypeOf"\x3egetPrototypeOf\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/get_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/get"\x3eget\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d "internal" title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Creating_New_Objects/Defining_Getters_and_Setters"\x3eJS Guide:Defining Getters and Setters\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter","title":"Object.LookupSetter","_id":"4eea84eaa4c86c4dba000096","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturn the function bound as a setter to the specified property.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__lookupSetter__(\x3cem\x3esprop\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea string containing the name of the property whose setter should be returned\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf a setter has been defined for an object\'s property, it\'s not possible to reference the setter function through that property, because that property refers to the return value of that function. \x3ccode\x3e__lookupSetter__\x3c/code\x3e can be used to obtain a reference to the setter function.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/set_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/set"\x3eset\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Creating_New_Objects/Defining_Getters_and_Setters"\x3eJS Guide:Defining Getters and Setters\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod","title":"Object.NoSuchMethod","_id":"4eea84eca4c86c4dba000097","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eExecutes a function when a non-existent method is called on an object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__noSuchMethod__ \x3d \x3cem\x3efun\x3c/em\x3e\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea function that takes the form\x3c/dd\x3e \x3cdd\x3e\x3ccode\x3efunction (\x3cem\x3eid\x3c/em\x3e, \x3cem\x3eargs\x3c/em\x3e) { .\x26nbsp;.\x26nbsp;. }\x3c/code\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3eid\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ethe name of the non-existent method that was called\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eargs\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ean array of the arguments passed to the method\x3c/dd\x3e \x3c/dl\x3e \x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eBy default, an attempt to call a method that doesn\'t exist on an object results in a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e being thrown. This behavior can be circumvented by defining a function at that object\'s \x3ccode\x3e__noSuchMethod__\x3c/code\x3e member. The function takes two arguments, the first is the name of the method attempted and the second is an array of the arguments that were passed in the method call. The second argument is an actual array (that is, it inherits through the \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/prototype"\x3eArray prototype\x3c/a\x3e chain) and not the array-like \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Functions/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments"\x3earguments object\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eIf this method cannot be called, either as if \x3ccode\x3eundefined\x3c/code\x3e by default, if deleted, or if manually set to a non-function, the JavaScript engine will revert to throwing \x3ccode\x3eTypeError\x3c/code\x3es.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e can be used to simulate multiple inheritance.\x3c/p\x3e\n\x3cp\x3eAn example of code that implements a primitive form of multiple inheritance is shown below.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Doesn\'t work with multiple inheritance objects as parents\n\nfunction noMethod(name, args) {\n  var parents\x3dthis.__parents_;\n  \n  // Go through all parents\n  \n  for (var i\x3d0;i\x26lt;parents.length;i++) {\n    // If we find a function on the parent, we call it\n    if (typeof parents[i][name] \x3d\x3d\x26quot;function\x26quot;) {\n      return parents[i][name].apply(this, args);\n    }\n  }\n  \n  // If we get here, the method hasn\'t been found\n  \n  throw new TypeError;\n}\n\n// Used to add a parent for multiple inheritance\n\nfunction addParent(obj, parent) {\n  // If the object isn\'t initialized, initialize it\n  \n  if (!obj.__parents_) {\n    obj.__parents_\x3d[];\n    obj.__noSuchMethod__\x3dnoMethod;\n  }\n  \n  // Add the parent\n  \n  obj.__parents_.push(parent);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eAn example of using this idea is shown below.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Example base class 1\n\nfunction NamedThing(name){\n  this.name\x3dname;\n}\n\nNamedThing.prototype \x3d {\n  getName: function() {return this.name;},\n  setName: function(newName) {this.name\x3dnewName;}\n}\n\n//Example base class 2\n\nfunction AgedThing(age){\n  this.age\x3dage;\n}\n\nAgedThing.prototype \x3d {\n  getAge: function(){return this.age;},\n  setAge: function(age){this.age\x3dage;}\n}\n\n// Child class. inherits from NamedThing and AgedThing as well as defining address\n\nfunction Person(name, age, address){\n  addParent(this, NamedThing.prototype);\n  NamedThing.call(this, name);\n  addParent(this, AgedThing.prototype);\n  AgedThing.call(this, age);\n  this.address\x3daddress;\n}\n\nPerson.prototype \x3d {\n  getAddr: function() {return this.address;},\n  setAddr: function(addr) {this.address\x3daddr;}\n}\n\nvar bob\x3dnew Person(\x26quot;bob\x26quot;, 25, \x26quot;New York\x26quot;);\n\n0 \x26\x26 console.log(\x26quot;getAge is \x26quot;+((\x26quot;getAge\x26quot; in bob)?\x26quot;in\x26quot;:\x26quot;not in\x26quot;)+\x26quot; bob\x26quot;);\n0 \x26\x26 console.log(\x26quot;bob\'s age is: \x26quot;+bob.getAge());\n0 \x26\x26 console.log(\x26quot;getName is \x26quot;+((\x26quot;getName\x26quot; in bob)?\x26quot;in\x26quot;:\x26quot;not in\x26quot;)+\x26quot; bob\x26quot;);\n0 \x26\x26 console.log(\x26quot;bob\'s name is: \x26quot;+bob.getName());\n0 \x26\x26 console.log(\x26quot;getAddr is \x26quot;+((\x26quot;getAddr\x26quot; in bob)?\x26quot;in\x26quot;:\x26quot;not in\x26quot;)+\x26quot; bob\x26quot;);\n0 \x26\x26 console.log(\x26quot;bob\'s address is: \x26quot;+bob.getAddr());\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Example"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable","title":"Object.PropertyIsEnumerable","_id":"4eea84eda4c86c4dba000098","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a Boolean indicating whether the specified property is enumerable.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.propertyIsEnumerable(\x3cem\x3eprop\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eThe name of the property to test.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eEvery object has a \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e method. This method can determine whether the specified property in an object can be enumerated by a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for...in"\x3e\x3ccode\x3efor...in\x3c/code\x3e\x3c/a\x3e loop, with the exception of properties inherited through the prototype chain. If the object does not have the specified property, this method returns false.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Starting in JavaScript 1.8.1 (in Firefox 3.6), \x3ccode\x3epropertyIsEnumerable(\x26quot;prototype\x26quot;)\x3c/code\x3e returns false instead of true; this makes the result compliant with ECMAScript 5.\x3c/div\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_5\"\x3e\x3cspan id \x3d \"Examples\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Example:_A_basic_use_of_propertyIsEnumerable\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: A basic use of \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example shows the use of \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e on objects and arrays:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar o \x3d {};\nvar a \x3d [];\no.prop \x3d 'is enumerable';\na[0] \x3d 'is enumerable';\n\no.propertyIsEnumerable('prop');   // returns true\na.propertyIsEnumerable(0);        // returns true\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"Example:_User-defined_versus_built-in_objects\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: User-defined versus built-in objects\x3c/h4\x3e\n\x3cp\x3eThe following example demonstrates the enumerability of user-defined versus built-in properties:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar a \x3d ['is enumerable'];\n\na.propertyIsEnumerable(0);          // returns true\na.propertyIsEnumerable('length');   // returns false\n\nMath.propertyIsEnumerable('random');   // returns false\nthis.propertyIsEnumerable('Math');     // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d \"section_8\"\x3e\x3cspan id \x3d \"Example:_Direct_versus_inherited_properties\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: Direct versus inherited properties\x3c/h4\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar a \x3d [];\na.propertyIsEnumerable('constructor');         // returns false\n\nfunction firstConstructor()\n{\n  this.property \x3d 'is not enumerable';\n}\nfirstConstructor.prototype.firstMethod \x3d function () {};\n\nfunction secondConstructor()\n{\n  this.method \x3d function method() { return 'is enumerable'; };\n}\n\nsecondConstructor.prototype \x3d new firstConstructor;\nsecondConstructor.prototype.constructor \x3d secondConstructor;\n\nvar o \x3d new secondConstructor();\no.arbitraryProperty \x3d 'is enumerable';\n\no.propertyIsEnumerable('arbitraryProperty');   // returns true\no.propertyIsEnumerable('method');              // returns true\no.propertyIsEnumerable('property');            // returns false\n\no.property \x3d 'is enumerable';\n\no.propertyIsEnumerable('property');            // returns true\n\n// These return false as they are on the prototype which \n// propertyIsEnumerable does not consider (even though the last two\n// are iteratable with for-in)\no.propertyIsEnumerable('prototype'); // returns false (as of JS 1.8.1/FF3.6)\no.propertyIsEnumerable('constructor'); // returns false\no.propertyIsEnumerable('firstMethod'); // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e",
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_A_basic_use_of_propertyIsEnumerable"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: A basic use of \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example shows the use of \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e on objects and arrays:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {};\nvar a \x3d [];\no.prop \x3d \'is enumerable\';\na[0] \x3d \'is enumerable\';\n\no.propertyIsEnumerable(\'prop\');   // returns true\na.propertyIsEnumerable(0);        // returns true\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_User-defined_versus_built-in_objects"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: User-defined versus built-in objects\x3c/h4\x3e\n\x3cp\x3eThe following example demonstrates the enumerability of user-defined versus built-in properties:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d [\'is enumerable\'];\n\na.propertyIsEnumerable(0);          // returns true\na.propertyIsEnumerable(\'length\');   // returns false\n\nMath.propertyIsEnumerable(\'random\');   // returns false\nthis.propertyIsEnumerable(\'Math\');     // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_8\"\x3e\x3cspan id \x3d \"Example:_Direct_versus_inherited_properties\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: Direct versus inherited properties\x3c/h4\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar a \x3d [];\na.propertyIsEnumerable('constructor');         // returns false\n\nfunction firstConstructor()\n{\n  this.property \x3d 'is not enumerable';\n}\nfirstConstructor.prototype.firstMethod \x3d function () {};\n\nfunction secondConstructor()\n{\n  this.method \x3d function method() { return 'is enumerable'; };\n}\n\nsecondConstructor.prototype \x3d new firstConstructor;\nsecondConstructor.prototype.constructor \x3d secondConstructor;\n\nvar o \x3d new secondConstructor();\no.arbitraryProperty \x3d 'is enumerable';\n\no.propertyIsEnumerable('arbitraryProperty');   // returns true\no.propertyIsEnumerable('method');              // returns true\no.propertyIsEnumerable('property');            // returns false\n\no.property \x3d 'is enumerable';\n\no.propertyIsEnumerable('property');            // returns true\n\n// These return false as they are on the prototype which \n// propertyIsEnumerable does not consider (even though the last two\n// are iteratable with for-in)\no.propertyIsEnumerable('prototype'); // returns false (as of JS 1.8.1/FF3.6)\no.propertyIsEnumerable('constructor'); // returns false\no.propertyIsEnumerable('firstMethod'); // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e",
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for...in"\x3efor...in\x3c/a\x3e\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: A basic use of propertyIsEnumerable",
"Example: User-defined versus built-in objects","Example: Direct versus inherited properties","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch","title":"Object.Unwatch","_id":"4eea84eea4c86c4dba000099","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRemoves a watchpoint set with the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/watch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch"\x3ewatch()\x3c/a\x3e\x3c/code\x3e method.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eunwatch(\x3cem\x3eprop\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of a property of the object to stop watching.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe JavaScript debugger has functionality similar to that provided by this method, as well as other debugging options. For information on the debugger, see \x3ca title \x3d "en/Venkman" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Venkman"\x3eVenkman\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eBy default, this method is inherited by every object descended from \x3ccode\x3eObject\x3c/code\x3e.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e The reason for \x3ccode\x3eunwatch()\x3c/code\x3e to take the property name \x3cem\x3eprop\x3c/em\x3e as its only parameter is due to the \x26quot;single handler allowing\x26quot; behavior of the \x3ca title \x3d "watch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch"\x3e\x3ccode\x3ewatch()\x3c/code\x3e\x3c/a\x3e method.\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cp\x3eSee \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/watch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch"\x3ewatch()\x3c/a\x3e\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch",
"title":"Object.Watch","_id":"4eea84eea4c86c4dba00009a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eWatches for a property to be assigned a value and runs a function when that occurs.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobject\x3c/em\x3e.watch(\x3cem\x3eprop\x3c/em\x3e, \x3cem\x3ehandler\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of a property of the object on which you wish to monitor changes.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ehandler\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA function to call when the specified property\'s value changes.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cdiv class \x3d "warning"\x3e\x3cstrong\x3eWarning:\x3c/strong\x3e Generally you should avoid using \x3ccode\x3ewatch()\x3c/code\x3e and \x3ca title \x3d "/en/JavaScript/Reference/Global_Objects/Object/unwatch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch"\x3e\x3ccode\x3eunwatch()\x3c/code\x3e\x3c/a\x3e when possible. These two methods are implemented only in Gecko, and they\'re intended primarily for debugging use. In addition, using watchpoints has a serious negative impact on performance, which is especially true when used on global objects, such as window. You can usually use setters and getters or proxies instead. See \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch#Compatibility"\x3eCompatibility\x3c/a\x3e for details.\x3c/div\x3e\n\x3cp\x3eWatches for assignment to a property named \x3ccode\x3eprop\x3c/code\x3e in this object, calling \x3ccode\x3ehandler(prop, oldval, newval)\x3c/code\x3e whenever \x3ccode\x3eprop\x3c/code\x3e is set and storing the return value in that property. A watchpoint can filter (or nullify) the value assignment, by returning a modified \x3ccode\x3enewval\x3c/code\x3e (or by returning \x3ccode\x3eoldval\x3c/code\x3e).\x3c/p\x3e\n\x3cp\x3eIf you delete a property for which a watchpoint has been set, that watchpoint does not disappear. If you later recreate the property, the watchpoint is still in effect.\x3c/p\x3e\n\x3cp\x3eTo remove a watchpoint, use the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/unwatch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch"\x3eunwatch()\x3c/a\x3e\x3c/code\x3e method. By default, the \x3ccode\x3ewatch\x3c/code\x3e method is inherited by every object descended from \x3ccode\x3eObject\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eThe JavaScript debugger has functionality similar to that provided by this method, as well as other debugging options. For information on the debugger, see \x3ca title \x3d "en/Venkman" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Venkman"\x3eVenkman\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eIn Firefox, \x3ccode\x3ehandler\x3c/code\x3e is only called from assignments in script, not from native code. For example, \x3ccode\x3ewindow.watch(\'location\', myHandler)\x3c/code\x3e will not call \x3ccode\x3emyHandler\x3c/code\x3e if the user clicks a link to an anchor within the current document. However, \x3ccode\x3ewindow.location +\x3d \'#myAnchor\'\x3c/code\x3e will call \x3ccode\x3emyHandler\x3c/code\x3e.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Calling \x3ccode\x3ewatch()\x3c/code\x3e on an object for a specific property overrides and previous handler attached for that property.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_watch_and_unwatch"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3ewatch\x3c/code\x3e and \x3ccode\x3eunwatch\x3c/code\x3e\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {p:1};\no.watch(\x26quot;p\x26quot;,\n  function (id, oldval, newval) {\n    0 \x26\x26 console.log(\x26quot;o.\x26quot; + id + \x26quot; changed from \x26quot; + oldval + \x26quot; to \x26quot; + newval);\n    return newval;\n  });\n\no.p \x3d 2;\no.p \x3d 3;\ndelete o.p;\no.p \x3d 4;\n\no.unwatch(\'p\');\no.p \x3d 5;\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eo.p changed from 1 to 2\no.p changed from 2 to 3\no.p changed from undefined to 4\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_watch_to_validate_an_object.27s_properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_watch_to_validate_an_object\'s_properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3ewatch\x3c/code\x3e to validate an object\'s properties\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3ewatch\x3c/code\x3e to test any assignment to an object\'s properties. This example ensures that every Person always has a valid name and an age between 0 and 200.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ePerson \x3d function(name,age) {\n  this.watch(\x26quot;age\x26quot;, Person.prototype._isValidAssignment);\n  this.watch(\x26quot;name\x26quot;, Person.prototype._isValidAssignment);\n  this.name \x3d name;\n  this.age \x3d age;\n}\n\nPerson.prototype.toString \x3d function() {\n  return this.name + \x26quot;, \x26quot; + this.age;\n};\n\nPerson.prototype._isValidAssignment \x3d function(id, oldval, newval) {\n  if (id \x3d\x3d\x3d \x26quot;name\x26quot; \x26amp;\x26amp; (!newval || newval.length \x26gt; 30)) {\n    throw new RangeError(\x26quot;invalid name for \x26quot; + this);\n  }\n  if (id \x3d\x3d\x3d \x26quot;age\x26quot;  \x26amp;\x26amp; (newval \x26lt; 0 || newval \x26gt; 200)) {\n    throw new RangeError(\x26quot;invalid age for \x26quot; + this);\n  }\n  return newval;\n}\n\nwill \x3d new Person(\x26quot;Will\x26quot;, 29);\nprint(will);   // Will, 29\n\ntry {\n  will.name \x3d \x26quot;\x26quot;;\n} catch (e) {\n  print(e);\n}\n\ntry {\n  will.age \x3d -4;\n} catch (e) {\n  print(e);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eWill, 29\nRangeError: invalid name for Will, 29\nRangeError: invalid age for Will, 29\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_watch_and_unwatch"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3ewatch\x3c/code\x3e and \x3ccode\x3eunwatch\x3c/code\x3e\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {p:1};\no.watch(\x26quot;p\x26quot;,\n  function (id, oldval, newval) {\n    0 \x26\x26 console.log(\x26quot;o.\x26quot; + id + \x26quot; changed from \x26quot; + oldval + \x26quot; to \x26quot; + newval);\n    return newval;\n  });\n\no.p \x3d 2;\no.p \x3d 3;\ndelete o.p;\no.p \x3d 4;\n\no.unwatch(\'p\');\no.p \x3d 5;\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eo.p changed from 1 to 2\no.p changed from 2 to 3\no.p changed from undefined to 4\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_watch_to_validate_an_object.27s_properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_watch_to_validate_an_object\'s_properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3ewatch\x3c/code\x3e to validate an object\'s properties\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3ewatch\x3c/code\x3e to test any assignment to an object\'s properties. This example ensures that every Person always has a valid name and an age between 0 and 200.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ePerson \x3d function(name,age) {\n  this.watch(\x26quot;age\x26quot;, Person.prototype._isValidAssignment);\n  this.watch(\x26quot;name\x26quot;, Person.prototype._isValidAssignment);\n  this.name \x3d name;\n  this.age \x3d age;\n}\n\nPerson.prototype.toString \x3d function() {\n  return this.name + \x26quot;, \x26quot; + this.age;\n};\n\nPerson.prototype._isValidAssignment \x3d function(id, oldval, newval) {\n  if (id \x3d\x3d\x3d \x26quot;name\x26quot; \x26amp;\x26amp; (!newval || newval.length \x26gt; 30)) {\n    throw new RangeError(\x26quot;invalid name for \x26quot; + this);\n  }\n  if (id \x3d\x3d\x3d \x26quot;age\x26quot;  \x26amp;\x26amp; (newval \x26lt; 0 || newval \x26gt; 200)) {\n    throw new RangeError(\x26quot;invalid age for \x26quot; + this);\n  }\n  return newval;\n}\n\nwill \x3d new Person(\x26quot;Will\x26quot;, 29);\nprint(will);   // Will, 29\n\ntry {\n  will.name \x3d \x26quot;\x26quot;;\n} catch (e) {\n  print(e);\n}\n\ntry {\n  will.age \x3d -4;\n} catch (e) {\n  print(e);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eWill, 29\nRangeError: invalid name for Will, 29\nRangeError: invalid age for Will, 29\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3eThis \x3cspan class \x3d "external"\x3e\x3ca class \x3d "link-https" title \x3d "https://gist.github.com/384583" rel \x3d "external" href \x3d "https://gist.github.com/384583" target \x3d "_blank"\x3ePolyfill\x3c/a\x3e that offers watch to all ES5 compatible browser\x3c/span\x3e\x3c/li\x3e \x3cli\x3eUsing a \x3ca title \x3d "Proxy" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Proxy"\x3eProxy\x3c/a\x3e enables you do that even deeper changes to how property assignments work\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/unwatch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch"\x3eunwatch()\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description",
"Examples","Example: Using watch and unwatch","Example: Using watch to validate an object's properties","Compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/prototype","title":"Boolean.prototype","_id":"4eea84f0a4c86c4dba00009b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the prototype for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/a\x3e instances inherit from \x3cstrong\x3e\x3ccode\x3eBoolean.prototype\x3c/code\x3e\x3c/strong\x3e. You can use the constructor\'s prototype object to add properties or methods to all \x3ccode\x3eBoolean\x3c/code\x3e instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the function that created an instance\'s prototype. This is the \x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/a\x3e function by default.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string containing the source of the \x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/a\x3e object; you can use this string to create an equivalent object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string of either \x26quot;true\x26quot; or \x26quot;false\x26quot; depending upon the value of the object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3emethod.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/valueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the \x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/a\x3e object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3e\x3ccode\x3eObject.prototype.valueOf\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/constructor","title":"Boolean.constructor","_id":"4eea84f1a4c86c4dba00009c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3eBoolean\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean" title \x3d "en/JavaScript/Reference/Global_Objects/Boolean"\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eSee \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3eObject.constructor\x3c/a\x3e.\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toSource",
"title":"Boolean.toSource","_id":"4eea84f2a4c86c4dba00009d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code of the object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean" title \x3d "en/JavaScript/Reference/Global_Objects/Boolean"\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eboolean\x3c/em\x3e.toSource()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\n\x3c/p\x3e\x3cp\x3e\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For the built-in \x3ccode\x3eBoolean\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\n\x3c/li\x3e\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3efunction Boolean() {\n   [native code]\n}\n\x3c/pre\x3e\n\x3cul\x3e\x3cli\x3e For instances of \x3ccode\x3eBoolean\x3c/code\x3e, \x3ccode\x3etoSource\x3c/code\x3e returns a string representing the source code.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.toSource\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":["Summary"," Syntax "," Parameters "," Description "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toString",
"title":"Boolean.toString","_id":"4eea84f2a4c86c4dba00009e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the specified Boolean object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean" title \x3d "en/JavaScript/Reference/Global_Objects/Boolean"\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3ebool\x3c/em\x3e.toString()\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3eBoolean\x3c/a\x3e object overrides the \x3ccode\x3etoString\x3c/code\x3e method of the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e object; it does not inherit \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e. For Boolean objects, the \x3ccode\x3etoString\x3c/code\x3e method returns a string representation of the object.\x3c/p\x3e\n\x3cp\x3eJavaScript calls the \x3ccode\x3etoString\x3c/code\x3e method automatically when a Boolean is to be represented as a text value or when a Boolean is referred to in a string concatenation.\x3c/p\x3e\n\x3cp\x3eFor Boolean objects and values, the built-in \x3ccode\x3etoString\x3c/code\x3e method returns the string \x26quot;\x3ccode\x3etrue\x3c/code\x3e\x26quot; or \x26quot;\x3ccode\x3efalse\x3c/code\x3e\x26quot; depending on the value of the boolean object. In the following code, \x3ccode\x3eflag.toString\x3c/code\x3e returns \x26quot;\x3ccode\x3etrue\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\x3cpre\x3e\nvar flag \x3d new Boolean(true)\nvar myVar \x3d flag.toString()\n\x3c/pre\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax"," Parameters ","Description"," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/valueOf",
"title":"Boolean.valueOf","_id":"4eea84f3a4c86c4dba00009f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the primitive value of a Boolean object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean" title \x3d "en/JavaScript/Reference/Global_Objects/Boolean"\x3e\x3ccode\x3eBoolean\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3ebool\x3c/em\x3e.valueOf()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3evalueOf\x3c/code\x3e method of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean"\x3eBoolean\x3c/a\x3e returns the primitive value of a Boolean object or literal Boolean as a Boolean data type.\x3c/p\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_valueOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3evalueOf\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3e\nx \x3d new Boolean();\nmyVar \x3d x.valueOf()      //assigns false to myVar\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_valueOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3evalueOf\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3e\nx \x3d new Boolean();\nmyVar \x3d x.valueOf()      //assigns false to myVar\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.valueOf\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using valueOf","See Also"]},
{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString","title":"Object.ToLocaleString","_id":"4eea84f5a4c86c4dba0000a0","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the object. This method is meant to be overriden by derived objects for locale-specific purposes.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262 Edition 3\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\ntoLocaleString()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eObject\x3c/code\x3e\'s \x3ccode\x3etoLocaleString\x3c/code\x3e returns the result of calling \x3ccode\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e.\n\x3c/p\x3e\x3cp\x3eThis function is provided to give objects a generic \x3ccode\x3etoLocaleString\x3c/code\x3e method, even though not all may use it. Currently, only \x3ccode\x3eArray\x3c/code\x3e, \x3ccode\x3eNumber\x3c/code\x3e, and \x3ccode\x3eDate\x3c/code\x3e override \x3ccode\x3etoLocaleString\x3c/code\x3e.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length",
"title":"Array.length","_id":"4eea84f6a4c86c4dba0000a1","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eAn unsigned, 32-bit integer that specifies the number of elements in an array.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe value of the \x3ccode\x3elength\x3c/code\x3e property is an integer with a positive sign and a value less than 2 to the 32 power (2\x3csup\x3e32\x3c/sup\x3e).\n\x3c/p\x3e\x3cp\x3eYou can set the \x3ccode\x3elength\x3c/code\x3e property to truncate an array at any time. When you extend an array by changing its \x3ccode\x3elength\x3c/code\x3e property, the number of actual elements does not increase; for example, if you set \x3ccode\x3elength\x3c/code\x3e to 3 when it is currently 2, the array still contains only 2 elements.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Iterating_over_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Iterating over an array \x3c/h4\x3e\n\x3cp\x3eIn the following example the array \x3ccode\x3enumbers\x3c/code\x3e is iterated through by looking at the \x3ccode\x3elength\x3c/code\x3e property to see how many elements it has. Each value is then doubled.\n\x3c/p\x3e\n\x3cpre\x3e\nvar numbers \x3d [1,2,3,4,5];\nfor (var i \x3d 0; i \x26lt; numbers.length; i++) {\n  numbers[i] *\x3d 2;\n}\n// numbers is now [2,4,6,8,10];\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Shortening_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Shortening an array \x3c/h4\x3e\n\x3cp\x3eThe following example shortens the array \x3ccode\x3estatesUS\x3c/code\x3e to a length of 50 if the current length is greater than 50.\n\x3c/p\x3e\n\x3cpre\x3e\nif (statesUS.length \x26gt; 50) {\n   statesUS.length\x3d50\n}\n\x3c/pre\x3e\n\n\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Iterating_over_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Iterating over an array \x3c/h4\x3e\n\x3cp\x3eIn the following example the array \x3ccode\x3enumbers\x3c/code\x3e is iterated through by looking at the \x3ccode\x3elength\x3c/code\x3e property to see how many elements it has. Each value is then doubled.\n\x3c/p\x3e\n\x3cpre\x3e\nvar numbers \x3d [1,2,3,4,5];\nfor (var i \x3d 0; i \x26lt; numbers.length; i++) {\n  numbers[i] *\x3d 2;\n}\n// numbers is now [2,4,6,8,10];\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Shortening_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Shortening an array \x3c/h4\x3e\n\x3cp\x3eThe following example shortens the array \x3ccode\x3estatesUS\x3c/code\x3e to a length of 50 if the current length is greater than 50.\n\x3c/p\x3e\n\x3cpre\x3e\nif (statesUS.length \x26gt; 50) {\n   statesUS.length\x3d50\n}\n\x3c/pre\x3e\n\n\n\x3c/div\x3e'],"sectionNames":["Summary"," Description "," Examples "," Example: Iterating over an array ",
" Example: Shortening an array "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join","title":"Array.join","_id":"4eea84f7a4c86c4dba0000a2","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eJoins all elements of an array into a string.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array" title \x3d "en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.join(\x3cem\x3eseparator\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eseparator\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eSpecifies a string to separate each element of the array. The separator is converted to a string if necessary. If omitted, the array elements are separated with a comma.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe string conversions of all array elements are joined into one string.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Joining_an_array_three_different_ways"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Joining an array three different ways\x3c/h4\x3e\n\x3cp\x3eThe following example creates an array, \x3ccode\x3ea\x3c/code\x3e, with three elements, then joins the array three times: using the default separator, then a comma and a space, and then a plus.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar a \x3d new Array(\x26quot;Wind\x26quot;,\x26quot;Rain\x26quot;,\x26quot;Fire\x26quot;);\nvar myVar1 \x3d a.join();      // assigns \x26quot;Wind,Rain,Fire\x26quot; to myVar1\nvar myVar2 \x3d a.join(\x26quot;, \x26quot;);  // assigns \x26quot;Wind, Rain, Fire\x26quot; to myVar2\nvar myVar3 \x3d a.join(\x26quot; + \x26quot;); // assigns \x26quot;Wind + Rain + Fire\x26quot; to myVar3\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Joining_an_array_three_different_ways"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Joining an array three different ways\x3c/h4\x3e\n\x3cp\x3eThe following example creates an array, \x3ccode\x3ea\x3c/code\x3e, with three elements, then joins the array three times: using the default separator, then a comma and a space, and then a plus.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar a \x3d new Array(\x26quot;Wind\x26quot;,\x26quot;Rain\x26quot;,\x26quot;Fire\x26quot;);\nvar myVar1 \x3d a.join();      // assigns \x26quot;Wind,Rain,Fire\x26quot; to myVar1\nvar myVar2 \x3d a.join(\x26quot;, \x26quot;);  // assigns \x26quot;Wind, Rain, Fire\x26quot; to myVar2\nvar myVar3 \x3d a.join(\x26quot; + \x26quot;); // assigns \x26quot;Wind + Rain + Fire\x26quot; to myVar3\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/split" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split"\x3eString:split\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Joining an array three different ways","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice","title":"Array.slice","_id":"4eea84f8a4c86c4dba0000a3","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a one-level deep copy of a portion of an array.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array" title \x3d "en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.slice(\x3cem\x3ebegin\x3c/em\x3e[, \x3cem\x3eend\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebegin\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eZero-based index at which to begin extraction.\x3c/dd\x3e \x3cdd\x3eAs a negative index, \x3ccode\x3estart\x3c/code\x3e indicates an offset from the end of the sequence. \x3ccode\x3eslice(-2)\x3c/code\x3e extracts the second-to-last element and the last element in the sequence.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eend\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eZero-based index at which to end extraction. \x3ccode\x3eslice\x3c/code\x3e extracts up to but not including \x3ccode\x3eend\x3c/code\x3e.\x3c/dd\x3e \x3cdd\x3e\x3ccode\x3eslice(1,4)\x3c/code\x3e extracts the second element through the fourth element (elements indexed 1, 2, and 3).\x3c/dd\x3e \x3cdd\x3eAs a negative index, \x3ccode\x3eend\x3c/code\x3e indicates an offset from the end of the sequence. \x3ccode\x3eslice(2,-1)\x3c/code\x3e extracts the third element through the second-to-last element in the sequence.\x3c/dd\x3e \x3cdd\x3eIf \x3ccode\x3eend\x3c/code\x3e is omitted, \x3ccode\x3eslice\x3c/code\x3e extracts to the end of the sequence.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eslice\x3c/code\x3e does not alter the original array, but returns a new \x26quot;one level deep\x26quot; copy that contains copies of the elements sliced from the original array. Elements of the original array are copied into the new array as follows:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eFor object references (and not the actual object), \x3ccode\x3eslice\x3c/code\x3e copies object references into the new array. Both the original and new array refer to the same object. If a referenced object changes, the changes are visible to both the new and original arrays.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cul\x3e \x3cli\x3eFor strings and numbers (not \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String"\x3eString\x3c/a\x3e and \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/Number"\x3eNumber\x3c/a\x3e objects), \x3ccode\x3eslice\x3c/code\x3e copies strings and numbers into the new array. Changes to the string or number in one array does not affect the other array.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eIf a new element is added to either array, the other array is not affected.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_slice"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eslice\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3eslice\x3c/code\x3e creates a new array, \x3ccode\x3enewCar\x3c/code\x3e, from \x3ccode\x3emyCar\x3c/code\x3e. Both include a reference to the object \x3ccode\x3emyHonda\x3c/code\x3e. When the color of \x3ccode\x3emyHonda\x3c/code\x3e is changed to purple, both arrays reflect the change.\x3c/p\x3e\n\x3cpre\x3e\n// Using slice, create newCar from myCar.\nvar myHonda \x3d { color: \x26quot;red\x26quot;, wheels: 4, engine: { cylinders: 4, size: 2.2 } };\nvar myCar \x3d [myHonda, 2, \x26quot;cherry condition\x26quot;, \x26quot;purchased 1997\x26quot;];\nvar newCar \x3d myCar.slice(0, 2);\n\n// Print the values of myCar, newCar, and the color of myHonda\n//  referenced from both arrays.\nprint(\x26quot;myCar \x3d \x26quot; + myCar.toSource());\nprint(\x26quot;newCar \x3d \x26quot; + newCar.toSource());\nprint(\x26quot;myCar[0].color \x3d \x26quot; + myCar[0].color);\nprint(\x26quot;newCar[0].color \x3d \x26quot; + newCar[0].color);\n\n// Change the color of myHonda.\nmyHonda.color \x3d \x26quot;purple\x26quot;;\nprint(\x26quot;The new color of my Honda is \x26quot; + myHonda.color);\n\n// Print the color of myHonda referenced from both arrays.\nprint(\x26quot;myCar[0].color \x3d \x26quot; + myCar[0].color);\nprint(\x26quot;newCar[0].color \x3d \x26quot; + newCar[0].color);\n\x3c/pre\x3e\n\x3cp\x3eThis script writes:\x3c/p\x3e\n\x3cpre\x3e\nmyCar \x3d [{color:\x26quot;red\x26quot;, wheels:4, engine:{cylinders:4, size:2.2}}, 2, \x26quot;cherry condition\x26quot;, \x26quot;purchased 1997\x26quot;]\nnewCar \x3d [{color:\x26quot;red\x26quot;, wheels:4, engine:{cylinders:4, size:2.2}}, 2]\nmyCar[0].color \x3d red \nnewCar[0].color \x3d red\nThe new color of my Honda is purple\nmyCar[0].color \x3d purple\nnewCar[0].color \x3d purple\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_slice"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eslice\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3eslice\x3c/code\x3e creates a new array, \x3ccode\x3enewCar\x3c/code\x3e, from \x3ccode\x3emyCar\x3c/code\x3e. Both include a reference to the object \x3ccode\x3emyHonda\x3c/code\x3e. When the color of \x3ccode\x3emyHonda\x3c/code\x3e is changed to purple, both arrays reflect the change.\x3c/p\x3e\n\x3cpre\x3e\n// Using slice, create newCar from myCar.\nvar myHonda \x3d { color: \x26quot;red\x26quot;, wheels: 4, engine: { cylinders: 4, size: 2.2 } };\nvar myCar \x3d [myHonda, 2, \x26quot;cherry condition\x26quot;, \x26quot;purchased 1997\x26quot;];\nvar newCar \x3d myCar.slice(0, 2);\n\n// Print the values of myCar, newCar, and the color of myHonda\n//  referenced from both arrays.\nprint(\x26quot;myCar \x3d \x26quot; + myCar.toSource());\nprint(\x26quot;newCar \x3d \x26quot; + newCar.toSource());\nprint(\x26quot;myCar[0].color \x3d \x26quot; + myCar[0].color);\nprint(\x26quot;newCar[0].color \x3d \x26quot; + newCar[0].color);\n\n// Change the color of myHonda.\nmyHonda.color \x3d \x26quot;purple\x26quot;;\nprint(\x26quot;The new color of my Honda is \x26quot; + myHonda.color);\n\n// Print the color of myHonda referenced from both arrays.\nprint(\x26quot;myCar[0].color \x3d \x26quot; + myCar[0].color);\nprint(\x26quot;newCar[0].color \x3d \x26quot; + newCar[0].color);\n\x3c/pre\x3e\n\x3cp\x3eThis script writes:\x3c/p\x3e\n\x3cpre\x3e\nmyCar \x3d [{color:\x26quot;red\x26quot;, wheels:4, engine:{cylinders:4, size:2.2}}, 2, \x26quot;cherry condition\x26quot;, \x26quot;purchased 1997\x26quot;]\nnewCar \x3d [{color:\x26quot;red\x26quot;, wheels:4, engine:{cylinders:4, size:2.2}}, 2]\nmyCar[0].color \x3d red \nnewCar[0].color \x3d red\nThe new color of my Honda is purple\nmyCar[0].color \x3d purple\nnewCar[0].color \x3d purple\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using slice"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf","title":"Array.indexOf","_id":"4eea84faa4c86c4dba0000a4","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the first index at which a given element can be found in the array, or -1 if it is not present.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.indexOf(\x3cem\x3esearchElement\x3c/em\x3e[, \x3cem\x3efromIndex\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esearchElement\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eElement to locate in the array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3efromIndex\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe index at which to begin the search. Defaults to 0, i.e. the whole array will be searched. If the index is greater than or equal to the length of the array, -1 is returned, i.e. the array will not be searched. If negative, it is taken as the offset from the end of the array. Note that even when the index is negative, the array is still searched from front to back. If the calculated index is less than 0, the whole array will be searched.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eindexOf\x3c/code\x3e compares \x3ccode\x3esearchElement\x3c/code\x3e to elements of the Array using \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators#Using_the_Equality_Operators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators"\x3estrict equality\x3c/a\x3e (the same method used by the \x3d\x3d\x3d, or triple-equals, operator).\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCompatibility\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eindexOf\x3c/code\x3e is a recent addition to the ECMA-262 standard; as such it may not be present in all browsers. You can work around this by inserting the following code at the beginning of your scripts, allowing use of \x3ccode\x3eindexOf\x3c/code\x3e in implementations which do not natively support it. This algorithm is exactly the one specified in ECMA-262, 5th edition, assuming\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eObject\x3c/code\x3e,\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eTypeError\x3c/code\x3e,\x26nbsp;\x3ccode\x3eNumber\x3c/code\x3e, \x3ccode\x3eMath.floor\x3c/code\x3e, \x3ccode\x3eMath.abs\x3c/code\x3e, and\x26nbsp;\x3ccode\x3eMath.max\x3c/code\x3e have their original value. \x26nbsp;\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (!Array.prototype.indexOf) {\n    Array.prototype.indexOf \x3d function (searchElement /*, fromIndex */ ) {\n        \x26quot;use strict\x26quot;;\n        if (this \x3d\x3d null) {\n            throw new TypeError();\n        }\n        var t \x3d Object(this);\n        var len \x3d t.length \x26gt;\x26gt;\x26gt; 0;\n        if (len \x3d\x3d\x3d 0) {\n            return -1;\n        }\n        var n \x3d 0;\n        if (arguments.length \x26gt; 0) {\n            n \x3d Number(arguments[1]);\n            if (n !\x3d n) { // shortcut for verifying if it\'s NaN\n                n \x3d 0;\n            } else if (n !\x3d 0 \x26amp;\x26amp; n !\x3d Infinity \x26amp;\x26amp; n !\x3d -Infinity) {\n                n \x3d (n \x26gt; 0 || -1) * Math.floor(Math.abs(n));\n            }\n        }\n        if (n \x26gt;\x3d len) {\n            return -1;\n        }\n        var k \x3d n \x26gt;\x3d 0 ? n : Math.max(len - Math.abs(n), 0);\n        for (; k \x26lt; len; k++) {\n            if (k in t \x26amp;\x26amp; t[k] \x3d\x3d\x3d searchElement) {\n                return k;\n            }\n        }\n        return -1;\n    }\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_indexOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using indexOf\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eindexOf\x3c/code\x3e to locate values in an array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar array \x3d [2, 5, 9];\nvar index \x3d array.indexOf(2);\n// index is 0\nindex \x3d array.indexOf(7);\n// index is -1\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Finding_all_the_occurrences_of_an_element"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Finding all the occurrences of an element\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eindexOf\x3c/code\x3e to find all the indices of an element in a given array, using \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e to add them to another array as they are found.\x3c/p\x3e\n\x3cdiv style \x3d "text-align: left; "\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar indices \x3d [];\nvar idx \x3d array.indexOf(element);\nwhile (idx !\x3d -1) {\n    indices.push(idx);\n    idx \x3d array.indexOf(element, idx + 1);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_indexOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using indexOf\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eindexOf\x3c/code\x3e to locate values in an array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar array \x3d [2, 5, 9];\nvar index \x3d array.indexOf(2);\n// index is 0\nindex \x3d array.indexOf(7);\n// index is -1\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Finding_all_the_occurrences_of_an_element"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Finding all the occurrences of an element\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eindexOf\x3c/code\x3e to find all the indices of an element in a given array, using \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e to add them to another array as they are found.\x3c/p\x3e\n\x3cdiv style \x3d "text-align: left; "\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar indices \x3d [];\nvar idx \x3d array.indexOf(element);\nwhile (idx !\x3d -1) {\n    indices.push(idx);\n    idx \x3d array.indexOf(element, idx + 1);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf"\x3elastIndexOf\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility","Examples",
"Example: Using indexOf","Example: Finding all the occurrences of an element","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push","title":"Array.push","_id":"4eea84faa4c86c4dba0000a5","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eMutates an array by appending the given elements and returning the new length of the array.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.push(\x3cem\x3eelement1\x3c/em\x3e, ..., \x3cem\x3eelementN\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eelement1, ..., element\x3cem\x3eN\x3c/em\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe elements to add to the end of the array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Returns"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eReturns\x3c/h3\x3e\n\x3cp\x3eThe new \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3elength\x3c/a\x3e\x3c/code\x3e property of the object upon which the method was called.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3epush\x3c/code\x3e method is useful for easily appending values to an array.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3epush\x3c/code\x3e is intentionally generic. This method can be \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecalled\x3c/a\x3e or \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapplied\x3c/a\x3e to objects resembling arrays. The \x3ccode\x3epush\x3c/code\x3e method relies on a \x3ccode\x3elength\x3c/code\x3e property to determine where to start inserting the given values. If the \x3ccode\x3elength\x3c/code\x3e property cannot be converted into a number, the index used is 0. This includes the possibility of \x3ccode\x3elength\x3c/code\x3e being nonexistent, in which case \x3ccode\x3elength\x3c/code\x3e will also be created.\x3c/p\x3e\n\x3cp\x3eThe only native, array-like objects are \x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String"\x3estrings\x3c/a\x3e, although they are not suitable in applications of this method, as strings are immutable.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Adding_elements_to_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Adding elements to an array\x3c/h4\x3e\n\x3cp\x3eThe following code creates the \x3ccode\x3esports\x3c/code\x3e array containing two elements, then appends two elements to it. After the code executes, \x3ccode\x3esports\x3c/code\x3e contains 4 elements: \x26quot;soccer\x26quot;, \x26quot;baseball\x26quot;, \x26quot;football\x26quot; and \x26quot;swimming\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar sports \x3d [\x26quot;soccer\x26quot;, \x26quot;baseball\x26quot;];\nsports.push(\x26quot;football\x26quot;, \x26quot;swimming\x26quot;);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Adding_elements_to_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Adding elements to an array\x3c/h4\x3e\n\x3cp\x3eThe following code creates the \x3ccode\x3esports\x3c/code\x3e array containing two elements, then appends two elements to it. After the code executes, \x3ccode\x3esports\x3c/code\x3e contains 4 elements: \x26quot;soccer\x26quot;, \x26quot;baseball\x26quot;, \x26quot;football\x26quot; and \x26quot;swimming\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar sports \x3d [\x26quot;soccer\x26quot;, \x26quot;baseball\x26quot;];\nsports.push(\x26quot;football\x26quot;, \x26quot;swimming\x26quot;);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat"\x3econcat\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Returns","Description","Examples","Example: Adding elements to an array","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice","title":"Array.splice","_id":"4eea84fca4c86c4dba0000a6","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eChanges the content of an array, adding new elements while removing old elements.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.splice(\x3cem\x3eindex\x3c/em\x3e ,\x3cem\x3e howMany\x3c/em\x3e[\x3cem\x3e,\x3c/em\x3e\x3cem\x3e element1\x3c/em\x3e[, ...[, \x3cem\x3eelementN\x3c/em\x3e]]])\x3c/code\x3e\x3cbr/\x3e \x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.splice(\x3cem\x3eindex\x3c/em\x3e[,\x3cem\x3e howMany\x3c/em\x3e[,\x3cem\x3e element1\x3c/em\x3e[, ...[, \x3cem\x3eelementN\x3c/em\x3e]]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eindex\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eIndex at which to start changing the array. If negative, will begin that many elements from the end.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ehowMany\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn integer indicating the number of old array elements to remove. If \x3ccode\x3ehowMany\x3c/code\x3e is 0, no elements are removed. In this case, you should specify at least one new element. If no \x3ccode\x3ehowMany\x3c/code\x3e parameter is specified (second syntax above, which is a SpiderMonkey extension), all elements after \x3ccode\x3eindex\x3c/code\x3e are removed.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eelement1, ..., element\x3cem\x3eN\x3c/em\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe elements to add to the array. If you don\'t specify any elements, \x3ccode\x3esplice\x3c/code\x3e simply removes elements from the array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Returns"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eReturns\x3c/h2\x3e\n\x3cp\x3eAn array containing the removed elements. If only one element is removed, an array of one element is returned.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eIf you specify a different number of elements to insert than the number you\'re removing, the array will have a different length at the end of the call.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Backward_Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBackward Compatibility\x3c/h2\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "JavaScript_1.2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eJavaScript 1.2\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3esplice\x3c/code\x3e method returns the element removed, if only one element is removed (\x3ccode\x3ehowMany\x3c/code\x3e parameter is 1); otherwise, the method returns an array containing the removed elements. Note that the last browser to use JavaScript 1.2 was Netscape Navigator 4, so you can depend on \x3ccode\x3esplice\x3c/code\x3e always returning an array.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "JavaScript_1.2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eJavaScript 1.2\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3esplice\x3c/code\x3e method returns the element removed, if only one element is removed (\x3ccode\x3ehowMany\x3c/code\x3e parameter is 1); otherwise, the method returns an array containing the removed elements. Note that the last browser to use JavaScript 1.2 was Netscape Navigator 4, so you can depend on \x3ccode\x3esplice\x3c/code\x3e always returning an array.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Using_splice"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3esplice\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following script illustrate the use of splice:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// assumes a print function is defined\nvar myFish \x3d [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;, \x26quot;mandarin\x26quot;, \x26quot;surgeon\x26quot;];\nprint(\x26quot;myFish: \x26quot; + myFish);\n\nvar removed \x3d myFish.splice(2, 0, \x26quot;drum\x26quot;);\nprint(\x26quot;After adding 1: \x26quot; + myFish);\nprint(\x26quot;removed is: \x26quot; + removed);\n\nremoved \x3d myFish.splice(3, 1);\nprint(\x26quot;After removing 1: \x26quot; + myFish);\nprint(\x26quot;removed is: \x26quot; + removed);\n\nremoved \x3d myFish.splice(2, 1, \x26quot;trumpet\x26quot;);\nprint(\x26quot;After replacing 1: \x26quot; + myFish);\nprint(\x26quot;removed is: \x26quot; + removed);\n\nremoved \x3d myFish.splice(0, 2, \x26quot;parrot\x26quot;, \x26quot;anemone\x26quot;, \x26quot;blue\x26quot;);\nprint(\x26quot;After replacing 2: \x26quot; + myFish);\nprint(\x26quot;removed is: \x26quot; + removed);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nmyFish: angel,clown,mandarin,surgeon\nAfter adding 1: angel,clown,drum,mandarin,surgeon\nremoved is: \nAfter removing 1: angel,clown,drum,surgeon\nremoved is: mandarin\nAfter replacing 1: angel,clown,trumpet,surgeon\nremoved is: drum\nAfter replacing 2: parrot,anemone,blue,trumpet,surgeon\nremoved is: angel,clown\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Using_splice"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3esplice\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following script illustrate the use of splice:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// assumes a print function is defined\nvar myFish \x3d [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;, \x26quot;mandarin\x26quot;, \x26quot;surgeon\x26quot;];\nprint(\x26quot;myFish: \x26quot; + myFish);\n\nvar removed \x3d myFish.splice(2, 0, \x26quot;drum\x26quot;);\nprint(\x26quot;After adding 1: \x26quot; + myFish);\nprint(\x26quot;removed is: \x26quot; + removed);\n\nremoved \x3d myFish.splice(3, 1);\nprint(\x26quot;After removing 1: \x26quot; + myFish);\nprint(\x26quot;removed is: \x26quot; + removed);\n\nremoved \x3d myFish.splice(2, 1, \x26quot;trumpet\x26quot;);\nprint(\x26quot;After replacing 1: \x26quot; + myFish);\nprint(\x26quot;removed is: \x26quot; + removed);\n\nremoved \x3d myFish.splice(0, 2, \x26quot;parrot\x26quot;, \x26quot;anemone\x26quot;, \x26quot;blue\x26quot;);\nprint(\x26quot;After replacing 2: \x26quot; + myFish);\nprint(\x26quot;removed is: \x26quot; + removed);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nmyFish: angel,clown,mandarin,surgeon\nAfter adding 1: angel,clown,drum,mandarin,surgeon\nremoved is: \nAfter removing 1: angel,clown,drum,surgeon\nremoved is: mandarin\nAfter replacing 1: angel,clown,trumpet,surgeon\nremoved is: drum\nAfter replacing 2: parrot,anemone,blue,trumpet,surgeon\nremoved is: angel,clown\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Returns","Description","Backward Compatibility","JavaScript 1.2","Examples","Example: Using splice"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray","title":"Array.isArray","_id":"4eea84fda4c86c4dba0000a7","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eReturns \x3ccode\x3etrue\x3c/code\x3e if an object is an array, \x3ccode\x3efalse\x3c/code\x3e if it is not.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eArray.isArray(\x3cem\x3eobj\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object to be checked\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThis function is part of the ECMAScript 5 standard. See the\x26nbsp;\x3ca title \x3d "web-tech/2010/07/26/determining-with-absolute-accuracy-whether-or-not-a-javascript-object-is-an-array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/web-tech/2010/07/26/determining-with-absolute-accuracy-whether-or-not-a-javascript-object-is-an-array" class \x3d "new "\x3eWeb Tech Blog\x3c/a\x3e for more details.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// all following calls return true\nArray.isArray([]);\nArray.isArray([1]);\nArray.isArray( new Array() );\nArray.isArray( Array.prototype ); // Little known fact: Array.prototype itself is an array.\n\n// all following calls return false\nArray.isArray();\nArray.isArray({});\nArray.isArray(null);\nArray.isArray(undefined);\nArray.isArray(17);\nArray.isArray(\x26quot;Array\x26quot;);\nArray.isArray(true);\nArray.isArray(false);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cp\x3eRunning the following code before any other code will create \x3ccode\x3eArray.isArray\x3c/code\x3e if it\'s not natively available. This relies on \x3ccode\x3eObject.prototype.toString\x3c/code\x3e being unchanged and \x3ccode\x3ecall\x3c/code\x3e resolving to the native \x3ccode\x3eFunction.prototype.call\x3c/code\x3e method.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif(!Array.isArray) {\n  Array.isArray \x3d function (arg) {\n    return Object.prototype.toString.call(arg) \x3d\x3d \'[object Array]\';\n  };\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e10.5\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d "link-https" rel \x3d "external" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d510537" title \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d510537" target \x3d "_blank"\x3eBug\x26nbsp;510537\x3c/a\x3e -\x3cspan id \x3d "summary_alias_container"\x3e \x3cspan id \x3d "short_desc_nonedit_display"\x3eES5: Array.isArray\x3c/span\x3e \x3c/span\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Compatibility","Cross-browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/prototype","title":"Array.prototype","_id":"4eea84fea4c86c4dba0000a8","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the prototype for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e instances inherit from \x3ccode\x3eArray.prototype\x3c/code\x3e. As with all constructors, you can change the constructor\'s prototype object to make changes to all \x3ccode\x3eArray\x3c/code\x3e instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/length"\x3elength\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReflects the number of elements in an array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToSource" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Mutator_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMutator methods\x3c/h3\x3e\n\x3cp\x3eThese methods modify the array:\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the last element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the end of an array and returns the new length of the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReverses the order of the elements of an array -- the first becomes the last, and the last becomes the first.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the first element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/sort" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort"\x3esort\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSorts the elements of an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/splice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice"\x3esplice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds and/or removes elements from an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the front of an array and returns the new length of the array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Accessor_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAccessor methods\x3c/h3\x3e\n\x3cp\x3e\x3c/p\x3e\n\x3cp\x3eThese methods do not modify the array and return some representation of the array.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat"\x3econcat\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a new array comprised of this array joined with other array(s) and/or value(s).\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eJoins all elements of an array into a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice"\x3eslice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExtracts a section of an array and returns a new array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dt\x3e \x3cdd\x3eReturns an array literal representing the specified array; you can use this value to create a new array. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the array and its elements. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the first (least) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf"\x3elastIndexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Iteration_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eIteration methods\x3c/h3\x3e\n\x3cp\x3eSeveral methods take as arguments functions to be called back while processing the array. When these methods are called, the \x3ccode\x3elength\x3c/code\x3e of the array is sampled, and any element added beyond this length from within the callback is not visited. Other changes to the array (setting the value of or deleting an element) may affect the results of the operation if the method visits the changed element afterwards. While the specific behavior of these methods in such cases is well-defined, you should not rely upon it so as not to confuse others who might read your code. If you must mutate the array, copy into a new array instead.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/filter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter"\x3efilter\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with all of the elements of this array for which the provided filtering function returns true.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/forEach" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"\x3eforEach\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCalls a function for each element in the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/every" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every"\x3eevery\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if every element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/map" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map"\x3emap\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with the results of calling a provided function on every element in this array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/some" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some"\x3esome\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if at least one element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduce" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/Reduce"\x3ereduce\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from left-to-right) as to reduce it to a single value.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduceRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/ReduceRight"\x3ereduceRight\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Generic_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eGeneric methods\x3c/h3\x3e\n\x3cp\x3eMany methods on the JavaScript Array object are designed to be generally applied to all objects which \x26quot;look like\x26quot; Arrays. That is, they can be used on any object which has a \x3ccode\x3elength\x3c/code\x3e property, and which can usefully be accessed using numeric property names (as with \x3ccode\x3earray[5]\x3c/code\x3e indexing).  Some methods, such as \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/code\x3e, only read the \x3ccode\x3elength\x3c/code\x3e and numeric properties of the object they are called on. Others, like \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/code\x3e, require that the object\'s numeric properties and \x3ccode\x3elength\x3c/code\x3e be mutable; these methods can therefore not be called on objects like \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3eS\x3c/a\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3etring\x3c/a\x3e\x3c/code\x3e, which does not permit its \x3ccode\x3elength\x3c/code\x3e property or synthesized numeric properties to be set. \x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat"\x3econcat\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice"\x3eslice\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/sort" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort"\x3esort\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/splice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice"\x3esplice\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid #818151; background-color: #FFFFE1; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\x3cp style \x3d "margin: 4px 0px 4px 0px;"\x3eIntroduced in \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/every" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every"\x3eevery\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/filter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter"\x3efilter\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/forEach" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"\x3eforEach\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf"\x3elastIndexOf\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/map" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map"\x3emap\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/some" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some"\x3esome\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Mutator_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMutator methods\x3c/h3\x3e\n\x3cp\x3eThese methods modify the array:\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the last element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the end of an array and returns the new length of the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReverses the order of the elements of an array -- the first becomes the last, and the last becomes the first.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eRemoves the first element from an array and returns that element.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/sort" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort"\x3esort\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSorts the elements of an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/splice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice"\x3esplice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds and/or removes elements from an array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eAdds one or more elements to the front of an array and returns the new length of the array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Accessor_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAccessor methods\x3c/h3\x3e\n\x3cp\x3e\x3c/p\x3e\n\x3cp\x3eThese methods do not modify the array and return some representation of the array.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat"\x3econcat\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a new array comprised of this array joined with other array(s) and/or value(s).\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eJoins all elements of an array into a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice"\x3eslice\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExtracts a section of an array and returns a new array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dt\x3e \x3cdd\x3eReturns an array literal representing the specified array; you can use this value to create a new array. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the array and its elements. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the first (least) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf"\x3elastIndexOf\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Iteration_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eIteration methods\x3c/h3\x3e\n\x3cp\x3eSeveral methods take as arguments functions to be called back while processing the array. When these methods are called, the \x3ccode\x3elength\x3c/code\x3e of the array is sampled, and any element added beyond this length from within the callback is not visited. Other changes to the array (setting the value of or deleting an element) may affect the results of the operation if the method visits the changed element afterwards. While the specific behavior of these methods in such cases is well-defined, you should not rely upon it so as not to confuse others who might read your code. If you must mutate the array, copy into a new array instead.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/filter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter"\x3efilter\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with all of the elements of this array for which the provided filtering function returns true.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/forEach" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"\x3eforEach\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCalls a function for each element in the array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/every" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every"\x3eevery\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if every element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/map" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map"\x3emap\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new array with the results of calling a provided function on every element in this array.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/some" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some"\x3esome\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns true if at least one element in this array satisfies the provided testing function.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduce" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/Reduce"\x3ereduce\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from left-to-right) as to reduce it to a single value.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Objects/Array/reduceRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/ReduceRight"\x3ereduceRight\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8"\x3eJavaScript 1.8\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eApply a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Generic_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eGeneric methods\x3c/h3\x3e\n\x3cp\x3eMany methods on the JavaScript Array object are designed to be generally applied to all objects which \x26quot;look like\x26quot; Arrays. That is, they can be used on any object which has a \x3ccode\x3elength\x3c/code\x3e property, and which can usefully be accessed using numeric property names (as with \x3ccode\x3earray[5]\x3c/code\x3e indexing).  Some methods, such as \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/code\x3e, only read the \x3ccode\x3elength\x3c/code\x3e and numeric properties of the object they are called on. Others, like \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/code\x3e, require that the object\'s numeric properties and \x3ccode\x3elength\x3c/code\x3e be mutable; these methods can therefore not be called on objects like \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3eS\x3c/a\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3etring\x3c/a\x3e\x3c/code\x3e, which does not permit its \x3ccode\x3elength\x3c/code\x3e property or synthesized numeric properties to be set. \x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat"\x3econcat\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice"\x3eslice\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/sort" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort"\x3esort\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/splice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice"\x3esplice\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 1px solid #818151; background-color: #FFFFE1; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\x3cp style \x3d "margin: 4px 0px 4px 0px;"\x3eIntroduced in \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6"\x3eJavaScript 1.6\x3c/a\x3e\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/every" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every"\x3eevery\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/filter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter"\x3efilter\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/forEach" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"\x3eforEach\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf"\x3elastIndexOf\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/map" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map"\x3emap\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/some" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some"\x3esome\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eCore JavaScript 1.5 Reference:Global Objects:Array\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eFunction.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods","Mutator methods","Accessor methods","Iteration methods","Generic methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/constructor","title":"Array.constructor","_id":"4eea84fea4c86c4dba0000a9","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.1, NES 2.0\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eSee \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/constructor" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/constructor"\x3eObject.constructor\x3c/a\x3e.\n\x3c/p\x3e\n\n\x3c/div\x3e'],"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToSource",
"title":"Object.ToSource","_id":"4eea84fea4c86c4dba0000aa","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code of the object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.toSource()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eFor the built-in \x3ccode\x3eObject\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\x3c/li\x3e\n\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction Object() {\n   [native code]\n}\n\x3c/pre\x3e\n\x3cul\x3e \x3cli\x3eFor instances of \x3ccode\x3eObject\x3c/code\x3e, \x3ccode\x3etoSource\x3c/code\x3e returns a string representing the source code.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eYou can call \x3ccode\x3etoSource\x3c/code\x3e while debugging to examine the contents of an object.\x3c/p\x3e\n\x3cp\x3eIt is safe for objects to override the \x3ccode\x3etoSource\x3c/code\x3e method.\x26nbsp; For example:\x3c/p\x3e\n\x3cpre\x3e\nfunction Person(name) {\n    this.name \x3d name;\n}\nPerson.prototype.toSource \x3d function Person_toSource() {\n    return \x26quot;new Person(\x26quot; + uneval(this.name) + \x26quot;)\x26quot;;\n};\nalert(new Person(\x26quot;Joe\x26quot;).toSource());    // ---\x26gt;\x26nbsp;new Person(\x26quot;Joe\x26quot;)\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Built-in_toString_methods"\x3e\x3c/span\x3e\x3cspan id \x3d "Built-in_toSource_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eBuilt-in \x3ccode\x3etoSource\x3c/code\x3e methods\x3c/h4\x3e\n\x3cp\x3eEach core JavaScript type has its own \x3ccode\x3etoSource\x3c/code\x3e method. These objects are: \n\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e - Array Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toSource"\x3etoSource\x3c/a\x3e - Boolean Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toSource"\x3etoSource\x3c/a\x3e - Date Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toSource"\x3etoSource\x3c/a\x3e - Function Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource"\x3etoSource\x3c/a\x3e - Number Object method.\x3c/li\x3e \x3cli\x3e\x3cstrong\x3etoSource\x3c/strong\x3e - Object Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toSource"\x3etoSource\x3c/a\x3e - RegExp Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toSource"\x3etoSource\x3c/a\x3e - String Object method.\x3c/li\x3e\n\x3c/ul\x3e\n\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Built-in_toString_methods"\x3e\x3c/span\x3e\x3cspan id \x3d "Built-in_toSource_methods"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eBuilt-in \x3ccode\x3etoSource\x3c/code\x3e methods\x3c/h4\x3e\n\x3cp\x3eEach core JavaScript type has its own \x3ccode\x3etoSource\x3c/code\x3e method. These objects are: \n\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e - Array Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Boolean/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean/toSource"\x3etoSource\x3c/a\x3e - Boolean Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toSource"\x3etoSource\x3c/a\x3e - Date Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toSource"\x3etoSource\x3c/a\x3e - Function Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource"\x3etoSource\x3c/a\x3e - Number Object method.\x3c/li\x3e \x3cli\x3e\x3cstrong\x3etoSource\x3c/strong\x3e - Object Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toSource"\x3etoSource\x3c/a\x3e - RegExp Object method.\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toSource"\x3etoSource\x3c/a\x3e - String Object method.\x3c/li\x3e\n\x3c/ul\x3e\n\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_toSource"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoSource\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following code defines the \x3ccode\x3eDog\x3c/code\x3e object type and creates \x3ccode\x3etheDog\x3c/code\x3e, an object of type \x3ccode\x3eDog\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction Dog(name, breed, color, sex) {\n   this.name\x3dname;\n   this.breed\x3dbreed;\n   this.color\x3dcolor;\n   this.sex\x3dsex;\n}\n\ntheDog \x3d new Dog(\x26quot;Gabby\x26quot;, \x26quot;Lab\x26quot;, \x26quot;chocolate\x26quot;, \x26quot;girl\x26quot;);\n\x3c/pre\x3e\n\x3cp\x3eCalling the \x3ccode\x3etoSource\x3c/code\x3e method of \x3ccode\x3etheDog\x3c/code\x3e displays the JavaScript source that defines the object:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheDog.toSource();\n\x3c/pre\x3e\n\x3cp\x3ereturns\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n({name:\x26quot;Gabby\x26quot;, breed:\x26quot;Lab\x26quot;, color:\x26quot;chocolate\x26quot;, sex:\x26quot;girl\x26quot;})\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_toSource"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoSource\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following code defines the \x3ccode\x3eDog\x3c/code\x3e object type and creates \x3ccode\x3etheDog\x3c/code\x3e, an object of type \x3ccode\x3eDog\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction Dog(name, breed, color, sex) {\n   this.name\x3dname;\n   this.breed\x3dbreed;\n   this.color\x3dcolor;\n   this.sex\x3dsex;\n}\n\ntheDog \x3d new Dog(\x26quot;Gabby\x26quot;, \x26quot;Lab\x26quot;, \x26quot;chocolate\x26quot;, \x26quot;girl\x26quot;);\n\x3c/pre\x3e\n\x3cp\x3eCalling the \x3ccode\x3etoSource\x3c/code\x3e method of \x3ccode\x3etheDog\x3c/code\x3e displays the JavaScript source that defines the object:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheDog.toSource();\n\x3c/pre\x3e\n\x3cp\x3ereturns\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n({name:\x26quot;Gabby\x26quot;, breed:\x26quot;Lab\x26quot;, color:\x26quot;chocolate\x26quot;, sex:\x26quot;girl\x26quot;})\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/p\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Built-in toSource methods","Examples",
"Example: Using toSource","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToString","title":"Object.ToString","_id":"4eea8501a4c86c4dba0000ab","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMSScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobject\x3c/em\x3e.toString()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eEvery object has a \x3ccode\x3etoString()\x3c/code\x3e method that is automatically called when the object is to be represented as a text value or when an object is referred to in a manner in which a string is expected. By default, the \x3ccode\x3etoString()\x3c/code\x3e method is inherited by every object descended from \x3ccode\x3eObject\x3c/code\x3e. If this method is not overridden in a custom object, \x3ccode\x3etoString()\x3c/code\x3e returns \x26quot;[object \x3cem\x3etype\x3c/em\x3e]\x26quot;, where \x3ccode\x3e\x3cem\x3etype\x3c/em\x3e\x3c/code\x3e is the object type. The following code illustrates this:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar o \x3d new Object();\no.toString();           // returns [object Object]\n\x3c/pre\x3e\n\x3cdiv class \x3d "note"\x3eStarting in JavaScript 1.8.5 \x3ccode\x3etoString()\x3c/code\x3e called on \x3ccode\x3enull\x3c/code\x3e returns \x3ccode\x3e[object \x3cem\x3eNull\x3c/em\x3e]\x3c/code\x3e, and \x3ccode\x3eundefined\x3c/code\x3e returns \x3ccode\x3e[object \x3cem\x3eUndefined\x3c/em\x3e]\x3c/code\x3e, as defined in the 5th Edition of ECMAScript and a subsequent Errata. See \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/toString#Using toString to detect object type" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString#Using_toString_to_detect_object_type"\x3eUsing toString to detect object type\x3c/a\x3e.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Overriding_the_default_toString_method"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eOverriding the default \x3ccode\x3etoString\x3c/code\x3e method\x3c/h4\x3e\n\x3cp\x3eYou can create a function to be called in place of the default \x3ccode\x3etoString()\x3c/code\x3e method. The \x3ccode\x3etoString()\x3c/code\x3e method takes no arguments and should return a string. The \x3ccode\x3etoString()\x3c/code\x3e method you create can be any value you want, but it will be most useful if it carries information about the object.\x3c/p\x3e\n\x3cp\x3eThe following code defines the \x3ccode\x3eDog\x3c/code\x3e object type and creates \x3ccode\x3etheDog\x3c/code\x3e, an object of type \x3ccode\x3eDog\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Dog(name,breed,color,sex) {\n   this.name\x3dname;\n   this.breed\x3dbreed;\n   this.color\x3dcolor;\n   this.sex\x3dsex;\n}\n\ntheDog \x3d new Dog(\x26quot;Gabby\x26quot;,\x26quot;Lab\x26quot;,\x26quot;chocolate\x26quot;,\x26quot;female\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eIf you call the \x3ccode\x3etoString()\x3c/code\x3e method on this custom object, it returns the default value inherited from \x3ccode\x3eObject\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheDog.toString(); //returns [object Object]\n\x3c/pre\x3e\n\x3cp\x3eThe following code creates and assigns \x3ccode\x3edogToString()\x3c/code\x3e to override the default \x3ccode\x3etoString()\x3c/code\x3e method. This function generates a string containing the name, breed, color, and sex of the object, in the form \x26quot;\x3ccode\x3eproperty \x3d value;\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eDog.prototype.toString \x3d function dogToString() {\n  var ret \x3d \x26quot;Dog \x26quot; + this.name + \x26quot; is a \x26quot; + this.sex + \x26quot; \x26quot; + this.color + \x26quot; \x26quot; + this.breed;\n  return ret;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eWith the preceding code in place, any time \x3ccode\x3etheDog\x3c/code\x3e is used in a string context, JavaScript automatically calls the \x3ccode\x3edogToString()\x3c/code\x3e function, which returns the following string:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nDog Gabby is a female chocolate Lab\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_toString_to_detect_object_type"\x3e\x3c/span\x3e\x3cspan id \x3d "Using_toString()_to_detect_object_class"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing toString() to detect object class\x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3etoString()\x3c/code\x3e can be used with every object and allows you to get its class. To use the \x3ccode\x3eObject.prototype.toString()\x3c/code\x3e with every object, you need to call \x3ccode\x3eFunction.prototype.call()\x3c/code\x3e or \x3ccode\x3eFunction.prototype.apply()\x3c/code\x3e on it, passing the object you want to inspect as the first parameter called \x3ccode\x3ethisArg\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar toString \x3d Object.prototype.toString;\n\ntoString.call(new Date); // [object Date]\ntoString.call(new String); // [object String]\ntoString.call(Math); // [object Math]\n\n//Since JavaScript 1.8.5\ntoString.call(undefined); // [object Undefined]\ntoString.call(null); // [object Null]\x3c/pre\x3e\r\n        \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Overriding_the_default_toString_method"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eOverriding the default \x3ccode\x3etoString\x3c/code\x3e method\x3c/h4\x3e\n\x3cp\x3eYou can create a function to be called in place of the default \x3ccode\x3etoString()\x3c/code\x3e method. The \x3ccode\x3etoString()\x3c/code\x3e method takes no arguments and should return a string. The \x3ccode\x3etoString()\x3c/code\x3e method you create can be any value you want, but it will be most useful if it carries information about the object.\x3c/p\x3e\n\x3cp\x3eThe following code defines the \x3ccode\x3eDog\x3c/code\x3e object type and creates \x3ccode\x3etheDog\x3c/code\x3e, an object of type \x3ccode\x3eDog\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Dog(name,breed,color,sex) {\n   this.name\x3dname;\n   this.breed\x3dbreed;\n   this.color\x3dcolor;\n   this.sex\x3dsex;\n}\n\ntheDog \x3d new Dog(\x26quot;Gabby\x26quot;,\x26quot;Lab\x26quot;,\x26quot;chocolate\x26quot;,\x26quot;female\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eIf you call the \x3ccode\x3etoString()\x3c/code\x3e method on this custom object, it returns the default value inherited from \x3ccode\x3eObject\x3c/code\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheDog.toString(); //returns [object Object]\n\x3c/pre\x3e\n\x3cp\x3eThe following code creates and assigns \x3ccode\x3edogToString()\x3c/code\x3e to override the default \x3ccode\x3etoString()\x3c/code\x3e method. This function generates a string containing the name, breed, color, and sex of the object, in the form \x26quot;\x3ccode\x3eproperty \x3d value;\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eDog.prototype.toString \x3d function dogToString() {\n  var ret \x3d \x26quot;Dog \x26quot; + this.name + \x26quot; is a \x26quot; + this.sex + \x26quot; \x26quot; + this.color + \x26quot; \x26quot; + this.breed;\n  return ret;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eWith the preceding code in place, any time \x3ccode\x3etheDog\x3c/code\x3e is used in a string context, JavaScript automatically calls the \x3ccode\x3edogToString()\x3c/code\x3e function, which returns the following string:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nDog Gabby is a female chocolate Lab\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_toString_to_detect_object_type"\x3e\x3c/span\x3e\x3cspan id \x3d "Using_toString()_to_detect_object_class"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eUsing toString() to detect object class\x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3etoString()\x3c/code\x3e can be used with every object and allows you to get its class. To use the \x3ccode\x3eObject.prototype.toString()\x3c/code\x3e with every object, you need to call \x3ccode\x3eFunction.prototype.call()\x3c/code\x3e or \x3ccode\x3eFunction.prototype.apply()\x3c/code\x3e on it, passing the object you want to inspect as the first parameter called \x3ccode\x3ethisArg\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar toString \x3d Object.prototype.toString;\n\ntoString.call(new Date); // [object Date]\ntoString.call(new String); // [object String]\ntoString.call(Math); // [object Math]\n\n//Since JavaScript 1.8.5\ntoString.call(undefined); // [object Undefined]\ntoString.call(null); // [object Null]\x3c/pre\x3e\r\n        \x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3etoSource\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3evalueOf\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","Examples","Overriding the default toString method","Using toString() to detect object class","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf","title":"Object.ValueOf","_id":"4eea8501a4c86c4dba0000ac","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the primitive value of the specified object\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nvalueOf()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eJavaScript calls the \x3ccode\x3evalueOf\x3c/code\x3e method to convert an object to a primitive value. You rarely need to invoke the \x3ccode\x3evalueOf\x3c/code\x3e method yourself; JavaScript automatically invokes it when encountering an object where a primitive value is expected.\n\x3c/p\x3e\x3cp\x3eBy default, the \x3ccode\x3evalueOf\x3c/code\x3e method is inherited by every object descended from \x3ccode\x3eObject\x3c/code\x3e. Every built-in core object overrides this method to return an appropriate value. If an object has no primitive value, \x3ccode\x3evalueOf\x3c/code\x3e returns the object itself, which is displayed as:\n\x3c/p\x3e\n\x3cpre\x3e\n[object Object]\n\x3c/pre\x3e\n\x3cp\x3eYou can use \x3ccode\x3evalueOf\x3c/code\x3e within your own code to convert a built-in object into a primitive value. When you create a custom object, you can override \x3ccode\x3eObject.valueOf\x3c/code\x3e to call a custom method instead of the default \x3ccode\x3eObject\x3c/code\x3e method.\n\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Overriding_valueOf_for_custom_objects"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Overriding \x3ccode\x3evalueOf\x3c/code\x3e for custom objects \x3c/h4\x3e\n\x3cp\x3eYou can create a function to be called in place of the default \x3ccode\x3evalueOf\x3c/code\x3e method. Your function must take no arguments.\n\x3c/p\x3e\x3cp\x3eSuppose you have an object type \x3ccode\x3emyNumberType\x3c/code\x3e and you want to create a \x3ccode\x3evalueOf\x3c/code\x3e method for it. The following code assigns a user-defined function to the object\'s \x3ccode\x3evalueOf\x3c/code\x3e method:\n\x3c/p\x3e\n\x3cpre\x3e\nmyNumberType.prototype.valueOf \x3d new Function(functionText)\n\x3c/pre\x3e\n\x3cp\x3eWith the preceding code in place, any time an object of type \x3ccode\x3emyNumberType\x3c/code\x3e is used in a context where it is to be represented as a primitive value, JavaScript automatically calls the function defined in the preceding code.\n\x3c/p\x3e\x3cp\x3eAn object\'s \x3ccode\x3evalueOf\x3c/code\x3e method is usually invoked by JavaScript, but you can invoke it yourself as follows:\n\x3c/p\x3e\n\x3cpre\x3e\nmyNumber.valueOf()\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Note"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eNote\x3c/h4\x3e\n\x3cp\x3eObjects in string contexts convert via the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e method, which is different from \x3ccode\x3eString\x3c/code\x3e objects converting to string primitives using \x3ccode\x3evalueOf\x3c/code\x3e. All objects have a string conversion, if only \x26quot;\x3ccode\x3e[object \x3cem\x3etype\x3c/em\x3e]\x3c/code\x3e\x26quot;. But many objects do not convert to number, boolean, or function.\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Overriding_valueOf_for_custom_objects"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Overriding \x3ccode\x3evalueOf\x3c/code\x3e for custom objects \x3c/h4\x3e\n\x3cp\x3eYou can create a function to be called in place of the default \x3ccode\x3evalueOf\x3c/code\x3e method. Your function must take no arguments.\n\x3c/p\x3e\x3cp\x3eSuppose you have an object type \x3ccode\x3emyNumberType\x3c/code\x3e and you want to create a \x3ccode\x3evalueOf\x3c/code\x3e method for it. The following code assigns a user-defined function to the object\'s \x3ccode\x3evalueOf\x3c/code\x3e method:\n\x3c/p\x3e\n\x3cpre\x3e\nmyNumberType.prototype.valueOf \x3d new Function(functionText)\n\x3c/pre\x3e\n\x3cp\x3eWith the preceding code in place, any time an object of type \x3ccode\x3emyNumberType\x3c/code\x3e is used in a context where it is to be represented as a primitive value, JavaScript automatically calls the function defined in the preceding code.\n\x3c/p\x3e\x3cp\x3eAn object\'s \x3ccode\x3evalueOf\x3c/code\x3e method is usually invoked by JavaScript, but you can invoke it yourself as follows:\n\x3c/p\x3e\n\x3cpre\x3e\nmyNumber.valueOf()\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Note"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eNote\x3c/h4\x3e\n\x3cp\x3eObjects in string contexts convert via the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e method, which is different from \x3ccode\x3eString\x3c/code\x3e objects converting to string primitives using \x3ccode\x3evalueOf\x3c/code\x3e. All objects have a string conversion, if only \x26quot;\x3ccode\x3e[object \x3cem\x3etype\x3c/em\x3e]\x3c/code\x3e\x26quot;. But many objects do not convert to number, boolean, or function.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/parseInt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt"\x3eparseInt\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Overriding valueOf for custom objects ","Note","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop","title":"Array.pop","_id":"4eea8502a4c86c4dba0000ad","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRemoves the last element from an array and returns that element.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e \x3cem\x3earray\x3c/em\x3e.pop() \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3epop\x3c/code\x3e method removes the last element from an array and returns that value to the caller.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3epop\x3c/code\x3e is intentionally generic; this method can be \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecalled\x3c/a\x3e or \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapplied\x3c/a\x3e to objects resembling arrays. Objects which do not contain a \x3ccode\x3elength\x3c/code\x3e property reflecting the last in a series of consecutive, zero-based numerical properties may not behave in any meaningful manner.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Removing_the_last_element_of_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Removing the last element of an array\x3c/h4\x3e\n\x3cp\x3eThe following code creates the myFish array containing four elements, then removes its last element.\x3c/p\x3e\n\x3cpre\x3e\nmyFish \x3d [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;, \x26quot;mandarin\x26quot;, \x26quot;surgeon\x26quot;];\npopped \x3d myFish.pop();\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Removing_the_last_element_of_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Removing the last element of an array\x3c/h4\x3e\n\x3cp\x3eThe following code creates the myFish array containing four elements, then removes its last element.\x3c/p\x3e\n\x3cpre\x3e\nmyFish \x3d [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;, \x26quot;mandarin\x26quot;, \x26quot;surgeon\x26quot;];\npopped \x3d myFish.pop();\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\x3cbr/\x3e\n\x3ctable class \x3d "compat-table" style \x3d "font-size: 15px; margin-bottom: 1.286em; border-collapse: collapse; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; "\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); text-align: left; font-weight: bold; background-position: initial initial; background-repeat: initial initial; "\x3eFeature\x3c/th\x3e \x3cth style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); text-align: left; font-weight: bold; background-position: initial initial; background-repeat: initial initial; "\x3eFirefox (Gecko)\x3c/th\x3e \x3cth style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); text-align: left; font-weight: bold; background-position: initial initial; background-repeat: initial initial; "\x3eChrome\x3c/th\x3e \x3cth style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); text-align: left; font-weight: bold; background-position: initial initial; background-repeat: initial initial; "\x3eInternet Explorer\x3c/th\x3e \x3cth style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); text-align: left; font-weight: bold; background-position: initial initial; background-repeat: initial initial; "\x3eOpera\x3c/th\x3e \x3cth style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); text-align: left; font-weight: bold; background-position: initial initial; background-repeat: initial initial; "\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); text-align: left; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); vertical-align: top; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "\x3eBasic support\x3c/td\x3e \x3ctd style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); text-align: left; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); vertical-align: top; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "\x3e1.0 (1.7)\n\x3c/td\x3e \x3ctd\x3e1.0\x3c/td\x3e \x3ctd style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); text-align: left; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); vertical-align: top; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "\x3e5.5\x3c/td\x3e \x3ctd style \x3d "font-family: inherit; font-size: inherit; color: inherit; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); text-align: left; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); vertical-align: top; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "\x3e\x26nbsp;\x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3ctbody\x3e \x3c/tbody\x3e \x3ctbody\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3cbr/\x3e\nSee Also\x3c/p\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","Example","Example: Removing the last element of an array","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse","title":"Array.reverse","_id":"4eea8502a4c86c4dba0000ae","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReverses an array in place.\x26nbsp; The first array element becomes the last and the last becomes the first.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array" title \x3d "en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.reverse()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3ereverse\x3c/code\x3e method transposes the elements of the calling array object in place, mutating the array, and returning a reference to the array.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Reversing_the_elements_in_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Reversing the elements in an array\x3c/h4\x3e\n\x3cp\x3eThe following example creates an array myArray, containing three elements, then reverses the array.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar myArray \x3d [\x26quot;one\x26quot;, \x26quot;two\x26quot;, \x26quot;three\x26quot;];\nmyArray.reverse();\n\x3c/pre\x3e\n\x3cp\x3eThis code changes \x3ccode\x3emyArray\x3c/code\x3e so that:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3emyArray[0]\x3c/code\x3e is \x26quot;three\x26quot;\x3c/li\x3e \x3cli\x3e\x3ccode\x3emyArray[1]\x3c/code\x3e is \x26quot;two\x26quot;\x3c/li\x3e \x3cli\x3e\x3ccode\x3emyArray[2]\x3c/code\x3e is \x26quot;one\x26quot;\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Reversing_the_elements_in_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Reversing the elements in an array\x3c/h4\x3e\n\x3cp\x3eThe following example creates an array myArray, containing three elements, then reverses the array.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar myArray \x3d [\x26quot;one\x26quot;, \x26quot;two\x26quot;, \x26quot;three\x26quot;];\nmyArray.reverse();\n\x3c/pre\x3e\n\x3cp\x3eThis code changes \x3ccode\x3emyArray\x3c/code\x3e so that:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3emyArray[0]\x3c/code\x3e is \x26quot;three\x26quot;\x3c/li\x3e \x3cli\x3e\x3ccode\x3emyArray[1]\x3c/code\x3e is \x26quot;two\x26quot;\x3c/li\x3e \x3cli\x3e\x3ccode\x3emyArray[2]\x3c/code\x3e is \x26quot;one\x26quot;\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/sort" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort"\x3esort\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Reversing the elements in an array","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift","title":"Array.shift","_id":"4eea8504a4c86c4dba0000af","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRemoves the first element from an array and returns that element. This method changes the length of the array.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.shift()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eshift\x3c/code\x3e method removes the element at the zeroeth index and shifts the values at consecutive indexes down, then returns the removed value.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eshift\x3c/code\x3e is intentionally generic; this method can be \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecalled\x3c/a\x3e or \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapplied\x3c/a\x3e to objects resembling arrays. Objects which do not contain a \x3ccode\x3elength\x3c/code\x3e property reflecting the last in a series of consecutive, zero-based numerical properties may not behave in any meaningful manner.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Removing_an_element_from_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Removing an element from an array\x3c/h4\x3e\n\x3cp\x3eThe following code displays the \x3ccode\x3emyFish\x3c/code\x3e array before and after removing its first element. It also displays the removed element:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// assumes a println function is defined\nvar myFish \x3d [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;, \x26quot;mandarin\x26quot;, \x26quot;surgeon\x26quot;];\nprintln(\x26quot;myFish before: \x26quot; + myFish);\nvar shifted \x3d myFish.shift();\nprintln(\x26quot;myFish after: \x26quot; + myFish);\nprintln(\x26quot;Removed this element: \x26quot; + shifted);\n\x3c/pre\x3e\n\x3cp\x3eThis example displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nmyFish before: angel,clown,mandarin,surgeon\nmyFish after: clown,mandarin,surgeon\nRemoved this element: angel\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Removing_an_element_from_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Removing an element from an array\x3c/h4\x3e\n\x3cp\x3eThe following code displays the \x3ccode\x3emyFish\x3c/code\x3e array before and after removing its first element. It also displays the removed element:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// assumes a println function is defined\nvar myFish \x3d [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;, \x26quot;mandarin\x26quot;, \x26quot;surgeon\x26quot;];\nprintln(\x26quot;myFish before: \x26quot; + myFish);\nvar shifted \x3d myFish.shift();\nprintln(\x26quot;myFish after: \x26quot; + myFish);\nprintln(\x26quot;Removed this element: \x26quot; + shifted);\n\x3c/pre\x3e\n\x3cp\x3eThis example displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nmyFish before: angel,clown,mandarin,surgeon\nmyFish after: clown,mandarin,surgeon\nRemoved this element: angel\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/unshift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift"\x3eunshift\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","Examples","Example: Removing an element from an array","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort","title":"Array.sort","_id":"4eea8505a4c86c4dba0000b0","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eSorts the elements of an array in place and returns the array.\x3c/p\x3e\n\x3cp\x3eWorks across all browsers.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.sort([\x3cem\x3ecompareFunction\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ecompareFunction\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eSpecifies a function that defines the sort order. If omitted, the array is sorted lexicographically (in dictionary order) according to the string conversion of each element.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf \x3ccode\x3ecompareFunction\x3c/code\x3e is not supplied, elements are sorted by converting them to strings and comparing strings in lexicographic (\x26quot;dictionary\x26quot; or \x26quot;telephone book,\x26quot; not numerical) order. For example, \x26quot;80\x26quot; comes before \x26quot;9\x26quot; in lexicographic order, but in a numeric sort 9 comes before 80.\x3c/p\x3e\n\x3cp\x3eIf \x3ccode\x3ecompareFunction\x3c/code\x3e is supplied, the array elements are sorted according to the return value of the compare function. If \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e are two elements being compared, then:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eIf \x3ccode\x3ecompareFunction(a, b)\x3c/code\x3e is less than 0, sort \x3ccode\x3ea\x3c/code\x3e to a lower index than \x3ccode\x3eb\x3c/code\x3e.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cul\x3e \x3cli\x3eIf \x3ccode\x3ecompareFunction(a, b)\x3c/code\x3e returns 0, leave \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e unchanged with respect to each other, but sorted with respect to all different elements. Note: the ECMAscript standard does not guarantee this behaviour, and thus not all browsers (e.g. Mozilla versions dating back to at least 2003) respect this.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cul\x3e \x3cli\x3eIf \x3ccode\x3ecompareFunction(a, b)\x3c/code\x3e is greater than 0, sort \x3ccode\x3eb\x3c/code\x3e to a lower index than \x3ccode\x3ea\x3c/code\x3e.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3ecompareFunction(a, b)\x3c/code\x3e must always returns the same value when given a specific pair of elements a and b as its two arguments. If inconsistent results are returned then the sort order is undefined\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eSo, the compare function has the following form:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction compare(a, b)\n{\n  if (a is less than b by some ordering criterion)\n     return -1;\n  if (a is greater than b by the ordering criterion)\n     return 1;\n  // a must be equal to b\n  return 0;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eTo compare numbers instead of strings, the compare function can simply subtract \x3ccode\x3eb\x3c/code\x3e from \x3ccode\x3ea\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction compareNumbers(a, b)\n{\n  return a - b;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eSome implementations of JavaScript implement a stable sort: the index partial order of \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e does not change if \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e are equal. If \x3ccode\x3ea\x3c/code\x3e\'s index was less than \x3ccode\x3eb\x3c/code\x3e\'s before sorting, it will be after sorting, no matter how \x3ccode\x3ea\x3c/code\x3e and \x3ccode\x3eb\x3c/code\x3e move due to sorting.\x3c/p\x3e\n\x3cp\x3eSort is stable in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e and all Mozilla-based browsers starting with \x3ca title \x3d "en/Gecko" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Gecko"\x3eGecko\x3c/a\x3e 1.9 (see \n\x3ca rel \x3d "external" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d224128" class \x3d "external" title \x3d "RESOLVED FIXED - Array.sort isn\'t a stable sort (switch to MergeSort)"\x3e\nbug 224128\x3c/a\x3e\n).\x3c/p\x3e\n\x3cp\x3eThe behavior of the \x3ccode\x3esort\x3c/code\x3e method changed between JavaScript 1.1 and JavaScript 1.2.\x3c/p\x3e\n\x3cp\x3eIn JavaScript 1.1, on some platforms, the \x3ccode\x3esort\x3c/code\x3e method does not work. This method works on all platforms for JavaScript 1.2.\x3c/p\x3e\n\x3cp\x3eIn JavaScript 1.2, this method no longer converts \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3eundefined\x3c/a\x3e elements to \x3ccode\x3enull\x3c/code\x3e; instead it sorts them to the high end of the array. For example, assume you have this script:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d [];\na[0] \x3d \x26quot;Ant\x26quot;;\na[5] \x3d \x26quot;Zebra\x26quot;;\n\n// assumes a print function is defined\nfunction writeArray(x)\n{\n  for (i \x3d 0; i \x26lt; x.length; i++)\n  {\n    print(x[i]);\n    if (i \x26lt; x.length-1)\n      print(\x26quot;, \x26quot;);\n  }\n}\n\nwriteArray(a);\na.sort();\nprint(\x26quot;\\n\x26quot;);\nwriteArray(a);\x3c/pre\x3e\r\n        \n\x3cp\x3eIn JavaScript 1.1, JavaScript prints:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nant, null, null, null, null, zebra\nant, null, null, null, null, zebra\n\x3c/pre\x3e\n\x3cp\x3eIn JavaScript 1.2, JavaScript prints:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nant, undefined, undefined, undefined, undefined, zebra\nant, zebra, undefined, undefined, undefined, undefined\n\x3c/pre\x3e\n\x3cp\x3eThe sort()\x26nbsp;method can be conveniently used with \x3ca class \x3d "internal" title \x3d "en/Core JavaScript 1.5 Guide/Working with Closures" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Closures"\x3eclosures\x3c/a\x3e:\x26nbsp;\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar numbers \x3d [4, 2, 5, 1, 3];\nnumbers.sort(function(a, b) {\n    return a - b;\n});\nprint(numbers);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Creating.2C_displaying.2C_and_sorting_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Creating, displaying, and sorting an array\x3c/h4\x3e\n\x3cp\x3eThe following example creates four arrays and displays the original array, then the sorted arrays. The numeric arrays are sorted without, then with, a compare function.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar stringArray \x3d [\x26quot;Blue\x26quot;, \x26quot;Humpback\x26quot;, \x26quot;Beluga\x26quot;];\nvar numericStringArray \x3d [\x26quot;80\x26quot;, \x26quot;9\x26quot;, \x26quot;700\x26quot;];\nvar numberArray \x3d [40, 1, 5, 200];\nvar mixedNumericArray \x3d [\x26quot;80\x26quot;, \x26quot;9\x26quot;, \x26quot;700\x26quot;, 40, 1, 5, 200];\n\nfunction compareNumbers(a, b)\n{\n  return a - b;\n}\n\n// again, assumes a print function is defined\nprint(\x26quot;stringArray: \x26quot; + stringArray.join() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted: \x26quot; + stringArray.sort() +\x26quot;\\n\\n\x26quot;);\n\nprint(\x26quot;numberArray: \x26quot; + numberArray.join() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted without a compare function: \x26quot; + numberArray.sort() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted with compareNumbers: \x26quot; + numberArray.sort(compareNumbers) +\x26quot;\\n\\n\x26quot;);\n\nprint(\x26quot;numericStringArray: \x26quot; + numericStringArray.join() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted without a compare function: \x26quot; + numericStringArray.sort() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted with compareNumbers: \x26quot; + numericStringArray.sort(compareNumbers) +\x26quot;\\n\\n\x26quot;);\n\nprint(\x26quot;mixedNumericArray: \x26quot; + mixedNumericArray.join() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted without a compare function: \x26quot; + mixedNumericArray.sort() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted with compareNumbers: \x26quot; + mixedNumericArray.sort(compareNumbers) +\x26quot;\\n\\n\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis example produces the following output. As the output shows, when a compare function is used, numbers sort correctly whether they are numbers or numeric strings.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nstringArray: Blue,Humpback,Beluga\nSorted: Beluga,Blue,Humpback\n\nnumberArray: 40,1,5,200\nSorted without a compare function: 1,200,40,5\nSorted with compareNumbers: 1,5,40,200\n\nnumericStringArray: 80,9,700\nSorted without a compare function: 700,80,9\nSorted with compareNumbers: 9,80,700\n\nmixedNumericArray: 80,9,700,40,1,5,200\nSorted without a compare function: 1,200,40,5,700,80,9\nSorted with compareNumbers: 1,5,9,40,80,200,700\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Creating.2C_displaying.2C_and_sorting_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Creating, displaying, and sorting an array\x3c/h4\x3e\n\x3cp\x3eThe following example creates four arrays and displays the original array, then the sorted arrays. The numeric arrays are sorted without, then with, a compare function.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar stringArray \x3d [\x26quot;Blue\x26quot;, \x26quot;Humpback\x26quot;, \x26quot;Beluga\x26quot;];\nvar numericStringArray \x3d [\x26quot;80\x26quot;, \x26quot;9\x26quot;, \x26quot;700\x26quot;];\nvar numberArray \x3d [40, 1, 5, 200];\nvar mixedNumericArray \x3d [\x26quot;80\x26quot;, \x26quot;9\x26quot;, \x26quot;700\x26quot;, 40, 1, 5, 200];\n\nfunction compareNumbers(a, b)\n{\n  return a - b;\n}\n\n// again, assumes a print function is defined\nprint(\x26quot;stringArray: \x26quot; + stringArray.join() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted: \x26quot; + stringArray.sort() +\x26quot;\\n\\n\x26quot;);\n\nprint(\x26quot;numberArray: \x26quot; + numberArray.join() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted without a compare function: \x26quot; + numberArray.sort() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted with compareNumbers: \x26quot; + numberArray.sort(compareNumbers) +\x26quot;\\n\\n\x26quot;);\n\nprint(\x26quot;numericStringArray: \x26quot; + numericStringArray.join() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted without a compare function: \x26quot; + numericStringArray.sort() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted with compareNumbers: \x26quot; + numericStringArray.sort(compareNumbers) +\x26quot;\\n\\n\x26quot;);\n\nprint(\x26quot;mixedNumericArray: \x26quot; + mixedNumericArray.join() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted without a compare function: \x26quot; + mixedNumericArray.sort() +\x26quot;\\n\x26quot;);\nprint(\x26quot;Sorted with compareNumbers: \x26quot; + mixedNumericArray.sort(compareNumbers) +\x26quot;\\n\\n\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis example produces the following output. As the output shows, when a compare function is used, numbers sort correctly whether they are numbers or numeric strings.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nstringArray: Blue,Humpback,Beluga\nSorted: Beluga,Blue,Humpback\n\nnumberArray: 40,1,5,200\nSorted without a compare function: 1,200,40,5\nSorted with compareNumbers: 1,5,40,200\n\nnumericStringArray: 80,9,700\nSorted without a compare function: 700,80,9\nSorted with compareNumbers: 9,80,700\n\nmixedNumericArray: 80,9,700,40,1,5,200\nSorted without a compare function: 1,200,40,5,700,80,9\nSorted with compareNumbers: 1,5,9,40,80,200,700\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3ejoin\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/reverse" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reverse"\x3ereverse\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Creating, displaying, and sorting an array","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource","title":"Array.toSource","_id":"4eea8507a4c86c4dba0000b1","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code of the array.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array" title \x3d "en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.toSource()\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\n\x3c/p\x3e\x3cp\x3e\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For the built-in \x3ccode\x3eArray\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\n\x3c/li\x3e\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3efunction Array() {\n    [native code]\n}\n\x3c/pre\x3e\n\x3cul\x3e\x3cli\x3e For instances of \x3ccode\x3eArray\x3c/code\x3e, \x3ccode\x3etoSource\x3c/code\x3e returns a string representing the source code.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code. You can call \x3ccode\x3etoSource\x3c/code\x3e while debugging to examine the contents of an array.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Examining_the_source_code_of_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Examining the source code of an array \x3c/h4\x3e\n\x3cp\x3eTo examine the source code of an array:\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3ealpha \x3d new Array(\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;);\nalpha.toSource()                    //returns [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;]\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Examining_the_source_code_of_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Examining the source code of an array \x3c/h4\x3e\n\x3cp\x3eTo examine the source code of an array:\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3ealpha \x3d new Array(\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;);\nalpha.toSource()                    //returns [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;]\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString"\x3etoString\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Examining the source code of an array ",
" See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat","title":"Array.concat","_id":"4eea8507a4c86c4dba0000b2","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a new array comprised of this array joined with other array(s) and/or value(s).\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array" title \x3d "en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.concat(\x3cem\x3evalue1\x3c/em\x3e, \x3cem\x3evalue2\x3c/em\x3e, ..., \x3cem\x3evalueN\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evalue\x3cem\x3eN\x3c/em\x3e\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eArrays and/or values to concatenate to the resulting array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3econcat\x3c/code\x3e creates a new array consisting of the elements in the \x3ccode\x3ethis\x3c/code\x3e object on which it is called, followed in order by, for each argument, the elements of that argument (if the argument is an array) or the argument itself (if the argument is not an array).\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3econcat\x3c/code\x3e does not alter \x3ccode\x3ethis\x3c/code\x3e or any of the arrays provided as arguments but instead returns a \x26quot;one level deep\x26quot; copy that contains copies of the same elements combined from the original arrays. Elements of the original arrays are copied into the new array as follows:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eObject references (and not the actual object): \x3ccode\x3econcat\x3c/code\x3e copies object references into the new array. Both the original and new array refer to the same object. That is, if a referenced object is modified, the changes are visible to both the new and original arrays.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cul\x3e \x3cli\x3eStrings and numbers (not \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String"\x3eString\x3c/a\x3e and \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/Number"\x3eNumber\x3c/a\x3e objects): \x3ccode\x3econcat\x3c/code\x3e copies the values of strings and numbers into the new array.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eAny operation on the new array will have no effect on the original arrays, and vice versa.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Concatenating_two_arrays"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Concatenating two arrays\x3c/h4\x3e\n\x3cp\x3eThe following code concatenates two arrays:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar alpha \x3d [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;];\nvar numeric \x3d [1, 2, 3];\n\n// creates array [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;, 1, 2, 3]; alpha and numeric are unchanged\nvar alphaNumeric \x3d alpha.concat(numeric);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Concatenating_three_arrays"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Concatenating three arrays\x3c/h4\x3e\n\x3cp\x3eThe following code concatenates three arrays:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar num1 \x3d [1, 2, 3];\nvar num2 \x3d [4, 5, 6];\nvar num3 \x3d [7, 8, 9];\n\n// creates array [1, 2, 3, 4, 5, 6, 7, 8, 9]; num1, num2, num3 are unchanged\nvar nums \x3d num1.concat(num2, num3);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Concatenating_values_to_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Concatenating values to an array\x3c/h4\x3e\n\x3cp\x3eThe following code concatenates three values to an array:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar alpha \x3d [\'a\', \'b\', \'c\'];\n\n// creates array [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;, 1, 2, 3], leaving alpha unchanged\nvar alphaNumeric \x3d alpha.concat(1, [2, 3]);\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Concatenating_two_arrays"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Concatenating two arrays\x3c/h4\x3e\n\x3cp\x3eThe following code concatenates two arrays:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar alpha \x3d [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;];\nvar numeric \x3d [1, 2, 3];\n\n// creates array [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;, 1, 2, 3]; alpha and numeric are unchanged\nvar alphaNumeric \x3d alpha.concat(numeric);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Concatenating_three_arrays"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Concatenating three arrays\x3c/h4\x3e\n\x3cp\x3eThe following code concatenates three arrays:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar num1 \x3d [1, 2, 3];\nvar num2 \x3d [4, 5, 6];\nvar num3 \x3d [7, 8, 9];\n\n// creates array [1, 2, 3, 4, 5, 6, 7, 8, 9]; num1, num2, num3 are unchanged\nvar nums \x3d num1.concat(num2, num3);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Concatenating_values_to_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Concatenating values to an array\x3c/h4\x3e\n\x3cp\x3eThe following code concatenates three values to an array:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar alpha \x3d [\'a\', \'b\', \'c\'];\n\n// creates array [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;, 1, 2, 3], leaving alpha unchanged\nvar alphaNumeric \x3d alpha.concat(1, [2, 3]);\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Concatenating two arrays","Example: Concatenating three arrays","Example: Concatenating values to an array"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift","title":"Array.unshift","_id":"4eea8508a4c86c4dba0000b3","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eAdds one or more elements to the beginning of an array and returns the new length of the array.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earrayName\x3c/em\x3e.unshift(\x3cem\x3eelement1\x3c/em\x3e, ..., \x3cem\x3eelementN\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eelement1, ..., element\x3cem\x3eN\x3c/em\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe elements to add to the front of the array.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3cspan id \x3d "Returns"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eReturns\x3c/h3\x3e\n\x3cp\x3eThe new \x3ccode\x3e\x3ca href \x3d "length" rel \x3d "internal" title \x3d "en/JavaScript/Reference/Global_Objects/Array/length"\x3elength\x3c/a\x3e\x3c/code\x3e property of the object upon which the method was called.\x3c/p\x3e\n\x3cdl\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eunshift\x3c/code\x3e method inserts the given values to the beginning of an array-like object.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eunshift\x3c/code\x3e is intentionally generic; this method can be \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecalled\x3c/a\x3e or \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapplied\x3c/a\x3e to objects resembling arrays. Objects which do not contain a \x3ccode\x3elength\x3c/code\x3e property reflecting the last in a series of consecutive, zero-based numerical properties may not behave in any meaningful manner.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Adding_elements_to_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Adding elements to an array\x3c/h4\x3e\n\x3cp\x3eThe following code displays the \x3ccode\x3emyFish\x3c/code\x3e array before and after adding elements to it.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// assumes a println function exists\nmyFish \x3d [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;];\nprintln(\x26quot;myFish before: \x26quot; + myFish);\nunshifted \x3d myFish.unshift(\x26quot;drum\x26quot;, \x26quot;lion\x26quot;);\nprintln(\x26quot;myFish after: \x26quot; + myFish);\nprintln(\x26quot;New length: \x26quot; + unshifted);\n\x3c/pre\x3e\n\x3cp\x3eThis example displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nmyFish before: [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;]\nmyFish after: [\x26quot;drum\x26quot;, \x26quot;lion\x26quot;, \x26quot;angel\x26quot;, \x26quot;clown\x26quot;]\nNew length: 4\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Adding_elements_to_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Adding elements to an array\x3c/h4\x3e\n\x3cp\x3eThe following code displays the \x3ccode\x3emyFish\x3c/code\x3e array before and after adding elements to it.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n// assumes a println function exists\nmyFish \x3d [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;];\nprintln(\x26quot;myFish before: \x26quot; + myFish);\nunshifted \x3d myFish.unshift(\x26quot;drum\x26quot;, \x26quot;lion\x26quot;);\nprintln(\x26quot;myFish after: \x26quot; + myFish);\nprintln(\x26quot;New length: \x26quot; + unshifted);\n\x3c/pre\x3e\n\x3cp\x3eThis example displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nmyFish before: [\x26quot;angel\x26quot;, \x26quot;clown\x26quot;]\nmyFish after: [\x26quot;drum\x26quot;, \x26quot;lion\x26quot;, \x26quot;angel\x26quot;, \x26quot;clown\x26quot;]\nNew length: 4\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/pop" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/pop"\x3epop\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/shift" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/shift"\x3eshift\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Returns","Description","Examples","Example: Adding elements to an array","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toString","title":"Array.toString","_id":"4eea8508a4c86c4dba0000b4","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the specified array and its elements.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.toString()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3cdiv class \x3d "geckoVersionNote"\x3e \x3cp\x3e\n\x3cdiv class \x3d "geckoVersionHeading"\x3eJavaScript 1.8.5 note\x3c/div\x3e\x3c/p\x3e \x3cp\x3eStarting in\x26nbsp;JavaScript 1.8.5, and consistent with ECMAScript 5th edition semantics, the \x3ccode\x3etoString()\x3c/code\x3e\x26nbsp;method is generic and can be used with any object. If the object has a\x26nbsp;\x3ccode\x3ejoin()\x3c/code\x3e\x26nbsp;method, it will be called and that value will be returned. \x26nbsp;Otherwise \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString()\x3c/code\x3e\x3c/a\x3e\x26nbsp;will be called, and the resulting value will be returned.\x3c/p\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e object overrides the \x3ccode\x3etoString\x3c/code\x3e method of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e. For Array objects, the \x3ccode\x3etoString\x3c/code\x3e method joins the array and returns one string containing each array element separated by commas. For example, the following code creates an array and uses \x3ccode\x3etoString\x3c/code\x3e to convert the array to a string.\x3c/p\x3e\n\x3cpre\x3evar monthNames \x3d [\'Jan\', \'Feb\', \'Mar\', \'Apr\'];\nvar myVar \x3d monthNames.toString(); // assigns \x26quot;Jan,Feb,Mar,Apr\x26quot; to myVar.\n\x3c/pre\x3e\n\x3cp\x3eJavaScript calls the \x3ccode\x3etoString\x3c/code\x3e method automatically when an array is to be represented as a text value or when an array is referred to in a string concatenation.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/toSource"\x3etoSource\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},
{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf","title":"Array.lastIndexOf","_id":"4eea850aa4c86c4dba0000b5","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the last index at which a given element can be found in the array, or -1 if it is not present. The array is searched backwards, starting at \x3ccode\x3efromIndex\x3c/code\x3e.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.lastIndexOf(\x3cem\x3esearchElement\x3c/em\x3e[, \x3cem\x3efromIndex\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esearchElement\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eElement to locate in the array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3efromIndex\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe index at which to start searching backwards. Defaults to the array\'s length, i.e. the whole array will be searched. If the index is greater than or equal to the length of the array, the whole array will be searched. If negative, it is taken as the offset from the end of the array. Note that even when the index is negative, the array is still searched from back to front. If the calculated index is less than 0, -1 is returned, i.e. the array will not be searched.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3elastIndexOf\x3c/code\x3e compares \x3ccode\x3esearchElement\x3c/code\x3e to elements of the Array using strict equality (the same method used by the \x3d\x3d\x3d, or triple-equals, operator).\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCompatibility\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3elastIndexOf\x3c/code\x3e is a recent addition to the ECMA-262 standard; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of \x3ccode\x3elastIndexOf\x3c/code\x3e in implementations which do not natively support it. This algorithm is exactly the one specified in ECMA-262, 5th edition, assuming\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eObject\x3c/code\x3e,\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eTypeError\x3c/code\x3e,\x26nbsp;\x3ccode\x3eNumber\x3c/code\x3e, \x3ccode\x3eMath.floor\x3c/code\x3e, \x3ccode\x3eMath.abs\x3c/code\x3e, and \x3ccode\x3eMath.min\x3c/code\x3e have their original values. \x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (!Array.prototype.lastIndexOf)\n{\n  Array.prototype.lastIndexOf \x3d function(searchElement /*, fromIndex*/)\n  {\n    \x26quot;use strict\x26quot;;\n\n    if (this \x3d\x3d null)\n      throw new TypeError();\n\n    var t \x3d Object(this);\n    var len \x3d t.length \x26gt;\x26gt;\x26gt; 0;\n    if (len \x3d\x3d\x3d 0)\n      return -1;\n\n    var n \x3d len;\n    if (arguments.length \x26gt; 1)\n    {\n      n \x3d Number(arguments[1]);\n      if (n !\x3d n)\n        n \x3d 0;\n      else if (n !\x3d 0 \x26amp;\x26amp; n !\x3d (1 / 0) \x26amp;\x26amp; n !\x3d -(1 / 0))\n        n \x3d (n \x26gt; 0 || -1) * Math.floor(Math.abs(n));\n    }\n\n    var k \x3d n \x26gt;\x3d 0\n          ? Math.min(n, len - 1)\n          : len - Math.abs(n);\n\n    for (; k \x26gt;\x3d 0; k--)\n    {\n      if (k in t \x26amp;\x26amp; t[k] \x3d\x3d\x3d searchElement)\n        return k;\n    }\n    return -1;\n  };\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eAgain, note that this implementation aims for absolute compatibility with \x3ccode\x3elastIndexOf\x3c/code\x3e in Firefox and the SpiderMonkey JavaScript engine, including in several cases which are arguably edge cases. If you intend to use this in real-world applications, you may be able to calculate \x3ccode\x3efrom\x3c/code\x3e with less complicated code if you ignore those cases.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_lastIndexOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using lastIndexOf\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3elastIndexOf\x3c/code\x3e to locate values in an array.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar array \x3d [2, 5, 9, 2];\nvar index \x3d array.lastIndexOf(2);\n// index is 3\nindex \x3d array.lastIndexOf(7);\n// index is -1\nindex \x3d array.lastIndexOf(2, 3);\n// index is 3\nindex \x3d array.lastIndexOf(2, 2);\n// index is 0\nindex \x3d array.lastIndexOf(2, -2);\n// index is 0\nindex \x3d array.lastIndexOf(2, -1);\n// index is 3\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Finding_all_the_occurrences_of_an_element"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Finding all the occurrences of an element\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3elastIndexOf\x3c/code\x3e to find all the indices of an element in a given array, using \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e to add them to another array as they are found.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar indices \x3d [];\nvar idx \x3d array.lastIndexOf(element);\nwhile (idx\x26nbsp;!\x3d -1)\n{\n  indices.push(idx);\n  idx \x3d (idx \x26gt; 0\x26nbsp;? array.lastIndexOf(element, idx - 1)\x26nbsp;: -1);\n}\n\x3c/pre\x3e\n\x3cp\x3eNote that we have to handle the case \x3ccode\x3eidx \x3d\x3d 0\x3c/code\x3e separately here because the element will always be found regardless of the \x3ccode\x3efromIndex\x3c/code\x3e parameter if it is the first element of the array. This is different from the \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e method.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_lastIndexOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using lastIndexOf\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3elastIndexOf\x3c/code\x3e to locate values in an array.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar array \x3d [2, 5, 9, 2];\nvar index \x3d array.lastIndexOf(2);\n// index is 3\nindex \x3d array.lastIndexOf(7);\n// index is -1\nindex \x3d array.lastIndexOf(2, 3);\n// index is 3\nindex \x3d array.lastIndexOf(2, 2);\n// index is 0\nindex \x3d array.lastIndexOf(2, -2);\n// index is 0\nindex \x3d array.lastIndexOf(2, -1);\n// index is 3\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Finding_all_the_occurrences_of_an_element"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Finding all the occurrences of an element\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3elastIndexOf\x3c/code\x3e to find all the indices of an element in a given array, using \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3epush\x3c/a\x3e to add them to another array as they are found.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar indices \x3d [];\nvar idx \x3d array.lastIndexOf(element);\nwhile (idx\x26nbsp;!\x3d -1)\n{\n  indices.push(idx);\n  idx \x3d (idx \x26gt; 0\x26nbsp;? array.lastIndexOf(element, idx - 1)\x26nbsp;: -1);\n}\n\x3c/pre\x3e\n\x3cp\x3eNote that we have to handle the case \x3ccode\x3eidx \x3d\x3d 0\x3c/code\x3e separately here because the element will always be found regardless of the \x3ccode\x3efromIndex\x3c/code\x3e parameter if it is the first element of the array. This is different from the \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e method.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eindexOf\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility",
"Examples","Example: Using lastIndexOf","Example: Finding all the occurrences of an element","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter","title":"Array.filter","_id":"4eea850ba4c86c4dba0000b6","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eCreates a new array with all elements that pass the test implemented by the provided function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.filter(\x3cem\x3ecallback\x3c/em\x3e[, \x3cem\x3ethisObject\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ecallback\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eFunction to test each element of the array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ethisObject\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eObject to use as \x3ccode\x3ethis\x3c/code\x3e when executing \x3ccode\x3ecallback\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3efilter\x3c/code\x3e calls a provided \x3ccode\x3ecallback\x3c/code\x3e function once for each element in an array, and constructs a new array of all the values for which \x3ccode\x3ecallback\x3c/code\x3e returns a true value. \x3ccode\x3ecallback\x3c/code\x3e is invoked only for indexes of the array which have assigned values; it is not invoked for indexes which have been deleted or which have never been assigned values. Array elements which do not pass the \x3ccode\x3ecallback\x3c/code\x3e test are simply skipped, and are not included in the new array.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3ecallback\x3c/code\x3e is invoked with three arguments: the value of the element, the index of the element, and the Array object being traversed.\x3c/p\x3e\n\x3cp\x3eIf a \x3ccode\x3ethisObject\x3c/code\x3e parameter is provided to \x3ccode\x3efilter\x3c/code\x3e, it will be used as the \x3ccode\x3ethis\x3c/code\x3e for each invocation of the \x3ccode\x3ecallback\x3c/code\x3e. If it is not provided, or is \x3ccode\x3enull\x3c/code\x3e, the global object associated with \x3ccode\x3ecallback\x3c/code\x3e is used instead.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3efilter\x3c/code\x3e does not mutate the array on which it is called.\x3c/p\x3e\n\x3cp\x3eThe range of elements processed by \x3ccode\x3efilter\x3c/code\x3e is set before the first invocation of \x3ccode\x3ecallback\x3c/code\x3e. Elements which are appended to the array after the call to \x3ccode\x3efilter\x3c/code\x3e begins will not be visited by \x3ccode\x3ecallback\x3c/code\x3e. If existing elements of the array are changed, or deleted, their value as passed to \x3ccode\x3ecallback\x3c/code\x3e will be the value at the time \x3ccode\x3efilter\x3c/code\x3e visits them; elements that are deleted are not visited.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCompatibility\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3efilter\x3c/code\x3e is a JavaScript extension to the ECMA-262 standard; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of \x3ccode\x3efilter\x3c/code\x3e in ECMA-262 implementations which do not natively support it. This algorithm is exactly the one specified in ECMA-262, 5th edition, assuming\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eObject\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eTypeError\x3c/code\x3e\x26nbsp;have their original values, that\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3efun.call\x3c/code\x3e\x26nbsp;evaluates to the original value of\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3e\x3ca style \x3d "text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default; " title \x3d "en/JavaScript/Reference/Global Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3eFunction.prototype.call\x3c/a\x3e\x3c/code\x3e, and that \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Array/push" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push"\x3eArray.prototype.push\x3c/a\x3e\x3c/code\x3e has its original value.\x26nbsp;\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (!Array.prototype.filter)\n{\n  Array.prototype.filter \x3d function(fun /*, thisp */)\n  {\n    \x26quot;use strict\x26quot;;\n\n    if (this \x3d\x3d null)\n      throw new TypeError();\n\n    var t \x3d Object(this);\n    var len \x3d t.length \x26gt;\x26gt;\x26gt; 0;\n    if (typeof fun !\x3d \x26quot;function\x26quot;)\n      throw new TypeError();\n\n    var res \x3d [];\n    var thisp \x3d arguments[1];\n    for (var i \x3d 0; i \x26lt; len; i++)\n    {\n      if (i in t)\n      {\n        var val \x3d t[i]; // in case fun mutates this\n        if (fun.call(thisp, val, i, t))\n          res.push(val);\n      }\n    }\n\n    return res;\n  };\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Filtering_out_all_small_values"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Filtering out all small values\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3efilter\x3c/code\x3e to create a filtered array that has all elements with values less than 10 removed.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction isBigEnough(element, index, array) {\n  return (element \x26gt;\x3d 10);\n}\nvar filtered \x3d [12, 5, 8, 130, 44].filter(isBigEnough);\n// filtered is [12, 130, 44]\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Filtering_out_all_small_values"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Filtering out all small values\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3efilter\x3c/code\x3e to create a filtered array that has all elements with values less than 10 removed.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction isBigEnough(element, index, array) {\n  return (element \x26gt;\x3d 10);\n}\nvar filtered \x3d [12, 5, 8, 130, 44].filter(isBigEnough);\n// filtered is [12, 130, 44]\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility","Examples","Example: Filtering out all small values","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach","title":"Array.forEach","_id":"4eea850ba4c86c4dba0000b7","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eExecutes a provided function once per array element.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.forEach(\x3cem\x3ecallback\x3c/em\x3e[, \x3cem\x3ethisArg\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ecallback\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eFunction to execute for each element.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ethisArg\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eObject to use as \x3ccode\x3ethis\x3c/code\x3e when executing \x3ccode\x3ecallback\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eforEach\x3c/code\x3e executes the provided function (\x3ccode\x3ecallback\x3c/code\x3e) once for each element present in the array. \x3ccode\x3ecallback\x3c/code\x3e is invoked only for indexes of the array which have assigned values; it is not invoked for indexes which have been deleted or which have never been assigned values.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3ecallback\x3c/code\x3e is invoked with \x3cstrong\x3ethree arguments\x3c/strong\x3e:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3ethe \x3cstrong\x3eelement value\x3c/strong\x3e\x3c/li\x3e \x3cli\x3ethe \x3cstrong\x3eelement index\x3c/strong\x3e\x3c/li\x3e \x3cli\x3ethe \x3cstrong\x3earray being traversed\x3c/strong\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eIf a \x3ccode\x3ethisArg\x3c/code\x3e parameter is provided to \x3ccode\x3eforEach\x3c/code\x3e, it will be used as the \x3ccode\x3ethis\x3c/code\x3e value for each \x3ccode\x3ecallback\x3c/code\x3e invocation as if \x3ccode\x3ecallback.call(thisArg, element, index, array)\x3c/code\x3e was called. If \x3ccode\x3ethisArg\x3c/code\x3e is \x3ccode\x3eundefined\x3c/code\x3e or \x3ccode\x3enull\x3c/code\x3e, the \x3ccode\x3ethis\x3c/code\x3e value within the function depends on whether the function is in \x3ca title \x3d "en/JavaScript/Strict_mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Strict_mode"\x3estrict mode\x3c/a\x3e or not (passed value if in strict mode, global object if in non-strict mode).\x3c/p\x3e\n\x3cp\x3eThe range of elements processed by \x3ccode\x3eforEach\x3c/code\x3e is set before the first invocation of \x3ccode\x3ecallback\x3c/code\x3e. Elements which are appended to the array after the call to \x3ccode\x3eforEach\x3c/code\x3e begins will not be visited by \x3ccode\x3ecallback\x3c/code\x3e. If existing elements of the array are changed, or deleted, their value as passed to \x3ccode\x3ecallback\x3c/code\x3e will be the value at the time \x3ccode\x3eforEach\x3c/code\x3e visits them; elements that are deleted are not visited.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eforEach\x3c/code\x3e is a recent addition to the ECMA-262 standard; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of \x3ccode\x3eforEach\x3c/code\x3e in implementations which do not natively support it. This algorithm is exactly the one specified in ECMA-262, 5th edition, assuming \x3ccode\x3eObject\x3c/code\x3e and \x3ccode\x3eTypeError\x3c/code\x3e have their original values and that \x3ccode\x3ecallback.call\x3c/code\x3e\x26nbsp;evaluates to the original value of \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3eFunction.prototype.call\x3c/a\x3e\x3c/code\x3e. \x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Production steps of ECMA-262, Edition 5, 15.4.4.18\n// Reference: http://es5.github.com/#x15.4.4.18\nif ( !Array.prototype.forEach ) {\n\n  Array.prototype.forEach \x3d function( callback, thisArg ) {\n\n    var T, k;\n\n    if ( this \x3d\x3d null ) {\n      throw new TypeError( \x26quot; this is null or not defined\x26quot; );\n    }\n\n    // 1. Let O be the result of calling ToObject passing the |this| value as the argument.\n    var O \x3d Object(this);\n\n    // 2. Let lenValue be the result of calling the Get internal method of O with the argument \x26quot;length\x26quot;.\n    // 3. Let len be ToUint32(lenValue).\n    var len \x3d O.length \x26gt;\x26gt;\x26gt; 0; // Hack to convert O.length to a UInt32\n\n    // 4. If IsCallable(callback) is false, throw a TypeError exception.\n    // See: http://es5.github.com/#x9.11\n    if ( {}.toString.call(callback) !\x3d \x26quot;[object Function]\x26quot; ) {\n      throw new TypeError( callback + \x26quot; is not a function\x26quot; );\n    }\n\n    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\n    if ( thisArg ) {\n      T \x3d thisArg;\n    }\n\n    // 6. Let k be 0\n    k \x3d 0;\n\n    // 7. Repeat, while k \x26lt; len\n    while( k \x26lt; len ) {\n\n      var kValue;\n\n      // a. Let Pk be ToString(k).\n      //   This is implicit for LHS operands of the in operator\n      // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.\n      //   This step can be combined with c\n      // c. If kPresent is true, then\n      if ( k in O ) {\n\n        // i. Let kValue be the result of calling the Get internal method of O with argument Pk.\n        kValue \x3d O[ k ];\n\n        // ii. Call the Call internal method of callback with T as the this value and\n        // argument list containing kValue, k, and O.\n        callback.call( T, kValue, k, O );\n      }\n      // d. Increase k by 1.\n      k++;\n    }\n    // 8. return undefined\n  };\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Printing_the_contents_of_an_array"\x3e\x3c/span\x3e\x3cspan id \x3d "Printing_the_contents_of_an_array"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3ePrinting the contents of an array\x3c/h3\x3e\n\x3cp\x3eThe following code logs a line for each element in an array:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction logArrayElements(element, index, array) {\n    0 \x26\x26 console.log(\x26quot;a[\x26quot; + index + \x26quot;] \x3d \x26quot; + element);\n}\n[2, 5, 9].forEach(logArrayElements);\n// logs:\n// a[0] \x3d 2\n// a[1] \x3d 5\n// a[2] \x3d 9\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "An_object_copy_function"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAn object copy function\x3c/h3\x3e\n\x3cp\x3eThe following code creates a copy of a given object. There are different ways to create a copy of an object. This one is just one of them here to explain how \x3ccode\x3eArray.prototype.forEach\x3c/code\x3e works. It uses a couple of new ECMAScript 5 Object.* functions.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction copy(o){\n  var copy \x3d Object.create( Object.getPrototypeOf(o) );\n  var propNames \x3d Object.getOwnPropertyNames(o);\n  propNames.forEach(function(name){\n                      var desc \x3d Object.getOwnPropertyDescriptor(o, name);\n                      Object.defineProperty(copy, name, desc);\n                    });\n  return copy;\n}\n\n\nvar o1 \x3d {a:1, b:2};\nvar o2 \x3d copy(o1); // o2 looks like o1 now\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Printing_the_contents_of_an_array"\x3e\x3c/span\x3e\x3cspan id \x3d "Printing_the_contents_of_an_array"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3ePrinting the contents of an array\x3c/h3\x3e\n\x3cp\x3eThe following code logs a line for each element in an array:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction logArrayElements(element, index, array) {\n    0 \x26\x26 console.log(\x26quot;a[\x26quot; + index + \x26quot;] \x3d \x26quot; + element);\n}\n[2, 5, 9].forEach(logArrayElements);\n// logs:\n// a[0] \x3d 2\n// a[1] \x3d 5\n// a[2] \x3d 9\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "An_object_copy_function"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eAn object copy function\x3c/h3\x3e\n\x3cp\x3eThe following code creates a copy of a given object. There are different ways to create a copy of an object. This one is just one of them here to explain how \x3ccode\x3eArray.prototype.forEach\x3c/code\x3e works. It uses a couple of new ECMAScript 5 Object.* functions.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction copy(o){\n  var copy \x3d Object.create( Object.getPrototypeOf(o) );\n  var propNames \x3d Object.getOwnPropertyNames(o);\n  propNames.forEach(function(name){\n                      var desc \x3d Object.getOwnPropertyDescriptor(o, name);\n                      Object.defineProperty(copy, name, desc);\n                    });\n  return copy;\n}\n\n\nvar o1 \x3d {a:1, b:2};\nvar o2 \x3d copy(o1); // o2 looks like o1 now\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility","Examples","Printing the contents of an array","An object copy function","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every","title":"Array.every","_id":"4eea850ca4c86c4dba0000b8","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eTests whether all elements in the array pass the test implemented by the provided function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.every(\x3cem\x3ecallback\x3c/em\x3e[, \x3cem\x3ethisObject\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ecallback\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eFunction to test for each element.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ethisObject\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eObject to use as \x3ccode\x3ethis\x3c/code\x3e when executing \x3ccode\x3ecallback\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eevery\x3c/code\x3e executes the provided \x3ccode\x3ecallback\x3c/code\x3e function once for each element present in the array until it finds one where \x3ccode\x3ecallback\x3c/code\x3e returns a false value. If such an element is found, the \x3ccode\x3eevery\x3c/code\x3e method immediately returns \x3ccode\x3efalse\x3c/code\x3e. Otherwise, if \x3ccode\x3ecallback\x3c/code\x3e returned a true value for all elements, \x3ccode\x3eevery\x3c/code\x3e will return \x3ccode\x3etrue\x3c/code\x3e. \x3ccode\x3ecallback\x3c/code\x3e is invoked only for indexes of the array which have assigned values; it is not invoked for indexes which have been deleted or which have never been assigned values.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3ecallback\x3c/code\x3e is invoked with three arguments: the value of the element, the index of the element, and the Array object being traversed.\x3c/p\x3e\n\x3cp\x3eIf a \x3ccode\x3ethisObject\x3c/code\x3e parameter is provided to \x3ccode\x3eevery\x3c/code\x3e, it will be used as the \x3ccode\x3ethis\x3c/code\x3e for each invocation of the \x3ccode\x3ecallback\x3c/code\x3e. If it is not provided, or is \x3ccode\x3enull\x3c/code\x3e, the global object associated with \x3ccode\x3ecallback\x3c/code\x3e is used instead.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eevery\x3c/code\x3e does not mutate the array on which it is called.\x3c/p\x3e\n\x3cp\x3eThe range of elements processed by \x3ccode\x3eevery\x3c/code\x3e is set before the first invocation of \x3ccode\x3ecallback\x3c/code\x3e. Elements which are appended to the array after the call to \x3ccode\x3eevery\x3c/code\x3e begins will not be visited by \x3ccode\x3ecallback\x3c/code\x3e. If existing elements of the array are changed, their value as passed to \x3ccode\x3ecallback\x3c/code\x3e will be the value at the time \x3ccode\x3eevery\x3c/code\x3e visits them; elements that are deleted are not visited.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eevery\x3c/code\x3e acts like the \x26quot;for all\x26quot; quantifier in mathematics. In particular, for an empty array, it returns true. (It is \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://en.wikipedia.org/wiki/Vacuous_truth#Vacuous_truths_in_mathematics" title \x3d "http://en.wikipedia.org/wiki/Vacuous_truth#Vacuous_truths_in_mathematics" target \x3d "_blank"\x3evacuously true\x3c/a\x3e that all elements of the \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://en.wikipedia.org/wiki/Empty_set#Common_problems" title \x3d "http://en.wikipedia.org/wiki/Empty_set#Common_problems" target \x3d "_blank"\x3eempty set\x3c/a\x3e satisfy any given condition.)\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eevery\x3c/code\x3e is a recent addition to the ECMA-262 standard; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of \x3ccode\x3eevery\x3c/code\x3e in implementations which do not natively support it. This algorithm is exactly the one specified in ECMA-262, 5th edition, assuming\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eObject\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eTypeError\x3c/code\x3e\x26nbsp;have their original values and that\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3efun.call\x3c/code\x3e\x26nbsp;evaluates to the original value of\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3e\x3ca href \x3d "/en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" style \x3d "text-decoration: none; color: rgb(4, 121, 167); "\x3eFunction.prototype.call\x3c/a\x3e\x3c/code\x3e. \x26nbsp;\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (!Array.prototype.every)\n{\n  Array.prototype.every \x3d function(fun /*, thisp */)\n  {\n    \x26quot;use strict\x26quot;;\n\n    if (this \x3d\x3d null)\n      throw new TypeError();\n\n    var t \x3d Object(this);\n    var len \x3d t.length \x26gt;\x26gt;\x26gt; 0;\n    if (typeof fun !\x3d \x26quot;function\x26quot;)\n      throw new TypeError();\n\n    var thisp \x3d arguments[1];\n    for (var i \x3d 0; i \x26lt; len; i++)\n    {\n      if (i in t \x26amp;\x26amp; !fun.call(thisp, t[i], i, t))\n        return false;\n    }\n\n    return true;\n  };\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Testing_size_of_all_array_elements"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Testing size of all array elements\x3c/h3\x3e\n\x3cp\x3eThe following example tests whether all elements in the array are bigger than 10.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction isBigEnough(element, index, array) {\n  return (element \x26gt;\x3d 10);\n}\nvar passed \x3d [12, 5, 8, 130, 44].every(isBigEnough);\n// passed is false\npassed \x3d [12, 54, 18, 130, 44].every(isBigEnough);\n// passed is true\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Testing_size_of_all_array_elements"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Testing size of all array elements\x3c/h3\x3e\n\x3cp\x3eThe following example tests whether all elements in the array are bigger than 10.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction isBigEnough(element, index, array) {\n  return (element \x26gt;\x3d 10);\n}\nvar passed \x3d [12, 5, 8, 130, 44].every(isBigEnough);\n// passed is false\npassed \x3d [12, 54, 18, 130, 44].every(isBigEnough);\n// passed is true\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility","Examples","Example: Testing size of all array elements","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map","title":"Array.map","_id":"4eea850da4c86c4dba0000b9","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCreates a new array with the results of calling a provided function on every element in this array.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.map(\x3cem\x3ecallback\x3c/em\x3e[, \x3cem\x3ethisArg\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ecallback\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eFunction that produces an element of the new Array from an element of the current one.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ethisArg\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eObject to use as \x3ccode\x3ethis\x3c/code\x3e when executing \x3ccode\x3ecallback\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3emap\x3c/code\x3e calls a provided \x3ccode\x3ecallback\x3c/code\x3e function once for each element in an array, in order, and constructs a new array from the results. \x3ccode\x3ecallback\x3c/code\x3e is invoked only for indexes of the array which have assigned values; it is not invoked for indexes which have been deleted or which have never been assigned values.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3ecallback\x3c/code\x3e is invoked with three arguments: the value of the element, the index of the element, and the Array object being traversed.\x3c/p\x3e\n\x3cp\x3eIf a \x3ccode\x3ethisArg\x3c/code\x3e parameter is provided to \x3ccode\x3emap\x3c/code\x3e, it will be used as the \x3ccode\x3ethis\x3c/code\x3e for each invocation of the \x3ccode\x3ecallback\x3c/code\x3e. If it is not provided, or is \x3ccode\x3enull\x3c/code\x3e, the global object associated with \x3ccode\x3ecallback\x3c/code\x3e is used instead.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3emap\x3c/code\x3e does not mutate the array on which it is called.\x3c/p\x3e\n\x3cp\x3eThe range of elements processed by \x3ccode\x3emap\x3c/code\x3e is set before the first invocation of \x3ccode\x3ecallback\x3c/code\x3e. Elements which are appended to the array after the call to \x3ccode\x3emap\x3c/code\x3e begins will not be visited by \x3ccode\x3ecallback\x3c/code\x3e. If existing elements of the array are changed, or deleted, their value as passed to \x3ccode\x3ecallback\x3c/code\x3e will be the value at the time \x3ccode\x3emap\x3c/code\x3e visits them; elements that are deleted are not visited.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3emap\x3c/code\x3e is a recent addition to the ECMA-262 standard; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of \x3ccode\x3emap\x3c/code\x3e in implementations which do not natively support it. This algorithm is exactly the one specified in ECMA-262, 5th edition, assuming\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eObject\x3c/code\x3e,\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eTypeError\x3c/code\x3e, and \x3ccode\x3eArray\x3c/code\x3e have their original values and that\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3ecallback.call\x3c/code\x3e\x26nbsp;evaluates to the original value of\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3e\x3ca style \x3d "text-decoration: none; color: rgb(4, 121, 167); " rel \x3d "internal" href \x3d "/en/JavaScript/Reference/Global_Objects/Function/call"\x3eFunction.prototype.call\x3c/a\x3e\x3c/code\x3e. \x26nbsp;\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Production steps of ECMA-262, Edition 5, 15.4.4.19\n// Reference: http://es5.github.com/#x15.4.4.19\nif (!Array.prototype.map) {\n  Array.prototype.map \x3d function(callback, thisArg) {\n\n    var T, A, k;\n\n    if (this \x3d\x3d null) {\n      throw new TypeError(\x26quot; this is null or not defined\x26quot;);\n    }\n\n    // 1. Let O be the result of calling ToObject passing the |this| value as the argument.\n    var O \x3d Object(this);\n\n    // 2. Let lenValue be the result of calling the Get internal method of O with the argument \x26quot;length\x26quot;.\n    // 3. Let len be ToUint32(lenValue).\n    var len \x3d O.length \x26gt;\x26gt;\x26gt; 0;\n\n    // 4. If IsCallable(callback) is false, throw a TypeError exception.\n    // See: http://es5.github.com/#x9.11\n    if ({}.toString.call(callback) !\x3d \x26quot;[object Function]\x26quot;) {\n      throw new TypeError(callback + \x26quot; is not a function\x26quot;);\n    }\n\n    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\n    if (thisArg) {\n      T \x3d thisArg;\n    }\n\n    // 6. Let A be a new array created as if by the expression new Array(len) where Array is\n    // the standard built-in constructor with that name and len is the value of len.\n    A \x3d new Array(len);\n\n    // 7. Let k be 0\n    k \x3d 0;\n\n    // 8. Repeat, while k \x26lt; len\n    while(k \x26lt; len) {\n\n      var kValue, mappedValue;\n\n      // a. Let Pk be ToString(k).\n      //   This is implicit for LHS operands of the in operator\n      // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.\n      //   This step can be combined with c\n      // c. If kPresent is true, then\n      if (k in O) {\n\n        // i. Let kValue be the result of calling the Get internal method of O with argument Pk.\n        kValue \x3d O[ k ];\n\n        // ii. Let mappedValue be the result of calling the Call internal method of callback\n        // with T as the this value and argument list containing kValue, k, and O.\n        mappedValue \x3d callback.call(T, kValue, k, O);\n\n        // iii. Call the DefineOwnProperty internal method of A with arguments\n        // Pk, Property Descriptor {Value: mappedValue, Writable: true, Enumerable: true, Configurable: true},\n        // and false.\n\n        // In browsers that support Object.defineProperty, use the following:\n        // Object.defineProperty(A, Pk, { value: mappedValue, writable: true, enumerable: true, configurable: true });\n\n        // For best browser support, use the following:\n        A[ k ] \x3d mappedValue;\n      }\n      // d. Increase k by 1.\n      k++;\n    }\n\n    // 9. return A\n    return A;\n  };      \n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Pluralizing_the_words_.28strings.29_in_an_array"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Pluralizing_the_words_(strings)_in_an_array"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Pluralizing the words (strings) in an array\x3c/h3\x3e\n\x3cp\x3eThe following code creates an array of \x26quot;plural\x26quot; forms of nouns from an array of their singular forms.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction fuzzyPlural(single) {\n  return single.replace(/o/g, \'e\');\n}\n\nvar words \x3d [\x26quot;foot\x26quot;, \x26quot;goose\x26quot;, \x26quot;moose\x26quot;];\n0 \x26\x26 console.log(words.map(fuzzyPlural));\n\n// [\x26quot;feet\x26quot;, \x26quot;geese\x26quot;, \x26quot;meese\x26quot;]\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Mapping_an_array_of_numbers_to_an_array_of_square_roots"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Mapping an array of numbers to an array of square roots\x3c/h3\x3e\n\x3cp\x3eThe following code takes an array of numbers and creates a new array containing the square roots of the numbers in the first array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar numbers \x3d [1, 4, 9];\nvar roots \x3d numbers.map(Math.sqrt);\n/* roots is now [1, 2, 3], numbers is still [1, 4, 9] */\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_using_map_generically"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: using \x3ccode\x3emap\x3c/code\x3e generically\x3c/h3\x3e\n\x3cp\x3eThis example shows how to use map on a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String"\x3estring\x3c/a\x3e to get an array of bytes in the ASCII encoding representing the character values:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar map \x3d Array.prototype.map\nvar a \x3d map.call(\x26quot;Hello World\x26quot;, function(x) { return x.charCodeAt(0); })\n// a now equals [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Tricky_use_case"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eTricky use case\x3c/h3\x3e\n\x3cp\x3e\x3ca class \x3d " external" rel \x3d "external" href \x3d "http://www.wirfs-brock.com/allen/posts/166" title \x3d "http://www.wirfs-brock.com/allen/posts/166" target \x3d "_blank"\x3e(inspired by this blog post)\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3eIt is common to use the callback with one argument (the element being traversed). Some functions are also commonly used with one argument. These habits may lead to confusing behaviors.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Consider:\n[\x26quot;1\x26quot;, \x26quot;2\x26quot;, \x26quot;3\x26quot;].map(parseInt);\n// While one could expect [1, 2, 3]\n// The actual result is [1, NaN, NaN]\n\n// parseInt is often used with one argument, but takes two. The second being the radix\n// To the callback function, Array.prototype.map passes 3 arguments: the element, the index, the array\n// The third argument is ignored by parseInt, but not the second one, hence the possible confusion.\n// See the blog post for more details\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Pluralizing_the_words_.28strings.29_in_an_array"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Pluralizing_the_words_(strings)_in_an_array"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Pluralizing the words (strings) in an array\x3c/h3\x3e\n\x3cp\x3eThe following code creates an array of \x26quot;plural\x26quot; forms of nouns from an array of their singular forms.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction fuzzyPlural(single) {\n  return single.replace(/o/g, \'e\');\n}\n\nvar words \x3d [\x26quot;foot\x26quot;, \x26quot;goose\x26quot;, \x26quot;moose\x26quot;];\n0 \x26\x26 console.log(words.map(fuzzyPlural));\n\n// [\x26quot;feet\x26quot;, \x26quot;geese\x26quot;, \x26quot;meese\x26quot;]\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Mapping_an_array_of_numbers_to_an_array_of_square_roots"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Mapping an array of numbers to an array of square roots\x3c/h3\x3e\n\x3cp\x3eThe following code takes an array of numbers and creates a new array containing the square roots of the numbers in the first array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar numbers \x3d [1, 4, 9];\nvar roots \x3d numbers.map(Math.sqrt);\n/* roots is now [1, 2, 3], numbers is still [1, 4, 9] */\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_using_map_generically"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: using \x3ccode\x3emap\x3c/code\x3e generically\x3c/h3\x3e\n\x3cp\x3eThis example shows how to use map on a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String"\x3estring\x3c/a\x3e to get an array of bytes in the ASCII encoding representing the character values:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar map \x3d Array.prototype.map\nvar a \x3d map.call(\x26quot;Hello World\x26quot;, function(x) { return x.charCodeAt(0); })\n// a now equals [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Tricky_use_case"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eTricky use case\x3c/h3\x3e\n\x3cp\x3e\x3ca class \x3d " external" rel \x3d "external" href \x3d "http://www.wirfs-brock.com/allen/posts/166" title \x3d "http://www.wirfs-brock.com/allen/posts/166" target \x3d "_blank"\x3e(inspired by this blog post)\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3eIt is common to use the callback with one argument (the element being traversed). Some functions are also commonly used with one argument. These habits may lead to confusing behaviors.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Consider:\n[\x26quot;1\x26quot;, \x26quot;2\x26quot;, \x26quot;3\x26quot;].map(parseInt);\n// While one could expect [1, 2, 3]\n// The actual result is [1, NaN, NaN]\n\n// parseInt is often used with one argument, but takes two. The second being the radix\n// To the callback function, Array.prototype.map passes 3 arguments: the element, the index, the array\n// The third argument is ignored by parseInt, but not the second one, hence the possible confusion.\n// See the blog post for more details\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility","Examples","Example: Pluralizing the words (strings) in an array","Example: Mapping an array of numbers to an array of square roots","Example: using map generically","Tricky use case","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some","title":"Array.some","_id":"4eea850fa4c86c4dba0000ba","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eTests whether some element in the array passes the test implemented by the provided function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.some(\x3cem\x3ecallback\x3c/em\x3e[, \x3cem\x3ethisObject\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ecallback\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eFunction to test for each element.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ethisObject\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eObject to use as \x3ccode\x3ethis\x3c/code\x3e when executing \x3ccode\x3ecallback\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3esome\x3c/code\x3e executes the \x3ccode\x3ecallback\x3c/code\x3e function once for each element present in the array until it finds one where \x3ccode\x3ecallback\x3c/code\x3e returns a true value. If such an element is found, \x3ccode\x3esome\x3c/code\x3e immediately returns \x3ccode\x3etrue\x3c/code\x3e. Otherwise, \x3ccode\x3esome\x3c/code\x3e returns \x3ccode\x3efalse\x3c/code\x3e. \x3ccode\x3ecallback\x3c/code\x3e is invoked only for indexes of the array which have assigned values; it is not invoked for indexes which have been deleted or which have never been assigned values.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3ecallback\x3c/code\x3e is invoked with three arguments: the value of the element, the index of the element, and the Array object being traversed.\x3c/p\x3e\n\x3cp\x3eIf a \x3ccode\x3ethisObject\x3c/code\x3e parameter is provided to \x3ccode\x3esome\x3c/code\x3e, it will be used as the \x3ccode\x3ethis\x3c/code\x3e for each invocation of the \x3ccode\x3ecallback\x3c/code\x3e. If it is not provided, or is \x3ccode\x3enull\x3c/code\x3e, the global object associated with \x3ccode\x3ecallback\x3c/code\x3e is used instead.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3esome\x3c/code\x3e does not mutate the array on which it is called.\x3c/p\x3e\n\x3cp\x3eThe range of elements processed by \x3ccode\x3esome\x3c/code\x3e is set before the first invocation of \x3ccode\x3ecallback\x3c/code\x3e. Elements that are appended to the array after the call to \x3ccode\x3esome\x3c/code\x3e begins will not be visited by \x3ccode\x3ecallback\x3c/code\x3e. If an existing, unvisited element of the array is changed by \x3ccode\x3ecallback\x3c/code\x3e, its value passed to the visiting \x3ccode\x3ecallback\x3c/code\x3e will be the value at the time that \x3ccode\x3esome\x3c/code\x3e visits that element\'s index; elements that are deleted are not visited.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCompatibility\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3esome\x3c/code\x3e is a recent addition to the ECMA-262 standard; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of \x3ccode\x3esome\x3c/code\x3e in implementations which do not natively support it. This algorithm is exactly the one specified in ECMA-262, 5th edition, assuming\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eObject\x26nbsp;\x3c/code\x3eand\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eTypeError\x3c/code\x3e\x26nbsp;have their original values and that\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3efun.call\x3c/code\x3e\x26nbsp;evaluates to the original value of\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3e\x3ca href \x3d "/en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" style \x3d "text-decoration: none; color: rgb(4, 121, 167); "\x3eFunction.prototype.call\x3c/a\x3e\x3c/code\x3e. \x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x26lt;meta http-equiv\x3d\x26quot;content-type\x26quot; content\x3d\x26quot;text/html; charset\x3dutf-8\x26quot;/\x26gt; \x26lt;meta http-equiv\x3d\x26quot;content-type\x26quot; content\x3d\x26quot;text/html; charset\x3dutf-8\x26quot;/\x26gt;\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eif (!Array.prototype.some)\n{\n  Array.prototype.some \x3d function(fun /*, thisp */)\n  {\n    \x26quot;use strict\x26quot;;\n\n    if (this \x3d\x3d null)\n      throw new TypeError();\n\n    var t \x3d Object(this);\n    var len \x3d t.length \x26gt;\x26gt;\x26gt; 0;\n    if (typeof fun\x26nbsp;!\x3d \x26quot;function\x26quot;)\n      throw new TypeError();\n\n    var thisp \x3d arguments[1];\n    for (var i \x3d 0; i \x26lt; len; i++)\n    {\n      if (i in t \x26amp;\x26amp; fun.call(thisp, t[i], i, t))\n        return true;\n    }\n\n    return false;\n  };\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Testing_size_of_all_array_elements"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Testing size of all array elements\x3c/h4\x3e\n\x3cp\x3eThe following example tests whether some element in the array is bigger than 10.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction isBigEnough(element, index, array) {\n  return (element \x26gt;\x3d 10);\n}\nvar passed \x3d [2, 5, 8, 1, 4].some(isBigEnough);\n// passed is false\npassed \x3d [12, 5, 8, 1, 4].some(isBigEnough);\n// passed is true\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Testing_size_of_all_array_elements"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Testing size of all array elements\x3c/h4\x3e\n\x3cp\x3eThe following example tests whether some element in the array is bigger than 10.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction isBigEnough(element, index, array) {\n  return (element \x26gt;\x3d 10);\n}\nvar passed \x3d [2, 5, 8, 1, 4].some(isBigEnough);\n// passed is false\npassed \x3d [12, 5, 8, 1, 4].some(isBigEnough);\n// passed is true\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility","Examples","Example: Testing size of all array elements","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/ReduceRight","title":"Array.ReduceRight","_id":"4eea8510a4c86c4dba0000bb","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eApply a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3e\x3ccode\x3eArray\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3earray\x3c/em\x3e.reduceRight(\x3cem\x3ecallback\x3c/em\x3e[, \x3cem\x3einitialValue\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ecallback\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eFunction to execute on each value in the array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3einitialValue\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eObject to use as the first argument to the first call of the \x3ccode\x3ecallback\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3ereduceRight\x3c/code\x3e executes the callback function once for each element present in the array, excluding holes in the array, receiving four arguments: the initial value (or value from the previous callback call), the value of the current element, the current index, and the array over which iteration is occurring.\x3c/p\x3e\n\x3cp\x3eThe call to the reduceRight \x3ccode\x3ecallback\x3c/code\x3e would look something like this:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3earray.reduceRight(function(previousValue, currentValue, index, array) {\n    // ...\n});\n\x3c/pre\x3e\n\x3cp\x3eThe first time the function is called, the \x3ccode\x3epreviousValue\x3c/code\x3e and \x3ccode\x3ecurrentValue\x3c/code\x3e can be one of two values. If an \x3ccode\x3einitialValue\x3c/code\x3e was provided in the call to \x3ccode\x3ereduceRight\x3c/code\x3e, then \x3ccode\x3epreviousValue\x3c/code\x3e will be equal to \x3ccode\x3einitialValue\x3c/code\x3e and \x3ccode\x3ecurrentValue\x3c/code\x3e will be equal to the last value in the array. If no \x3ccode\x3einitialValue\x3c/code\x3e was provided, then \x3ccode\x3epreviousValue\x3c/code\x3e will be equal to the last value in the array and \x3ccode\x3ecurrentValue\x3c/code\x3e will be equal to the second-to-last value.\x3c/p\x3e\n\x3cp\x3eSome example run-throughs of the function would look like this:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e[0, 1, 2, 3, 4].reduceRight(function(previousValue, currentValue, index, array) {\n    return previousValue + currentValue;\n});\n\n// First call\npreviousValue \x3d 4, currentValue \x3d 3, index \x3d 3\n\n// Second call\npreviousValue \x3d 7, currentValue \x3d 2, index \x3d 2\n\n// Third call\npreviousValue \x3d 9, currentValue \x3d 1, index \x3d 1\n\n// Fourth call\npreviousValue \x3d 10, currentValue \x3d 0, index \x3d 0\n\n// array is always the object [0,1,2,3,4] upon which reduceRight was called\n\n// Return Value: 10\x3c/pre\x3e\r\n        \n\x3cp\x3eAnd if you were to provide an \x3ccode\x3einitialValue\x3c/code\x3e, the result would look like this:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e[0, 1, 2, 3, 4].reduceRight(function(previousValue, currentValue, index, array) {\n    return previousValue + currentValue;\n}, 10);\n\n// First call\npreviousValue \x3d 10, currentValue \x3d 4, index \x3d 4\n\n// Second call\npreviousValue \x3d 14, currentValue \x3d 3, index \x3d 3\n\n// Third call\npreviousValue \x3d 17, currentValue \x3d 2, index \x3d 2\n\n// Fourth call\npreviousValue \x3d 19, currentValue \x3d 1, index \x3d 1\n\n// Fifth call\npreviousValue \x3d 20, currentValue \x3d 0, index \x3d 0\n\n// array is always the object [0,1,2,3,4] upon which reduceRight was called\n\n// Return Value: 20\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCompatibility\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3ereduceRight\x3c/code\x3e is a recent addition to the ECMA-262 standard; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of \x3ccode\x3ereduceRight\x3c/code\x3e in implementations which do not natively support it. This algorithm is exactly the one specified in ECMA-262, 5th edition, assuming\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eObject\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3eTypeError\x3c/code\x3e\x26nbsp;have their original value\x26nbsp;and that\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3ecallbackfn.call\x3c/code\x3e\x26nbsp;evaluates to the original value of\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3e\x3ca style \x3d "text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default; " title \x3d "en/JavaScript/Reference/Global Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3eFunction.prototype.call\x3c/a\x3e\x3c/code\x3e. \x26nbsp;\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (!Array.prototype.reduceRight)\n{\n  Array.prototype.reduceRight \x3d function(callbackfn /*, initialValue */)\n  {\n    \x26quot;use strict\x26quot;;\n\n    if (this \x3d\x3d null)\n      throw new TypeError();\n\n    var t \x3d Object(this);\n    var len \x3d t.length \x26gt;\x26gt;\x26gt; 0;\n    if (typeof callbackfn !\x3d \x26quot;function\x26quot;)\n      throw new TypeError();\n\n    // no value to return if no initial value, empty array\n    if (len \x3d\x3d\x3d 0 \x26amp;\x26amp; arguments.length \x3d\x3d\x3d 1)\n      throw new TypeError();\n\n    var k \x3d len - 1;\n    var accumulator;\n    if (arguments.length \x26gt;\x3d 2)\n    {\n      accumulator \x3d arguments[1];\n    }\n    else\n    {\n      do\n      {\n        if (k in this)\n        {\n          accumulator \x3d this[k--];\n          break;\n        }\n\n        // if array contains no values, no initial value to return\n        if (--k \x26lt; 0)\n          throw new TypeError();\n      }\n      while (true);\n    }\n\n    while (k \x26gt;\x3d 0)\n    {\n      if (k in t)\n        accumulator \x3d callbackfn.call(undefined, accumulator, t[k], k, t);\n      k--;\n    }\n\n    return accumulator;\n  };\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Sum_up_all_values_within_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Sum up all values within an array\x3c/h4\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar total \x3d [0, 1, 2, 3].reduceRight(function(a, b) {\n    return a + b;\n});\n// total \x3d\x3d 6\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Flatten_an_array_of_arrays"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Flatten an array of arrays\x3c/h4\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar flattened \x3d [[0, 1], [2, 3], [4, 5]].reduceRight(function(a, b) {\n    return a.concat(b);\n}, []);\n// flattened is [4, 5, 2, 3, 0, 1]\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Sum_up_all_values_within_an_array"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Sum up all values within an array\x3c/h4\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar total \x3d [0, 1, 2, 3].reduceRight(function(a, b) {\n    return a + b;\n});\n// total \x3d\x3d 6\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Flatten_an_array_of_arrays"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Flatten an array of arrays\x3c/h4\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar flattened \x3d [[0, 1], [2, 3], [4, 5]].reduceRight(function(a, b) {\n    return a.concat(b);\n}, []);\n// flattened is [4, 5, 2, 3, 0, 1]\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Global_Objects/Array/Reduce" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/Reduce"\x3ereduce\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e3.0 (1.9)\n\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e10.5\x3c/td\x3e \x3ctd\x3e4.0\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility","Examples","Example: Sum up all values within an array","Example: Flatten an array of arrays","See Also","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/Reduce","title":"Array.Reduce","_id":"4eea8510a4c86c4dba0000bc","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cvar style \x3d "font-style: italic;"\x3earray\x3c/var\x3e.reduce(\x3cvar style \x3d "font-style: italic;"\x3ecallback\x3c/var\x3e\x3cspan style \x3d "font-style: italic;"\x3e[\x3c/span\x3e, \x3cvar style \x3d "font-style: italic;"\x3einitialValue\x3c/var\x3e\x3cspan style \x3d "font-style: italic;"\x3e]\x3c/span\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ecallback\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eFunction to execute on each value in the array, taking four arguments: \x3cdl\x3e \x3cdt\x3e\x3ccode\x3epreviousValue\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe value previously returned in the last invocation of the callback, or \x3ccode\x3einitialValue\x3c/code\x3e, if supplied. (See below.)\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ecurrentValue\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe current element being processed in the array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eindex\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe index of the current element being processed in the array.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe array \x3ccode\x3ereduce\x3c/code\x3e was called upon.\x3c/dd\x3e \x3c/dl\x3e \x3c/dd\x3e \x3cdt\x3e\x3ccode\x3einitialValue\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eObject to use as the first argument to the first call of the \x3ccode\x3ecallback\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3ereduce\x3c/code\x3e executes the \x3ccode\x3ecallback\x3c/code\x3e function once for each element present in the array, excluding holes in the array, receiving four arguments: the initial value (or value from the previous \x3ccode\x3ecallback\x3c/code\x3e call), the value of the current element, the current index, and the array over which iteration is occurring.\x3c/p\x3e\n\x3cp\x3eThe first time the callback is called, \x3ccode\x3epreviousValue\x3c/code\x3e and \x3ccode\x3ecurrentValue\x3c/code\x3e can be one of two values. If \x3ccode\x3einitialValue\x3c/code\x3e is provided in the call to \x3ccode\x3ereduce\x3c/code\x3e, then \x3ccode\x3epreviousValue\x3c/code\x3e will be equal to \x3ccode\x3einitialValue\x3c/code\x3e and \x3ccode\x3ecurrentValue\x3c/code\x3e will be equal to the first value in the array. If no \x3ccode\x3einitialValue\x3c/code\x3e was provided, then \x3ccode\x3epreviousValue\x3c/code\x3e will be equal to the first value in the array and \x3ccode\x3ecurrentValue\x3c/code\x3e will be equal to the second.\x3c/p\x3e\n\x3cp\x3eSuppose the following use of \x3ccode\x3ereduce\x3c/code\x3e occurred:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){\n  return previousValue + currentValue;\n});\x3c/pre\x3e\r\n        \n\x3cp\x3eThe callback would be invoked four times, with the arguments and return values in each call being as follows:\x3c/p\x3e\n\x3ctable border \x3d "1" cellpadding \x3d "1" cellspacing \x3d "1" style \x3d "width: 100%; table-layout: fixed;"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth scope \x3d "col"\x3e\x26nbsp;\x3c/th\x3e \x3cth scope \x3d "col"\x3e\x3ccode\x3epreviousValue\x3cbr/\x3e \x3c/code\x3e\x3c/th\x3e \x3cth scope \x3d "col"\x3e\x3ccode\x3ecurrentValue\x3cbr/\x3e \x3c/code\x3e\x3c/th\x3e \x3cth scope \x3d "col"\x3e\x3ccode\x3eindex\x3c/code\x3e\x3c/th\x3e \x3cth scope \x3d "col"\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/th\x3e \x3cth scope \x3d "col"\x3ereturn value\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth scope \x3d "row"\x3efirst call\x3c/th\x3e \x3ctd\x3e\x3ccode\x3e0\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e1\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e1\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[0,1,2,3,4]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e1\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3cth scope \x3d "row"\x3esecond call\x3c/th\x3e \x3ctd\x3e\x3ccode\x3e1\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e2\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e2\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[0,1,2,3,4]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e3\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3cth scope \x3d "row"\x3ethird call\x3c/th\x3e \x3ctd\x3e\x3ccode\x3e3\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e3\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e3\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[0,1,2,3,4]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e6\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3cth scope \x3d "row"\x3efourth call\x3c/th\x3e \x3ctd\x3e\x3ccode\x3e6\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e4\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e4\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[0,1,2,3,4]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e10\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3ereduce\x3c/code\x3e would be that of the last callback invocation (\x3ccode\x3e10\x3c/code\x3e).\x3c/p\x3e\n\x3cp\x3eIf you were to provide an initial value as the second argument to \x3ccode\x3ereduce\x3c/code\x3e, the result would look like this:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){\n  return previousValue + currentValue;\n}, 10);\x3c/pre\x3e\r\n        \n\x3ctable border \x3d "1" cellpadding \x3d "1" cellspacing \x3d "1" style \x3d "width: 100%; table-layout: fixed;"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth scope \x3d "col"\x3e\x26nbsp;\x3c/th\x3e \x3cth scope \x3d "col"\x3e\x3ccode\x3epreviousValue\x3cbr/\x3e \x3c/code\x3e\x3c/th\x3e \x3cth scope \x3d "col"\x3e\x3ccode\x3ecurrentValue\x3cbr/\x3e \x3c/code\x3e\x3c/th\x3e \x3cth scope \x3d "col"\x3e\x3ccode\x3eindex\x3c/code\x3e\x3c/th\x3e \x3cth scope \x3d "col"\x3e\x3ccode\x3earray\x3c/code\x3e\x3c/th\x3e \x3cth scope \x3d "col"\x3ereturn value\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth scope \x3d "row"\x3efirst call\x3c/th\x3e \x3ctd\x3e\x3ccode\x3e10\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e0\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e0\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[0,1,2,3,4]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e10\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3cth scope \x3d "row"\x3esecond call\x3c/th\x3e \x3ctd\x3e\x3ccode\x3e10\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e1\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e1\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[0,1,2,3,4]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e11\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3cth scope \x3d "row"\x3ethird call\x3c/th\x3e \x3ctd\x3e\x3ccode\x3e11\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e2\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e2\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[0,1,2,3,4]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e13\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3cth scope \x3d "row"\x3efourth call\x3c/th\x3e \x3ctd\x3e\x3ccode\x3e13\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e3\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e3\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[0,1,2,3,4]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e16\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3cth scope \x3d "row"\x3efifth call\x3c/th\x3e \x3ctd\x3e\x3ccode\x3e16\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e4\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e4\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[0,1,2,3,4]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e20\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3eThe value returned by \x3ccode\x3ereduce\x3c/code\x3e this time would be, of course, \x3ccode\x3e20\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eArray.prototype.reduce\x3c/code\x3e is an ECMAScript 5 addition; as such it may not be present in other implementations of the standard. You can work around this by inserting the following code at the beginning of your scripts, allowing use of \x3ccode\x3ereduce\x3c/code\x3e in implementations which do not natively support it.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif ( !Array.prototype.reduce ) {\n  Array.prototype.reduce \x3d function reduce(accumulator){\n        var i, l \x3d this.length, curr;\n        \n        if(typeof accumulator !\x3d\x3d \x26quot;function\x26quot;) // ES5 : \x26quot;If IsCallable(callbackfn) is false, throw a TypeError exception.\x26quot;\n          throw new TypeError(\x26quot;First argument is not callable\x26quot;);\n\n        if((l \x3d\x3d 0 || l \x3d\x3d\x3d null) \x26amp;\x26amp; (arguments.length \x26lt;\x3d 1))// \x3d\x3d on purpose to test 0 and false.\n          throw new TypeError(\x26quot;Array length is 0 and no second argument\x26quot;);\n        \n        if(arguments.length \x26lt;\x3d 1){\n          curr \x3d this[0]; // Increase i to start searching the secondly defined element in the array\n          i \x3d 1; // start accumulating at the second element\n        }\n        else{\n          curr \x3d arguments[1];\n        }\n        \n        for(i \x3d i || 0 ; i \x26lt; l ; ++i){\n          if(i in this)\n            curr \x3d accumulator.call(undefined, curr, this[i], i, this);\n        }\n        \n        return curr;\n      };\n  }\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Sum_up_all_values_within_an_array"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Sum up all values within an array\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar total \x3d [0, 1, 2, 3].reduce(function(a, b) {\n    return a + b;\n});\n// total \x3d\x3d 6\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Flatten_an_array_of_arrays"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Flatten an array of arrays\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar flattened \x3d [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {\n    return a.concat(b);\n});\n// flattened is [0, 1, 2, 3, 4, 5]\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Sum_up_all_values_within_an_array"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Sum up all values within an array\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar total \x3d [0, 1, 2, 3].reduce(function(a, b) {\n    return a + b;\n});\n// total \x3d\x3d 6\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Flatten_an_array_of_arrays"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Flatten an array of arrays\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar flattened \x3d [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {\n    return a.concat(b);\n});\n// flattened is [0, 1, 2, 3, 4, 5]\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee Also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/ReduceRight"\x3ereduceRight\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e3.0 (1.9)\n\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e10.5\x3c/td\x3e \x3ctd\x3e4.0\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e3.0 (1.9)\n\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e10.5\x3c/td\x3e \x3ctd\x3e4.0\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Syntax","Parameters","Description","Compatibility","Examples","Example: Sum up all values within an array","Example: Flatten an array of arrays","See Also","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays","title":"JavaScript typed arrays","_id":"4eea8512a4c86c4dba0000bd","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Buffers_and_views:.C2.A0typed_array_architecture"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBuffers and views:\x26nbsp;typed array architecture\x3c/h2\x3e\n\x3cp\x3eTo achieve maximum flexibility and efficiency, JavaScript typed arrays split the implementation into a \x3cstrong\x3ebuffer\x3c/strong\x3e and a \x3cstrong\x3eview\x3c/strong\x3e. A buffer (implemented by the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e class) is an object representing a chunk of data; it has no format to speak of, and offers no mechanism for accessing its contents. In order to access the memory contained in a buffer, you need to use a view. A view provides a context\x26mdash;that is, a data type, starting offset, and number of elements\x26mdash;that turns the data into an actual typed array. Views are implemented by the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView"\x3e\x3ccode\x3eArrayBufferView\x3c/code\x3e\x3c/a\x3e class and its subclasses.\x3c/p\x3e\n\x3cp\x3e\x3cdiv class \x3d "wiki-tree"\x3e\x3cul\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer" title \x3d "en/JavaScript_typed_arrays/ArrayBuffer" pageid \x3d "57153"\x3eArrayBuffer\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView" title \x3d "en/JavaScript_typed_arrays/ArrayBufferView" pageid \x3d "57154"\x3eArrayBufferView\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/DataView" title \x3d "en/JavaScript_typed_arrays/DataView" pageid \x3d "66445"\x3eDataView\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array" title \x3d "en/JavaScript_typed_arrays/Float32Array" pageid \x3d "62451"\x3eFloat32Array\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array" title \x3d "en/JavaScript_typed_arrays/Float64Array" pageid \x3d "62453"\x3eFloat64Array\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array" title \x3d "en/JavaScript_typed_arrays/Int16Array" pageid \x3d "62446"\x3eInt16Array\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array" title \x3d "en/JavaScript_typed_arrays/Int32Array" pageid \x3d "62449"\x3eInt32Array\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array" title \x3d "en/JavaScript_typed_arrays/Int8Array" pageid \x3d "57155"\x3eInt8Array\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array" title \x3d "en/JavaScript_typed_arrays/Uint16Array" pageid \x3d "62448"\x3eUint16Array\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array" title \x3d "en/JavaScript_typed_arrays/Uint32Array" pageid \x3d "62450"\x3eUint32Array\x3c/a\x3e\x3c/li\x3e\x3cli\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array" title \x3d "en/JavaScript_typed_arrays/Uint8Array" pageid \x3d "62445"\x3eUint8Array\x3c/a\x3e\x3c/li\x3e\x3c/ul\x3e\x3c/div\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Using_views_with_buffers"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eUsing views with buffers\x3c/h2\x3e\n\x3cp\x3eLet\'s create a 16-byte buffer:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar buffer \x3d new ArrayBuffer(16);\x3c/pre\x3e\r\n        \n\x3cp\x3eAt this point, we have a chunk of memory whose bytes are all pre-initialized to 0. There\'s not a lot we can do with it, though. We can confirm that it is indeed 16 bytes long, and that\'s about it:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (buffer.byteLength \x3d\x3d 16) {\n  alert(\x26quot;Yes, it\'s 16 bytes.\x26quot;);\n} else {\n  alert(\x26quot;Oh no, it\'s the wrong size!\x26quot;);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eBefore we can really work with this buffer, we need to create a view. Let\'s create a view that treats the data in the buffer as an array of 32-bit signed integers:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar int32View \x3d new Int32Array(buffer);\x3c/pre\x3e\r\n        \n\x3cp\x3eNow we can access the fields in the array just like a normal array:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efor (var i\x3d0; i\x26lt;int32View.length; i++) {\n  int32View[i] \x3d i*2;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThis fills out the 4 entries in the array (4 entries at 4 bytes each makes 16 total bytes) with the values 0, 2, 4, and 6.\x3c/p\x3e\n\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Multiple_views_on_the_same_data"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMultiple views on the same data\x3c/h3\x3e\n\x3cp\x3eThings start to get really interesting when you consider that you can create multiple views onto the same data. For example, given the code above, we can continue like this:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar int16View \x3d new Int16Array(buffer);\n\nfor (var i\x3d0; i\x26lt;int16View.length; i++) {\n  0 \x26\x26 console.log(\x26quot;Entry \x26quot; + i + \x26quot;: \x26quot; + int16View[i]);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eHere we create a 16-bit integer view that shares the same buffer as the existing 32-bit view and we output all the values in the buffer as 16-bit integers. Now we get the output 0, 0, 2, 0, 4, 0, 6, 0.\x3c/p\x3e\n\x3cp\x3eYou can go a step farther, though. Consider this:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eint16View[0] \x3d 32;\n0 \x26\x26 console.log(\x26quot;Entry 0 in the 32-bit array is now \x26quot; + int32View[0]);\x3c/pre\x3e\r\n        \n\x3cp\x3eThe output from this is \x26quot;Entry 0 in the 32-bit array is now 32\x26quot;. In other words, the two arrays are indeed simply views on the same data buffer, treating it as different formats. You can do this with any \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3eview types\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Multiple_views_on_the_same_data"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMultiple views on the same data\x3c/h3\x3e\n\x3cp\x3eThings start to get really interesting when you consider that you can create multiple views onto the same data. For example, given the code above, we can continue like this:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar int16View \x3d new Int16Array(buffer);\n\nfor (var i\x3d0; i\x26lt;int16View.length; i++) {\n  0 \x26\x26 console.log(\x26quot;Entry \x26quot; + i + \x26quot;: \x26quot; + int16View[i]);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eHere we create a 16-bit integer view that shares the same buffer as the existing 32-bit view and we output all the values in the buffer as 16-bit integers. Now we get the output 0, 0, 2, 0, 4, 0, 6, 0.\x3c/p\x3e\n\x3cp\x3eYou can go a step farther, though. Consider this:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eint16View[0] \x3d 32;\n0 \x26\x26 console.log(\x26quot;Entry 0 in the 32-bit array is now \x26quot; + int32View[0]);\x3c/pre\x3e\r\n        \n\x3cp\x3eThe output from this is \x26quot;Entry 0 in the 32-bit array is now 32\x26quot;. In other words, the two arrays are indeed simply views on the same data buffer, treating it as different formats. You can do this with any \x3ca title \x3d "en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses"\x3eview types\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Working_with_complex_data_structures"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eWorking with complex data structures\x3c/h2\x3e\n\x3cp\x3eBy combining a single buffer with multiple views of different types, starting at different offsets into the buffer, you can interact with data objects containing multiple data types. This lets you, for example, interact with complex data structures from \x3ca title \x3d "en/WebGL" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/WebGL"\x3eWebGL\x3c/a\x3e, data files, or C structures you need to use while using \x3ca title \x3d "en/js-ctypes" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/js-ctypes"\x3ejs-ctypes\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eConsider this C structure:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "c"\x3estruct someStruct {\n  unsigned long id;\n  char username[16];\n  float amountDue;\n};\x3c/pre\x3e\r\n        \n\x3cp\x3eYou can access a buffer containing data in this format like this:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar buffer \x3d new ArrayBuffer(24);\n\n// ... read the data into the buffer ...\n\nvar idView \x3d new Uint32Array(buffer, 0, 1);\nvar usernameView \x3d new Uint8Array(buffer, 4, 16);\nvar amountDueView \x3d new Float32Array(buffer, 20, 1);\x3c/pre\x3e\r\n        \n\x3cp\x3eThen you can access, for example, the amount due with \x3ccode\x3eamountDueView[0]\x3c/code\x3e.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e The \x3ca class \x3d "external" title \x3d "http://en.wikipedia.org/wiki/Data_structure_alignment" rel \x3d "external" href \x3d "http://en.wikipedia.org/wiki/Data_structure_alignment" target \x3d "_blank"\x3edata structure alignment\x3c/a\x3e in a C structure is platform-dependent. Take precautions and considerations for these padding differences.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cp\x3eTyped arrays are available in WebKit as well. Chrome 7 includes support for \x3ccode\x3eArrayBuffer\x3c/code\x3e, \x3ccode\x3eFloat32Array\x3c/code\x3e, \x3ccode\x3eInt16Array\x3c/code\x3e, and \x3ccode\x3eUint8Array\x3c/code\x3e. Chrome 9 adds support for \x3ccode\x3eDataView\x3c/code\x3e objects.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Specification"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSpecification\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d "link-https" title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Buffers and views:\x26nbsp;typed array architecture","Using views with buffers","Multiple views on the same data","Working with complex data structures","Compatibility","Specification"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype","title":"Function.prototype","_id":"4eea8513a4c86c4dba0000be","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e prototype object. \x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e objects inherit from \x3ccode\x3eFunction.prototype\x3c/code\x3e. Modifications to the \x3ccode\x3eFunction.prototype\x3c/code\x3e object are propagated to all \x3ccode\x3eFunction\x3c/code\x3e instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arguments"\x3earguments\x3c/a\x3e\n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n\x3c/dt\x3e \x3cdd\x3eAn array corresponding to the arguments passed to a function. This is deprecated as property of \x3ccode\x3eFunction\x3c/code\x3e, use the \x3ca title \x3d "en/JavaScript/Reference/Functions/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments"\x3earguments\x3c/a\x3e object available within the function instead.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/arity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arity"\x3earity\x3c/a\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since JavaScript 1.8.6\x3c/span\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the number of arguments expected by the function. Use the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length"\x3elength\x3c/a\x3e property instead.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/caller" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/caller"\x3ecaller\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eSpecifies the function that invoked the currently executing function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length"\x3elength\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the number of arguments expected by the function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/name"\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eThe name of the function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eApplies the method of another object in the context of a different object (the calling object); arguments can be passed as an Array object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/bind" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind"\x3ebind\x3c/a\x3e\x3c/code\x3e\x26nbsp;\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eCreates a new function which, when called, itself calls this function in the context of the provided value, with a given sequence of arguments preceding any provided when the new function was called.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eCalls (executes) a method of another object in the context of a different object (the calling object); arguments can be passed as they are.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function/isGenerator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/isGenerator"\x3e\x3ccode\x3eisGenerator\x3c/code\x3e\x3c/a\x3e \n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires JavaScript 1.8.6\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eReturns \x3ccode\x3etrue\x3c/code\x3e if the function is a \x3ca title \x3d "en/Core JavaScript 1.5 Guide/Iterators and Generators#Generators.3a a better way to build Iterators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Iterators_and_Generators#Generators.3a_a_better_way_to_build_Iterators"\x3egenerator\x3c/a\x3e; otherwise returns \x3ccode\x3efalse\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toSource"\x3etoSource\x3c/a\x3e\x3c/code\x3e\x26nbsp;\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dt\x3e \x3cdd\x3eReturns a string representing the source code of the function. Overrides the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.toSource\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the source code of the function. Overrides the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arguments","title":"Function.arguments","_id":"4eea8514a4c86c4dba0000bf","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eAn array-like object corresponding to the arguments passed to a function.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/functions and function scope/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/functions_and_function_scope/arguments"\x3earguments\x3c/a\x3e\x3c/code\x3e object available within functions instead of \x3ccode\x3eFunction.arguments\x3c/code\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Notes \x3c/h3\x3e\n\x3cp\x3eIn the case of recursion, i.e. if function \x3ccode\x3ef\x3c/code\x3e appears several times on the call stack, the value of \x3ccode\x3ef.arguments\x3c/code\x3e represents the arguments corresponding to the most recent invocation of the function.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Example \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3efunction f(n) { g(n-1) }\nfunction g(n) {\n  print(\x26quot;before: \x26quot; + g.arguments[0]);\n  if(n\x26gt;0)\n    f(n);\n  print(\x26quot;after: \x26quot; + g.arguments[0]);\n}\nf(2)\n\x3c/pre\x3e\n\x3cp\x3eoutputs:\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3ebefore: 1\nbefore: 0\nafter: 0\nafter: 1\n\x3c/pre\x3e\n\n\n\x3c/div\x3e'],
"sectionNames":[" Summary ","Description"," Notes "," Example "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arity","title":"Function.arity","_id":"4eea8516a4c86c4dba0000c0","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eSpecifies the number of arguments expected by the function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp class \x3d "note"\x3eThe \x3ccode\x3earity\x3c/code\x3e property no longer exists and has been replaced by the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length"\x3eFunction.prototype.length\x3c/a\x3e\x3c/code\x3e property.\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length","title":"Function.length","_id":"4eea8516a4c86c4dba0000c1","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eSpecifies the number of arguments expected by the function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3elength\x3c/code\x3e is a property of a function object, and indicates how many arguments the function expects, i.e. the number of formal parameters. By contrast, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Functions_and_function_scope/arguments/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments/length"\x3earguments.length\x3c/a\x3e\x3c/code\x3e is local to a function and provides the number of arguments actually passed to the function.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e0 \x26\x26 console.log((function () {}).length);  /* 0 */\n0 \x26\x26 console.log((function (a) {}).length); /* 1 */\n0 \x26\x26 console.log((function (a, b) {}).length); /* 2 etc. */\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Description","Example"]},
{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/constructor","title":"Function.constructor","_id":"4eea8517a4c86c4dba0000c2","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eSee \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3eObject.constructor\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/caller",
"title":"Function.caller","_id":"4eea8517a4c86c4dba0000c3","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the function that invoked the specified function.\x3c/p\x3e\n\x3cp\x3eThis property is not part of ECMA-262 Edition 3 standard. It is implemented at least in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e (the JavaScript engine used in Mozilla) (see \n\x3ca rel \x3d "external" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d65683" class \x3d "external" title \x3d "RESOLVED FIXED - Function objects should have a caller property"\x3e\nbug 65683\x3c/a\x3e\n), V8 (the JavaScript engine used in Chrome) and JScript.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf the function \x3ccode\x3ef\x3c/code\x3e was invoked by the top level code, the value of \x3ccode\x3ef.caller\x3c/code\x3e is \x3ccode\x3enull\x3c/code\x3e, otherwise it\'s the function that called \x3ccode\x3ef\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3eThis property replaces deprecated \x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments/caller" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments/caller"\x3earguments.caller\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eNotes\x3c/h3\x3e\n\x3cp\x3eNote that in case of recursion, you can\'t reconstruct the call stack using this property. Consider:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction f(n) { g(n-1) }\nfunction g(n) { if(n\x26gt;0) f(n); else stop() }\nf(2)\n\x3c/pre\x3e\n\x3cp\x3eAt the moment \x3ccode\x3estop()\x3c/code\x3e is called the call stack will be:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nf(2) -\x26gt; g(1) -\x26gt; f(1) -\x26gt; g(0) -\x26gt; stop()\n\x3c/pre\x3e\n\x3cp\x3eThe following is true:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nstop.caller \x3d\x3d\x3d g \x26amp;\x26amp; f.caller \x3d\x3d\x3d g \x26amp;\x26amp; g.caller \x3d\x3d\x3d f\n\x3c/pre\x3e\n\x3cp\x3eso if you tried to get the stack trace in the \x3ccode\x3estop()\x3c/code\x3e function like this:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nvar f \x3d stop;\nvar stack \x3d \x26quot;Stack trace:\x26quot;;\nwhile (f) {\n  stack +\x3d \x26quot;\\n\x26quot; + f.name;\n  f \x3d f.caller;\n}\n\x3c/pre\x3e\n\x3cp\x3ethe loop would never stop.\x3c/p\x3e\n\x3cp\x3eThe special property \x3ccode\x3e__caller__\x3c/code\x3e, which returned the activation object of the caller thus allowing to reconstruct the stack, was removed for security reasons.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Checking_the_value_of_a_function.27s_caller_property"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Checking_the_value_of_a_function\'s_caller_property"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Checking the value of a function\'s \x3ccode\x3ecaller\x3c/code\x3e property\x3c/h4\x3e\n\x3cp\x3eThe following code checks the value a function\'s \x3ccode\x3ecaller\x3c/code\x3e property.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction myFunc() {\n   if (myFunc.caller \x3d\x3d null) {\n      return (\x26quot;The function was called from the top!\x26quot;);\n   } else\n      return (\x26quot;This function\'s caller was \x26quot; + myFunc.caller);\n}\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Checking_the_value_of_a_function.27s_caller_property"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Checking_the_value_of_a_function\'s_caller_property"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Checking the value of a function\'s \x3ccode\x3ecaller\x3c/code\x3e property\x3c/h4\x3e\n\x3cp\x3eThe following code checks the value a function\'s \x3ccode\x3ecaller\x3c/code\x3e property.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nfunction myFunc() {\n   if (myFunc.caller \x3d\x3d null) {\n      return (\x26quot;The function was called from the top!\x26quot;);\n   } else\n      return (\x26quot;This function\'s caller was \x26quot; + myFunc.caller);\n}\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Browser_Support"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser Support\x3c/h3\x3e\n\x3cp\x3eFunction.caller is currently supported by all major browsers:\x26nbsp;Firefox, Safari, Chrome, Opera and IE. \x26nbsp;\x3ca title \x3d "http://dl.dropbox.com/u/534786/callertest.html" class \x3d " external" rel \x3d "external" href \x3d "http://dl.dropbox.com/u/534786/callertest.html" target \x3d "_blank"\x3eTest page with results\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Notes","Examples","Example: Checking the value of a function's caller property","Browser Support"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/name","title":"Function.name","_id":"4eea8518a4c86c4dba0000c4","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eThe name of the function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe name property returns the name of a function, or an empty string for anonymous functions:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction doSomething() {}\nalert(doSomething.name); // alerts \x26quot;doSomething\x26quot;\n\x3c/pre\x3e\n\x3cp\x3eFunctions created with the syntax \x3ccode\x3enew \x3ca title \x3d "Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e(...)\x3c/code\x3e or just \x3ccode\x3e\x3ca title \x3d "Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e(...)\x3c/code\x3e have their name property set to \x26quot;anonymous\x26quot; on Firefox and Safari, or to an empty string on Chrome and Opera. This property is not supported on Internet Explorer.\x3c/p\x3e\n\x3cp\x3eNote that in these examples anonymous functions are created, so \x3ccode\x3ename\x3c/code\x3e returns an empty string:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar f \x3d function() { };\nvar object \x3d {\n  someMethod: function() {}\n};\n\nalert(f.name \x3d\x3d \x26quot;\x26quot;); // true\nalert(object.someMethod.name \x3d\x3d \x26quot;\x26quot;); // also true\n\x3c/pre\x3e\n\x3cp\x3eYou can define a function with a name in a \x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Functions#Function_constructor_vs._function_declaration_vs._function_expression" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Functions#Function_constructor_vs._function_declaration_vs._function_expression"\x3efunction expression\x3c/a\x3e:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar object \x3d {\n  someMethod: function object_someMethod() {}\n};\nalert(object.someMethod.name); // alerts \x26quot;object_someMethod\x26quot;\n\ntry { object_someMethod } catch(e) { alert(e); }\n// ReferenceError: object_someMethod is not defined\n\x3c/pre\x3e\n\x3cp\x3eYou cannot change the \x3ccode\x3ename\x3c/code\x3e of a function, this property is read-only:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar object \x3d {\n  // anonymous\n  someMethod: function(){}\n};\nobject.someMethod.name \x3d \x26quot;someMethod\x26quot;;\nalert(object.someMethod.name); // empty string, someMethod is anonymous\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cp\x3eYou can use \x3ccode\x3eobj.constructor.name\x3c/code\x3e to check the \x26quot;class\x26quot; of an object:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction a()\n{\n}\n\nvar b \x3d new a();\nalert(b.constructor.name); //Alerts \x26quot;a\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e'],"sectionNames":["Summary","Description","Examples"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind",
"title":"Function.bind","_id":"4eea8519a4c86c4dba0000c5","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCreates a new function that, when called, itself calls this function in the context of the provided \x3ccode\x3ethis\x3c/code\x3e value, with a given sequence of arguments preceding any provided when the new function was called.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3efun\x3c/em\x3e.bind(\x3cem\x3ethisArg\x3c/em\x3e[, \x3cem\x3earg1\x3c/em\x3e[, \x3cem\x3earg2\x3c/em\x3e[, ...]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3ethisArg\x3c/dt\x3e \x3cdd\x3eThe value to be passed as the \x3ccode\x3ethis\x3c/code\x3e parameter to the target function when the bound function is called. \x26nbsp;The value is ignored if the bound function is constructed using the \x3ca title \x3d "en/JavaScript/Reference/Operators/Special Operators/new Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/new"\x3e\x3ccode\x3enew\x3c/code\x3e operator\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3earg1, arg2, ...\x3c/dt\x3e \x3cdd\x3eArguments to prepend to arguments provided to the bound function when invoking the target function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3ebind\x3c/code\x3e function creates a new function (a \x3cem\x3ebound function\x3c/em\x3e) with the same function body (internal \x3ca title \x3d "Call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/Call" class \x3d "new "\x3eCall\x3c/a\x3e attribute in ECMAScript 5 terms) as the function it is being called on (the bound function\'s \x3cem\x3etarget function\x3c/em\x3e) with the \x3ccode\x3ethis\x3c/code\x3e value bound to the first argument of \x3ccode\x3ebind\x3c/code\x3e, which cannot be overridden. \x3ccode\x3ebind\x3c/code\x3e also accepts leading default arguments to provide to the target function when the bound function is called. \x26nbsp;A bound function may also be constructed using the \x3ccode\x3enew\x3c/code\x3e operator: doing so acts as though the target function had instead been constructed. \x26nbsp;The provided \x3ccode\x3ethis\x3c/code\x3e value is ignored, while prepended arguments are provided to the emulated function.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3ebind\x3c/code\x3e function is a recent addition to ECMA-262, 5th edition; as such it may not be present in all browsers. You can partially work around this by inserting the following code at the beginning of your scripts, allowing use of much of the functionality of \x3ccode\x3ebind\x3c/code\x3e in implementations that do not natively support it.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (!Function.prototype.bind) {\n  Function.prototype.bind \x3d function (oThis) {\n    if (typeof this !\x3d\x3d \x26quot;function\x26quot;) {\n      // closest thing possible to the ECMAScript 5 internal IsCallable function\n      throw new TypeError(\x26quot;Function.prototype.bind - what is trying to be bound is not callable\x26quot;);\n    }\n\n    var aArgs \x3d Array.prototype.slice.call(arguments, 1), \n        fToBind \x3d this, \n        fNOP \x3d function () {},\n        fBound \x3d function () {\n          return fToBind.apply(this instanceof fNOP\n                                 ? this\n                                 : oThis || window,\n                               aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    fNOP.prototype \x3d this.prototype;\n    fBound.prototype \x3d new fNOP();\n\n    return fBound;\n  };\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eSome of the many differences (there may well be others, as this list does not seriously attempt to be exhaustive) between this algorithm and the specified algorithm are:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eThe partial implementation relies \x3ccode\x3eArray.prototype.slice\x3c/code\x3e, \x3ccode\x3eArray.prototype.concat\x3c/code\x3e, \x3ccode\x3eFunction.prototype.call\x3c/code\x3e and \x3ccode\x3eFunction.prototype.apply\x3c/code\x3e, built-in methods to have their original values.\x3c/li\x3e \x3cli\x3eThe partial implementation creates functions that do not have immutable \x26quot;poison pill\x26quot; \x3ccode\x3ecaller\x3c/code\x3e and \x3ccode\x3earguments\x3c/code\x3e properties that throw a \x3ccode\x3eTypeError\x3c/code\x3e upon get, set, or deletion. (This could be added if the implementation supports \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/defineProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty"\x3e\x3ccode\x3eObject.defineProperty\x3c/code\x3e\x3c/a\x3e, or partially implemented [without throw-on-delete behavior] if the implementation supports the \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e and \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e extensions.)\x3c/li\x3e \x3cli\x3eThe partial implementation creates functions that have a \x3ccode\x3eprototype\x3c/code\x3e property. (Proper bound functions have none.)\x3c/li\x3e \x3cli\x3eThe partial implementation creates bound functions whose \x3ccode\x3elength\x3c/code\x3e property does not agree with that mandated by ECMA-262: it creates functions with length 0, while a full implementation, depending on the length of the target function and the number of pre-specified arguments, may return a non-zero length.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eIf you choose to use this partial implementation, \x3cstrong\x3eyou must not rely on those cases where behavior deviates from ECMA-262, 5th edition!\x3c/strong\x3e With some care, however (and perhaps with additional modification to suit specific needs), this partial implementation may be a reasonable bridge to the time when \x3ccode\x3ebind\x3c/code\x3e is widely implemented according to the specification.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Creating_a_bound_function"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCreating a bound function\x3c/h3\x3e\n\x3cp\x3eThe simplest use of \x3ccode\x3ebind\x3c/code\x3e is to make a function that, no matter how it is called, is called with a particular \x3ccode\x3ethis\x3c/code\x3e value. \x26nbsp;A common mistake for new JavaScript programmers is to extract a method from an object, then to later call that function and expect it to use the original object as its \x3ccode\x3ethis\x3c/code\x3e (e.g. by using that method in callback-based code). \x26nbsp;Without special care, however, the original object is usually lost. \x26nbsp;Creating a bound function from the function, using the original object, neatly solves this problem:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x \x3d 9; \nvar module \x3d {\n  x: 81,\n  getX: function() { return this.x; }\n};\n\nmodule.getX(); // 81\n\nvar getX \x3d module.getX;\ngetX(); // 9, because in this case, \x26quot;this\x26quot; refers to the global object\n\n// create a new function with \'this\' bound to module\nvar boundGetX \x3d getX.bind(module);\nboundGetX(); // 81\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Currying"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCurrying\x3c/h3\x3e\n\x3cp\x3eThe next simplest use of \x3ccode\x3ebind\x3c/code\x3e is to make a function with pre-specified initial arguments. These arguments (if any) follow the provided \x3ccode\x3ethis\x3c/code\x3e value and are then inserted at the start of the arguments passed to the target function, followed by the arguments passed to the bound function, whenever the bound function is called.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction list() {\n  return Array.prototype.slice.call(arguments);\n}\n\nvar list1 \x3d list(1, 2, 3); // [1, 2, 3]\n\n//  Create a function with a preset leading argument\nvar leadingZeroList \x3d list.bind(undefined, 37);\n\nvar list2 \x3d leadingZeroList(); // [37]\nvar list3 \x3d leadingZeroList(1, 2, 3); // [37, 1, 2, 3]\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Bound_functions_used_as_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBound functions used as constructors\x3c/h3\x3e\n\x3cp\x3eBound functions are automatically suitable for use with the \x3ccode\x3enew\x3c/code\x3e operator to construct new instances created by the target function. When a bound function is used to construct a value, the provided \x3ccode\x3ethis\x3c/code\x3e is ignored. However, provided arguments are still prepended to the constructor call:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Point(x, y) {\n  this.x \x3d x;\n  this.y \x3d y;\n}\n\nPoint.prototype.toString \x3d function() { \n  return this.x + \x26quot;,\x26quot; + this.y; \n};\n\nvar p \x3d new Point(1, 2);\np.toString(); // \x26quot;1,2\x26quot;\n\n\nvar emptyObj \x3d {};\nvar YAxisPoint \x3d Point.bind(emptyObj, 0 /* x */);\n\nvar axisPoint \x3d new YAxisPoint(5);\naxisPoint.toString(); //  \x26quot;0,5\x26quot;\n\naxisPoint instanceof Point; // true\naxisPoint instanceof YAxisPoint; // true\nnew Point(17, 42) instanceof YAxisPoint; // false with native bind // true, when using the above polyfill\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that you need do nothing special to create a bound function for use with \x3ccode\x3enew\x3c/code\x3e. The corollary is that you need do nothing special to create a bound function to be called plainly, even if you would rather require the bound function to only be called using \x3ccode\x3enew\x3c/code\x3e. If you wish to support use of a bound function only using \x3ccode\x3enew\x3c/code\x3e, or only by calling it, the target function must enforce that restriction.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Example can be run directly in your JavaScript console\n// ...continuing from above\n\n// Can still be called as a normal function (although usually this is undesired)\nYAxisPoint(13);\n\nemptyObj.x + \x26quot;,\x26quot; + emptyObj.y;\n// \x26gt;  \x26quot;0,13\x26quot;\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Supplemental"\x3e\x3c/span\x3e\x3cspan id \x3d "Creating_Shortcuts"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3cspan style \x3d "font-size: 20px; line-height: 27px; "\x3eCreating Shortcuts\x3c/span\x3e\x3c/h3\x3e\n\x3cdiv\x3e \x3cp\x3e\x3ccode\x3ebind\x3c/code\x3e\x26nbsp;is also helpful in cases where you want to create a shortcut to a function which requires a specific \x3ccode\x3ethis\x3c/code\x3e value.\x3c/p\x3e \x3cp\x3eTake\x26nbsp;\x3ccode\x3eArray.prototype.slice\x3c/code\x3e, for example, which you want to use for converting an array-like object to a real array. You could create a shortcut like this:\x3c/p\x3e \x3cpre\x3e\nvar slice \x3d Array.prototype.slice;\n\n// ...\n\nslice.call(arguments);\x3c/pre\x3e \x3cp\x3eWith\x26nbsp;\x3ccode\x3ebind\x3c/code\x3e, this can be simplified to the following. \x3ccode\x3eslice\x3c/code\x3e will be a bound function to the \x3ccode\x3e.call\x3c/code\x3e function of \x3ccode\x3eFunction.prototype\x3c/code\x3e, with the \x3ccode\x3ethis \x3c/code\x3evalue set to the \x3ccode\x3e.slice\x3c/code\x3e function of \x3ccode\x3eArray.prototype\x3c/code\x3e. This means that additional \x3ccode\x3e.call\x3c/code\x3e calls can be eliminated:\x3c/p\x3e \x3cpre\x3e\nvar slice \x3d Function.prototype.call.bind(Array.prototype.slice);\n\n// ...\n\nslice(arguments);\x3c/pre\x3e\n\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Creating_a_bound_function"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCreating a bound function\x3c/h3\x3e\n\x3cp\x3eThe simplest use of \x3ccode\x3ebind\x3c/code\x3e is to make a function that, no matter how it is called, is called with a particular \x3ccode\x3ethis\x3c/code\x3e value. \x26nbsp;A common mistake for new JavaScript programmers is to extract a method from an object, then to later call that function and expect it to use the original object as its \x3ccode\x3ethis\x3c/code\x3e (e.g. by using that method in callback-based code). \x26nbsp;Without special care, however, the original object is usually lost. \x26nbsp;Creating a bound function from the function, using the original object, neatly solves this problem:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x \x3d 9; \nvar module \x3d {\n  x: 81,\n  getX: function() { return this.x; }\n};\n\nmodule.getX(); // 81\n\nvar getX \x3d module.getX;\ngetX(); // 9, because in this case, \x26quot;this\x26quot; refers to the global object\n\n// create a new function with \'this\' bound to module\nvar boundGetX \x3d getX.bind(module);\nboundGetX(); // 81\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Currying"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCurrying\x3c/h3\x3e\n\x3cp\x3eThe next simplest use of \x3ccode\x3ebind\x3c/code\x3e is to make a function with pre-specified initial arguments. These arguments (if any) follow the provided \x3ccode\x3ethis\x3c/code\x3e value and are then inserted at the start of the arguments passed to the target function, followed by the arguments passed to the bound function, whenever the bound function is called.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction list() {\n  return Array.prototype.slice.call(arguments);\n}\n\nvar list1 \x3d list(1, 2, 3); // [1, 2, 3]\n\n//  Create a function with a preset leading argument\nvar leadingZeroList \x3d list.bind(undefined, 37);\n\nvar list2 \x3d leadingZeroList(); // [37]\nvar list3 \x3d leadingZeroList(1, 2, 3); // [37, 1, 2, 3]\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Bound_functions_used_as_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBound functions used as constructors\x3c/h3\x3e\n\x3cp\x3eBound functions are automatically suitable for use with the \x3ccode\x3enew\x3c/code\x3e operator to construct new instances created by the target function. When a bound function is used to construct a value, the provided \x3ccode\x3ethis\x3c/code\x3e is ignored. However, provided arguments are still prepended to the constructor call:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Point(x, y) {\n  this.x \x3d x;\n  this.y \x3d y;\n}\n\nPoint.prototype.toString \x3d function() { \n  return this.x + \x26quot;,\x26quot; + this.y; \n};\n\nvar p \x3d new Point(1, 2);\np.toString(); // \x26quot;1,2\x26quot;\n\n\nvar emptyObj \x3d {};\nvar YAxisPoint \x3d Point.bind(emptyObj, 0 /* x */);\n\nvar axisPoint \x3d new YAxisPoint(5);\naxisPoint.toString(); //  \x26quot;0,5\x26quot;\n\naxisPoint instanceof Point; // true\naxisPoint instanceof YAxisPoint; // true\nnew Point(17, 42) instanceof YAxisPoint; // false with native bind // true, when using the above polyfill\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that you need do nothing special to create a bound function for use with \x3ccode\x3enew\x3c/code\x3e. The corollary is that you need do nothing special to create a bound function to be called plainly, even if you would rather require the bound function to only be called using \x3ccode\x3enew\x3c/code\x3e. If you wish to support use of a bound function only using \x3ccode\x3enew\x3c/code\x3e, or only by calling it, the target function must enforce that restriction.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Example can be run directly in your JavaScript console\n// ...continuing from above\n\n// Can still be called as a normal function (although usually this is undesired)\nYAxisPoint(13);\n\nemptyObj.x + \x26quot;,\x26quot; + emptyObj.y;\n// \x26gt;  \x26quot;0,13\x26quot;\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Supplemental"\x3e\x3c/span\x3e\x3cspan id \x3d "Creating_Shortcuts"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e\x3cspan style \x3d "font-size: 20px; line-height: 27px; "\x3eCreating Shortcuts\x3c/span\x3e\x3c/h3\x3e\n\x3cdiv\x3e \x3cp\x3e\x3ccode\x3ebind\x3c/code\x3e\x26nbsp;is also helpful in cases where you want to create a shortcut to a function which requires a specific \x3ccode\x3ethis\x3c/code\x3e value.\x3c/p\x3e \x3cp\x3eTake\x26nbsp;\x3ccode\x3eArray.prototype.slice\x3c/code\x3e, for example, which you want to use for converting an array-like object to a real array. You could create a shortcut like this:\x3c/p\x3e \x3cpre\x3e\nvar slice \x3d Array.prototype.slice;\n\n// ...\n\nslice.call(arguments);\x3c/pre\x3e \x3cp\x3eWith\x26nbsp;\x3ccode\x3ebind\x3c/code\x3e, this can be simplified to the following. \x3ccode\x3eslice\x3c/code\x3e will be a bound function to the \x3ccode\x3e.call\x3c/code\x3e function of \x3ccode\x3eFunction.prototype\x3c/code\x3e, with the \x3ccode\x3ethis \x3c/code\x3evalue set to the \x3ccode\x3e.slice\x3c/code\x3e function of \x3ccode\x3eArray.prototype\x3c/code\x3e. This means that additional \x3ccode\x3e.call\x3c/code\x3e calls can be eliminated:\x3c/p\x3e \x3cpre\x3e\nvar slice \x3d Function.prototype.call.bind(Array.prototype.slice);\n\n// ...\n\nslice(arguments);\x3c/pre\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Supplemental"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSupplemental\x3c/h2\x3e\n\x3cp\x3eOne interesting wrinkle of bound functions working \x26quot;as expected\x26quot; with the \x3ccode\x3enew\x3c/code\x3e operator is that it is now possible to implement what one might call \x26quot;\x3ccode\x3eFunction.prototype.construct\x3c/code\x3e\x26quot;, an analog to \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eFunction.prototype.apply\x3c/a\x3e\x3c/code\x3e that takes an array of values as its sole argument,\x26nbsp;constructing this function with the provided arguments using the \x3ccode\x3enew\x3c/code\x3e operator:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Function.prototype.construct will work with the Function.prototype.bind defined above\n\nif (!Function.prototype.construct) { \n  Function.prototype.construct \x3d function(aArgs) {\n\n    if (aArgs.constructor !\x3d\x3d Array)\n      throw new TypeError(\x26quot;second argument to Function.prototype.construct must be an array\x26quot;);\n\n    var aBoundArgs \x3d Array.prototype.concat.apply([null], aArgs), \n        fBound \x3d this.bind.apply(this, aBoundArgs);\n        \n    return new fBound();\n\n  };\n}\n\n// Now consider the string \x26quot;2011-7-16 19:35:46\x26quot;. Without an analog of the Function.apply method for constructors,\n// you would run a lot of steps in order to construct a Date object from it:\n\nvar aDateArgs \x3d \x26quot;2011-7-16 19:35:46\x26quot;.split(/[- :]/),\n    oMyDate1 \x3d new Date(aDateArgs[0], aDateArgs[1], aDateArgs[2], aDateArgs[3], aDateArgs[4], aDateArgs[5]);\nalert(oMyDate1.toLocaleString());\n\n\n// With the Function.construct method we could do the same thing with a single step:\nvar oMyDate2 \x3d Date.construct(\x26quot;2011-7-16 19:35:46\x26quot;.split(/[- :]/));\nalert(oMyDate2.toLocaleString());\n\n// Here is another example:\n\nfunction Point(x, y) {\n  this.x \x3d x;\n  this.y \x3d y;\n}\n\nPoint.prototype.toString \x3d function() { \n  return this.x + \x26quot;,\x26quot; + this.y; \n};\n\nalert(Point.construct([2, 4]).toString()); // \x26quot;2,4\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eBut note well: the efficiency of constructing a new function every time you wish to construct an object by invoking a bound function via \x3ccode\x3enew\x3c/code\x3e with a variable number of arguments is questionable. Your code will be faster and more efficient if you use \x3ccode\x3eFunction.prototype.apply\x3c/code\x3e instead, with normal call syntax rather than using \x3ccode\x3enew\x3c/code\x3e operator-based syntax.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3e7\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e11.60\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eFunction.prototype.apply\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3eFunction.prototype.call\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility","Examples","Creating a bound function","Currying","Bound functions used as constructors","Creating Shortcuts","Supplemental","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply","title":"Function.apply","_id":"4eea8519a4c86c4dba0000c6","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCalls a function with a given \x3ccode\x3ethis\x3c/code\x3e value and \x3ccode\x3earguments\x3c/code\x3e provided as an array.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNOTE:\x3c/strong\x3e\x26nbsp;While the syntax of this function is almost identical to that of\x26nbsp;\x3ccode style \x3d "font-style: inherit; "\x3e\x3ca href \x3d "/en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall()\x3c/a\x3e\x3c/code\x3e, the fundamental difference is that\x26nbsp;\x3ccode style \x3d "font-style: inherit; "\x3ecall()\x3c/code\x3e\x26nbsp;accepts an argument list, while\x26nbsp;\x3ccode style \x3d "font-style: inherit; "\x3eapply()\x3c/code\x3e\x26nbsp;accepts a single array of arguments.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2" scope \x3d "row"\x3eMethod of \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMA-262 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3efun\x3c/em\x3e.apply(\x3cem\x3ethisArg\x3c/em\x3e[, \x3cem\x3eargsArray\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 style \x3d "position: static; z-index: auto; " class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ethisArg\x3c/code\x3e\x3c/dt\x3e \x3cdd style \x3d "position: static; z-index: auto; "\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdd style \x3d "position: relative; z-index: 0; "\x3eThe value of\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3ethis\x3c/code\x3e\x26nbsp;provided for the call to\x26nbsp;\x3cem\x3e\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3efun\x3c/code\x3e\x3c/em\x3e. \x26nbsp;Note that this may not be the actual value seen by the method: if the method is a function in non-strict mode code,\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3enull\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3eundefined\x3c/code\x3e\x26nbsp;will be replaced with the global object, and primitive values will be boxed. \x3cdiv id \x3d "WebKit-Editing-Delete-Container" style \x3d "-webkit-user-drag: none; -webkit-user-select: none; -webkit-user-modify: none; visibility: hidden; position: absolute; cursor: default; top: 0px; right: 0px; bottom: 0px; left: 0px; "\x3e\x3cimg alt \x3d "" id \x3d "WebKit-Editing-Delete-Button" style \x3d "position: absolute; z-index: 1000000; top: -15px; left: -17px; width: 30px; height: 30px; visibility: visible;"/\x3e\x3c/div\x3e \x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eargsArray\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn array like object, specifying the arguments with which \x3cem\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/em\x3e should be called, or \x3ccode\x3enull\x3c/code\x3e or \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/undefined" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined"\x3eundefined\x3c/a\x3e if no arguments should be provided to the function.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\n\x3cdiv style \x3d "border: 0px none ; margin: 10px 0px; padding: 0px 10px; background-color: rgb(254, 244, 156); text-align: center;"\x3e\x3cp style \x3d "margin: 4px 0px; font-weight: bold;"\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e note\x3c/p\x3e\x3cp style \x3d "margin: 4px 0px;"\x3eStarting in JavaScript 1.8.5 (Firefox 4), this method works according to the ECMAScript 5 specification. That is, the arguments can be a generic array-like object instead of an array. See \n\x3ca rel \x3d "external" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d562448" class \x3d "external" title \x3d "RESOLVED FIXED - ES5 Function.prototype.apply does not require argArray be either Array or arguments"\x3e\nbug 562448\x3c/a\x3e\n for details on this change.\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eYou can assign a different \x3ccode\x3ethis\x3c/code\x3e object when calling an existing function. \x3ccode\x3ethis\x3c/code\x3e refers to the current object, the calling object. With \x3ccode\x3eapply\x3c/code\x3e, you can write a method once and then inherit it in another object, without having to rewrite the method for the new object.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eapply\x3c/code\x3e is very similar to \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e\x3c/code\x3e, except for the type of arguments it supports. You can use an arguments array instead of a named set of parameters. With \x3ccode\x3eapply\x3c/code\x3e, you can use an array literal, for example, \x3ccode\x3e\x3cem\x3efun\x3c/em\x3e.apply(this, [\'eat\', \'bananas\'])\x3c/code\x3e, or an \x3ccode\x3eArray\x3c/code\x3e object, for example, \x3ccode\x3e\x3cem\x3efun\x3c/em\x3e.apply(this, new Array(\'eat\', \'bananas\'))\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eYou can also use \x3ccode\x3e\x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments"\x3earguments\x3c/a\x3e\x3c/code\x3e for the \x3ccode\x3eargsArray\x3c/code\x3e parameter. \x3ccode\x3earguments\x3c/code\x3e is a local variable of a function. It can be used for all unspecified arguments of the called object. Thus, you do not have to know the arguments of the called object when you use the \x3ccode\x3eapply\x3c/code\x3e method. You can use \x3ccode\x3earguments\x3c/code\x3e to pass all the arguments to the called object. The called object is then responsible for handling the arguments.\x3c/p\x3e\n\x3cp\x3eSince ECMAScript 5th Edition you can also use any kind of object which is array like, so in practice this means it\'s going to have a property \x3ccode\x3elength\x3c/code\x3e and integer properties in the range \x3ccode\x3e[0...length)\x3c/code\x3e. As an example you can now use a \x3ca title \x3d "en/DOM/NodeList" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/DOM/NodeList"\x3eNodeList\x3c/a\x3e or a own custom object like \x3ccode\x3e{\'length\': 2, \'0\': \'eat\', \'1\':\x26nbsp;\'bananas\'}\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;Most browsers, including Chrome 14 and Internet Explorer 9, still do not accept array like objects and will throw an exception.\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Using_apply_to_chain_constructors"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eUsing \x3ccode\x3eapply\x3c/code\x3e to chain constructors\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3eapply\x3c/code\x3e to chain constructors for an object, similar to Java. In the following example, the constructor for the \x3ccode\x3eProduct\x3c/code\x3e object is defined with two parameters, \x3ccode\x3ename\x3c/code\x3e and \x3ccode\x3evalue\x3c/code\x3e. Two other functions \x3ccode\x3eFood\x3c/code\x3e and \x3ccode\x3eToy\x3c/code\x3e invoke \x3ccode\x3eProduct\x3c/code\x3e passing \x3ccode\x3ethis\x3c/code\x3e and \x3ccode\x3earguments\x3c/code\x3e. Product initializes the properties name and price, both specialized functions define the category. In this example, the \x3ccode\x3earguments\x3c/code\x3e object is fully passed to the product constructor and corresponds to the two defined parameters.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction Product(name, price) {\n  this.name \x3d name;\n  this.price \x3d price;\n\n  if (price \x26lt; 0)\n    throw RangeError(\'Cannot create product \x26quot;\' + name + \'\x26quot; with a negative price\');\n  return this;\n}\n\nfunction Food(name, price) {\n  Product.apply(this, arguments);\n  this.category \x3d \'food\';\n}\nFood.prototype \x3d new Product();\n\nfunction Toy(name, price) {\n  Product.apply(this, arguments);\n  this.category \x3d \'toy\';\n}\nToy.prototype \x3d new Product();\n\nvar cheese \x3d new Food(\'feta\', 5);\nvar fun \x3d new Toy(\'robot\', 40);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "apply_and_built-in_functions"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eapply and built-in functions\x3c/h3\x3e\n\x3cp\x3eClever usage of \x3ccode\x3eapply\x3c/code\x3e allows you to use built-ins functions for some tasks that otherwise probably would have been written by looping over the array values. As an example here we are going to use Math.max/Math.min to find out the maximum/minimum value in an array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e/* min/max number in an array */\nvar numbers \x3d [5, 6, 2, 3, 7];\n\n/* using Math.min/Math.max apply */\nvar max \x3d Math.max.apply(null, numbers); /* This about equal to Math.max(numbers[0], ...) or Math.max(5, 6, ..) */\nvar min \x3d Math.min.apply(null, numbers);\n\n/* vs. simple loop based algorithm */\nmax \x3d -Infinity, min \x3d +Infinity;\n\nfor (var i \x3d 0; i \x26lt; numbers.length; i++) {\n  if (numbers[i] \x26gt; max)\n    max \x3d numbers[i];\n  if (numbers[i] \x26lt; min) \n    min \x3d numbers[i];\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eBut beware: in using \x3ccode\x3eapply\x3c/code\x3e this way, you run the risk of exceeding the JavaScript engine\'s argument length limit. The consequences of applying a function with too many arguments (think more than tens of thousands of arguments) vary across engines, because the limit (indeed even the nature of any excessively-large-stack behavior) is unspecified. Some engines will throw an exception. More perniciously, others will arbitrarily limit the number of arguments actually passed to the applied function. (To illustrate this latter case: if such an engine had a limit of four arguments [actual limits are of course significantly higher], it would be as if the arguments \x3ccode\x3e5, 6, 2, 3\x3c/code\x3e had been passed to \x3ccode\x3eapply\x3c/code\x3e in the examples above, rather than the full array.)\x26nbsp; If your value array might grow into the tens of thousands, use a hybrid strategy: apply your function to chunks of the array at a time:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction minOfArray(arr)\n{\n  var min \x3d Infinity;\n  var QUANTUM \x3d 32768;\n  for (var i \x3d 0, len \x3d arr.length; i \x26lt; len; i +\x3d QUANTUM)\n  {\n    var submin \x3d Math.min.apply(null, numbers.slice(i, Math.min(i + QUANTUM, len)));\n    min \x3d Math.min(submin, min);\n  }\n  return min;\n}\n\nvar min \x3d minOfArray([5, 6, 2, 3, 7]);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
"\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Using_apply_to_chain_constructors\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3eapply\x3c/code\x3e to chain constructors\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3eapply\x3c/code\x3e to chain constructors for an object, similar to Java. In the following example, the constructor for the \x3ccode\x3eProduct\x3c/code\x3e object is defined with two parameters, \x3ccode\x3ename\x3c/code\x3e and \x3ccode\x3evalue\x3c/code\x3e. Two other functions \x3ccode\x3eFood\x3c/code\x3e and \x3ccode\x3eToy\x3c/code\x3e invoke \x3ccode\x3eProduct\x3c/code\x3e passing \x3ccode\x3ethis\x3c/code\x3e and \x3ccode\x3earguments\x3c/code\x3e. Product initializes the properties name and price, both specialized functions define the category. In this example, the \x3ccode\x3earguments\x3c/code\x3e object is fully passed to the product constructor and corresponds to the two defined parameters.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3efunction Product(name, price) {\n  this.name \x3d name;\n  this.price \x3d price;\n\n  if (price \x26lt; 0)\n    throw RangeError('Cannot create product \x26quot;' + name + '\x26quot; with a negative price');\n  return this;\n}\n\nfunction Food(name, price) {\n  Product.apply(this, arguments);\n  this.category \x3d 'food';\n}\nFood.prototype \x3d new Product();\n\nfunction Toy(name, price) {\n  Product.apply(this, arguments);\n  this.category \x3d 'toy';\n}\nToy.prototype \x3d new Product();\n\nvar cheese \x3d new Food('feta', 5);\nvar fun \x3d new Toy('robot', 40);\x3c/pre\x3e\r\n        \n\x3c/div\x3e",
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "apply_and_built-in_functions"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eapply and built-in functions\x3c/h3\x3e\n\x3cp\x3eClever usage of \x3ccode\x3eapply\x3c/code\x3e allows you to use built-ins functions for some tasks that otherwise probably would have been written by looping over the array values. As an example here we are going to use Math.max/Math.min to find out the maximum/minimum value in an array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e/* min/max number in an array */\nvar numbers \x3d [5, 6, 2, 3, 7];\n\n/* using Math.min/Math.max apply */\nvar max \x3d Math.max.apply(null, numbers); /* This about equal to Math.max(numbers[0], ...) or Math.max(5, 6, ..) */\nvar min \x3d Math.min.apply(null, numbers);\n\n/* vs. simple loop based algorithm */\nmax \x3d -Infinity, min \x3d +Infinity;\n\nfor (var i \x3d 0; i \x26lt; numbers.length; i++) {\n  if (numbers[i] \x26gt; max)\n    max \x3d numbers[i];\n  if (numbers[i] \x26lt; min) \n    min \x3d numbers[i];\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eBut beware: in using \x3ccode\x3eapply\x3c/code\x3e this way, you run the risk of exceeding the JavaScript engine\'s argument length limit. The consequences of applying a function with too many arguments (think more than tens of thousands of arguments) vary across engines, because the limit (indeed even the nature of any excessively-large-stack behavior) is unspecified. Some engines will throw an exception. More perniciously, others will arbitrarily limit the number of arguments actually passed to the applied function. (To illustrate this latter case: if such an engine had a limit of four arguments [actual limits are of course significantly higher], it would be as if the arguments \x3ccode\x3e5, 6, 2, 3\x3c/code\x3e had been passed to \x3ccode\x3eapply\x3c/code\x3e in the examples above, rather than the full array.)\x26nbsp; If your value array might grow into the tens of thousands, use a hybrid strategy: apply your function to chunks of the array at a time:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction minOfArray(arr)\n{\n  var min \x3d Infinity;\n  var QUANTUM \x3d 32768;\n  for (var i \x3d 0, len \x3d arr.length; i \x26lt; len; i +\x3d QUANTUM)\n  {\n    var submin \x3d Math.min.apply(null, numbers.slice(i, Math.min(i + QUANTUM, len)));\n    min \x3d Math.min(submin, min);\n  }\n  return min;\n}\n\nvar min \x3d minOfArray([5, 6, 2, 3, 7]);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee Also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "/en/JavaScript/Reference/Global_Objects/Function/call" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"\x3ecall\x3c/a\x3e, \x3ca title \x3d "/en/JavaScript/Reference/Global_Objects/Function/bind" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind"\x3ebind\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Functions_and_function_scope/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments"\x3earguments\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Using apply to chain constructors","apply and built-in functions","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call","title":"Function.call","_id":"4eea851ba4c86c4dba0000c7","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCalls a function with a given \x3ccode\x3ethis\x3c/code\x3e value and arguments provided individually.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNOTE:\x3c/strong\x3e While the syntax of this function is almost identical to that of\x26nbsp;\x3ccode\x3e\x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply()\x3c/a\x3e\x3c/code\x3e, the fundamental difference is that \x3ccode\x3ecall()\x3c/code\x3e accepts an argument list, while \x3ccode\x3eapply()\x3c/code\x3e accepts a single array of arguments.\x3c/div\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3efun\x3c/em\x3e.call(\x3cem\x3ethisArg\x3c/em\x3e[, \x3cem\x3earg1\x3c/em\x3e[, \x3cem\x3earg2\x3c/em\x3e[, ...]]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 style \x3d "position: static; z-index: auto; " class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ethisArg\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe value of \x3ccode\x3ethis\x3c/code\x3e provided for the call to\x26nbsp;\x3cem\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/em\x3e. \x26nbsp;Note that this may not be the actual value seen by the method: if the method is a function in \x3ca title \x3d "en/JavaScript/Strict mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/Strict_mode"\x3enon-strict mode\x3c/a\x3e code, \x3ccode\x3enull\x3c/code\x3e and \x3ccode\x3eundefined\x3c/code\x3e will be replaced with the global object, and primitive values will be boxed.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3earg1, arg2, ...\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eArguments for the object.\x3c/dd\x3e\n\x3c/dl\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eYou can assign a different \x3ccode\x3ethis\x3c/code\x3e object when calling an existing function. \x3ccode\x3ethis\x3c/code\x3e refers to the current object, the calling object.\x3c/p\x3e\n\x3cp\x3eWith \x3ccode\x3ecall\x3c/code\x3e, you can write a method once and then inherit it in another object, without having to rewrite the method for the new object.\x3c/p\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_5\"\x3e\x3cspan id \x3d \"Examples\"\x3e\x3c/span\x3e\x3ch2 class \x3d \"editable\"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Using_call_to_chain_constructors_for_an_object\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3ecall\x3c/code\x3e to chain constructors for an object\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3ecall\x3c/code\x3e to chain constructors for an object, similar to Java.\x26nbsp;In the following example, the constructor for the\x26nbsp;\x3ccode\x3eProduct\x3c/code\x3e\x26nbsp;object is defined with two parameters, \x3ccode\x3ename\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3evalue\x3c/code\x3e. Two other functions\x26nbsp;\x3ccode\x3eFood\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3eToy\x3c/code\x3e\x26nbsp;invoke\x26nbsp;\x3ccode\x3eProduct\x3c/code\x3e\x26nbsp;passing\x26nbsp;\x3ccode\x3ethis\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3ename\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3evalue\x3c/code\x3e. Product initializes the properties name and price, both specialized functions define the category.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3efunction Product(name, price) {\n  this.name \x3d name;\n  this.price \x3d price;\n\n  if (price \x26lt; 0)\n    throw RangeError('Cannot create product \x26quot;' + name + '\x26quot; with a negative price');\n  return this;\n}\n\nfunction Food(name, price) {\n  Product.call(this, name, price);\n  this.category \x3d 'food';\n}\nFood.prototype \x3d new Product();\n\nfunction Toy(name, price) {\n  Product.call(this, name, price);\n  this.category \x3d 'toy';\n}\nToy.prototype \x3d new Product();\n\nvar cheese \x3d new Food('feta', 5);\nvar fun \x3d new Toy('robot', 40);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"Using_call_to_invoke_an_anonymous_function\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3ecall\x3c/code\x3e to invoke an anonymous function\x3c/h3\x3e\n\x3cp\x3eIn this purely constructed example, we create anonymous function and use \x3ccode\x3ecall\x3c/code\x3e to invoke it on every object in an array. The main purpose of the anonymous function here is to add a print function to every object, which is able to print the right index of the object in the array. Passing the object as \x3ccode\x3ethis\x3c/code\x3e value was not strictly necessary, but is done for explanatory purpose.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar animals \x3d [\n  {species: 'Lion', name: 'King'},\n  {species: 'Whale', name: 'Fail'}\n];\n\nfor (var i \x3d 0; i \x26lt; animals.length; i++) {\n  (function (i) { \n    this.print \x3d function () { \n      0 \x26\x26 console.log('#' + i  + ' ' + this.species + ': ' + this.name); \n    } \n  }).call(animals[i], i);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e",
"\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Using_call_to_chain_constructors_for_an_object\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3ecall\x3c/code\x3e to chain constructors for an object\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3ecall\x3c/code\x3e to chain constructors for an object, similar to Java.\x26nbsp;In the following example, the constructor for the\x26nbsp;\x3ccode\x3eProduct\x3c/code\x3e\x26nbsp;object is defined with two parameters, \x3ccode\x3ename\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3evalue\x3c/code\x3e. Two other functions\x26nbsp;\x3ccode\x3eFood\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3eToy\x3c/code\x3e\x26nbsp;invoke\x26nbsp;\x3ccode\x3eProduct\x3c/code\x3e\x26nbsp;passing\x26nbsp;\x3ccode\x3ethis\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3ename\x3c/code\x3e\x26nbsp;and\x26nbsp;\x3ccode\x3evalue\x3c/code\x3e. Product initializes the properties name and price, both specialized functions define the category.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3efunction Product(name, price) {\n  this.name \x3d name;\n  this.price \x3d price;\n\n  if (price \x26lt; 0)\n    throw RangeError('Cannot create product \x26quot;' + name + '\x26quot; with a negative price');\n  return this;\n}\n\nfunction Food(name, price) {\n  Product.call(this, name, price);\n  this.category \x3d 'food';\n}\nFood.prototype \x3d new Product();\n\nfunction Toy(name, price) {\n  Product.call(this, name, price);\n  this.category \x3d 'toy';\n}\nToy.prototype \x3d new Product();\n\nvar cheese \x3d new Food('feta', 5);\nvar fun \x3d new Toy('robot', 40);\x3c/pre\x3e\r\n        \n\x3c/div\x3e",
"\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"Using_call_to_invoke_an_anonymous_function\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eUsing \x3ccode\x3ecall\x3c/code\x3e to invoke an anonymous function\x3c/h3\x3e\n\x3cp\x3eIn this purely constructed example, we create anonymous function and use \x3ccode\x3ecall\x3c/code\x3e to invoke it on every object in an array. The main purpose of the anonymous function here is to add a print function to every object, which is able to print the right index of the object in the array. Passing the object as \x3ccode\x3ethis\x3c/code\x3e value was not strictly necessary, but is done for explanatory purpose.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar animals \x3d [\n  {species: 'Lion', name: 'King'},\n  {species: 'Whale', name: 'Fail'}\n];\n\nfor (var i \x3d 0; i \x26lt; animals.length; i++) {\n  (function (i) { \n    this.print \x3d function () { \n      0 \x26\x26 console.log('#' + i  + ' ' + this.species + ': ' + this.name); \n    } \n  }).call(animals[i], i);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e",
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee Also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3eapply\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Using call to chain constructors for an object",
"Using call to invoke an anonymous function","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/isGenerator","title":"Function.isGenerator","_id":"4eea851ba4c86c4dba0000c8","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eDetermines whether or not a function is a \x3ca title \x3d "en/Core JavaScript 1.5 Guide/Iterators and Generators#Generators.3a a better way to build Iterators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Iterators_and_Generators#Generators.3a_a_better_way_to_build_Iterators"\x3egenerator\x3c/a\x3e.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth scope \x3d "row" colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone (Harmony Proposal)\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eresult\x3c/em\x3e \x3d \x3cem\x3efun\x3c/em\x3e.isGenerator()\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThis method lets you determine whether or not a function is a \x3ca title \x3d "en/Core JavaScript 1.5 Guide/Iterators and Generators#Generators.3a a better way to build Iterators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Iterators_and_Generators#Generators.3a_a_better_way_to_build_Iterators"\x3egenerator\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction f() {}\nfunction g() {\n  yield 42;\n}\n0 \x26\x26 console.log(\x26quot;f.isGenerator() \x3d \x26quot; + f.isGenerator());\n0 \x26\x26 console.log(\x26quot;g.isGenerator() \x3d \x26quot; + g.isGenerator());\x3c/pre\x3e\r\n        \n\x3cp\x3eThe output from this code is:\x3c/p\x3e\n\x3cpre\x3e\nf.isGenerator()\x26nbsp;\x3d false\ng.isGenerator()\x26nbsp;\x3d true \n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Guide/Iterators and Generators" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Iterators_and_Generators"\x3eIterators and generators\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toSource",
"title":"Function.toSource","_id":"4eea851ca4c86c4dba0000c9","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code for the function.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function" title \x3d "en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3evar sourceString \x3d \x3cem\x3efunction\x3c/em\x3e.toSource();\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\n\x3c/p\x3e\x3cp\x3e\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For the built-in \x3ccode\x3eFunction\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\n\x3c/li\x3e\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3efunction Function() {\n   [native code]\n}\n\x3c/pre\x3e\n\x3cul\x3e\x3cli\x3e For custom functions, \x3ccode\x3etoSource\x3c/code\x3e returns the JavaScript source that defines the object as a string.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code. You can call \x3ccode\x3etoSource\x3c/code\x3e while debugging to examine the contents of an object.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cul\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toString"\x3etoString\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.prototype.valueOf\x3c/a\x3e\n\x3c/li\x3e\x3c/ul\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/toString","title":"Function.toString","_id":"4eea851ca4c86c4dba0000ca","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eReturns a string representing the source code of the function.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3e\x3ccode\x3eFunction\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cvar\x3efunction\x3c/var\x3e.toString(\x3cvar\x3eindentation\x3c/var\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eindentation\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e The amount of spaces to indent the string representation of the source code. If \x3ccode\x3eindentation\x3c/code\x3e is less than or equal to \x3ccode\x3e-1\x3c/code\x3e, most unnecessary spaces are removed.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"\x3eFunction\x3c/a\x3e\x3c/code\x3e object overrides the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e method inherited from \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/code\x3e; it does not inherit \x3ccode\x3eObject.prototype.toString\x3c/code\x3e. For \x3ccode\x3eFunction\x3c/code\x3e objects, the \x3ccode\x3etoString\x3c/code\x3e method returns a string representation of the object in the form of a function declaration.\x26nbsp; That is, toString decompiles the function, and the string returned includes the \x3ccode\x3efunction\x3c/code\x3e keyword, the argument list, curly braces, and the source of the function body.\x3c/p\x3e\n\x3cp\x3eJavaScript calls the \x3ccode\x3etoString\x3c/code\x3e method automatically when a \x3ccode\x3eFunction\x3c/code\x3e is to be represented as a text value, e.g. when a function is concatenated with a string.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary",
"Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/MAX_VALUE","title":"Number.MAX_VALUE","_id":"4eea851ea4c86c4dba0000cb","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eThe maximum numeric value representable in JavaScript.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number" title \x3d "en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eMAX_VALUE\x3c/code\x3e property has a value of approximately 1.79E+308. Values larger than \x3ccode\x3eMAX_VALUE\x3c/code\x3e are represented as \x26quot;\x3ccode\x3eInfinity\x3c/code\x3e\x26quot;.\n\x3c/p\x3e\x3cp\x3eBecause \x3ccode\x3eMAX_VALUE\x3c/code\x3e is a static property of \x3ccode\x3eNumber\x3c/code\x3e, you always use it as \x3ccode\x3eNumber.MAX_VALUE\x3c/code\x3e, rather than as a property of a \x3ccode\x3eNumber\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_MAX_VALUE"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMAX_VALUE\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following code multiplies two numeric values. If the result is less than or equal to \x3ccode\x3eMAX_VALUE\x3c/code\x3e, the \x3ccode\x3efunc1\x3c/code\x3e function is called; otherwise, the \x3ccode\x3efunc2\x3c/code\x3e function is called.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eif (num1 * num2 \x26lt;\x3d Number.MAX_VALUE)\n   func1();\nelse\n   func2();\n\x3c/pre\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_MAX_VALUE"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMAX_VALUE\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following code multiplies two numeric values. If the result is less than or equal to \x3ccode\x3eMAX_VALUE\x3c/code\x3e, the \x3ccode\x3efunc1\x3c/code\x3e function is called; otherwise, the \x3ccode\x3efunc2\x3c/code\x3e function is called.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eif (num1 * num2 \x26lt;\x3d Number.MAX_VALUE)\n   func1();\nelse\n   func2();\n\x3c/pre\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Description "," Examples "," Example: Using MAX_VALUE "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/MIN_VALUE","title":"Number.MIN_VALUE","_id":"4eea851fa4c86c4dba0000cc","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eThe smallest positive numeric value representable in JavaScript.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number" title \x3d "en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eMIN_VALUE\x3c/code\x3e property is the number closest to 0, not the most negative number, that JavaScript can represent.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eMIN_VALUE\x3c/code\x3e has a value of approximately 5e-324. Values smaller than \x3ccode\x3eMIN_VALUE\x3c/code\x3e (\x26quot;underflow values\x26quot;) are converted to 0.\x3c/p\x3e\n\x3cp\x3eBecause \x3ccode\x3eMIN_VALUE\x3c/code\x3e is a static property of \x3ccode\x3eNumber\x3c/code\x3e, you always use it as \x3ccode\x3eNumber.MIN_VALUE\x3c/code\x3e, rather than as a property of a \x3ccode\x3eNumber\x3c/code\x3e object you created.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_MIN_VALUE"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMIN_VALUE\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following code divides two numeric values. If the result is greater than or equal to \x3ccode\x3eMIN_VALUE\x3c/code\x3e, the \x3ccode\x3efunc1\x3c/code\x3e function is called; otherwise, the \x3ccode\x3efunc2\x3c/code\x3e function is called.\x3c/p\x3e\n\x3cpre\x3e\nif (num1 / num2 \x26gt;\x3d Number.MIN_VALUE)\n   func1()\nelse\n   func2()\n\x3c/pre\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_MIN_VALUE"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMIN_VALUE\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following code divides two numeric values. If the result is greater than or equal to \x3ccode\x3eMIN_VALUE\x3c/code\x3e, the \x3ccode\x3efunc1\x3c/code\x3e function is called; otherwise, the \x3ccode\x3efunc2\x3c/code\x3e function is called.\x3c/p\x3e\n\x3cpre\x3e\nif (num1 / num2 \x26gt;\x3d Number.MIN_VALUE)\n   func1()\nelse\n   func2()\n\x3c/pre\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Examples","Example: Using MIN_VALUE"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY","title":"Number.NEGATIVE_INFINITY","_id":"4eea851fa4c86c4dba0000cd","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eA value representing the negative Infinity value.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number" title \x3d "en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe value of \x3ccode\x3eNumber.NEGATIVE_INFINITY\x3c/code\x3e is the same as the negative value of the global object\'s \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3eInfinity\x3c/a\x3e property.\x3c/p\x3e\n\x3cp\x3eThis value behaves slightly differently than mathematical infinity:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eAny positive value, including POSITIVE_INFINITY, multiplied by NEGATIVE_INFINITY is NEGATIVE_INFINITY.\x3c/li\x3e \x3cli\x3eAny negative value, including NEGATIVE_INFINITY, multiplied by NEGATIVE_INFINITY is POSITIVE_INFINITY.\x3c/li\x3e \x3cli\x3eZero multiplied by NEGATIVE_INFINITY is NaN.\x3c/li\x3e \x3cli\x3eNaN multiplied by NEGATIVE_INFINITY is NaN.\x3c/li\x3e \x3cli\x3eNEGATIVE_INFINITY, divided by any negative value except NEGATIVE_INFINITY, is POSITIVE_INFINITY.\x3c/li\x3e \x3cli\x3eNEGATIVE_INFINITY, divided by any positive value except POSITIVE_INFINITY, is NEGATIVE_INFINITY.\x3c/li\x3e \x3cli\x3eNEGATIVE_INFINITY, divided by either NEGATIVE_INFINITY or POSITIVE_INFINITY, is NaN.\x3c/li\x3e \x3cli\x3eAny number divided by NEGATIVE_INFINITY is Zero.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eSeveral JavaScript methods (such as the \x3ccode\x3eNumber\x3c/code\x3e constructor, \x3ccode\x3eparseFloat\x3c/code\x3e, and \x3ccode\x3eparseInt\x3c/code\x3e) return \x3ccode\x3eNaN\x3c/code\x3e if the value specified in the parameter is significantly lower than \x3ccode\x3eNumber.MIN_VALUE\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eYou might use the \x3ccode\x3eNumber.NEGATIVE_INFINITY\x3c/code\x3e property to indicate an error condition that returns a finite number in case of success. Note, however, that \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isFinite" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isFinite"\x3eisFinite\x3c/a\x3e would be more appropriate in such a case.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\x3cp\x3eIn the following example, the variable smallNumber is assigned a value that is smaller than the minimum value. When the \x3ccode\x3eif\x3c/code\x3e statement executes, smallNumber has the value \x26quot;\x3ccode\x3e-Infinity\x3c/code\x3e\x26quot;, so smallNumber is set to a more manageable value before continuing.\x3c/p\x3e\n\x3cpre\x3e\nvar smallNumber \x3d (-Number.MAX_VALUE) * 2\nif (smallNumber \x3d\x3d Number.NEGATIVE_INFINITY) {\n smallNumber \x3d returnFinite();\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3eInfinity\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY"\x3ePOSITIVE_INFINITY\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isFinite" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isFinite"\x3eisFinite\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Example","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/NaN","title":"Number.NaN","_id":"4eea8520a4c86c4dba0000ce","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eA value representing Not-A-Number.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eNumber.NaN\x3c/code\x3e is the same thing than \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN"\x3e\x3ccode\x3eNaN\x3c/code\x3e\x3c/a\x3e. \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN"\x3eSee the \x3ccode\x3eNaN\x3c/code\x3e page for more info\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY","title":"Number.POSITIVE_INFINITY","_id":"4eea8523a4c86c4dba0000cf","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eA value representing the positive Infinity value.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe value of \x3ccode\x3eNumber.POSITIVE_INFINITY\x3c/code\x3e is the same as the value of the global object\'s \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3eInfinity\x3c/a\x3e property.\x3c/p\x3e\n\x3cp\x3eThis value behaves slightly differently than mathematical infinity:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eAny positive value, including POSITIVE_INFINITY, multiplied by POSITIVE_INFINITY is POSITIVE_INFINITY.\x3c/li\x3e \x3cli\x3eAny negative value, including NEGATIVE_INFINITY, multiplied by POSITIVE_INFINITY is NEGATIVE_INFINITY.\x3c/li\x3e \x3cli\x3eZero multiplied by POSITIVE_INFINITY is NaN.\x3c/li\x3e \x3cli\x3eNaN multiplied by POSITIVE_INFINITY is NaN.\x3c/li\x3e \x3cli\x3ePOSITIVE_INFINITY, divided by any negative value except NEGATIVE_INFINITY, is NEGATIVE_INFINITY.\x3c/li\x3e \x3cli\x3ePOSITIVE_INFINITY, divided by any positive value except POSITIVE_INFINITY, is POSITIVE_INFINITY.\x3c/li\x3e \x3cli\x3ePOSITIVE_INFINITY, divided by either NEGATIVE_INFINITY or POSITIVE_INFINITY, is NaN.\x3c/li\x3e \x3cli\x3eAny number divided by POSITIVE_INFINITY is Zero.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eSeveral JavaScript methods (such as the \x3ccode\x3eNumber\x3c/code\x3e constructor, \x3ccode\x3eparseFloat\x3c/code\x3e, and \x3ccode\x3eparseInt\x3c/code\x3e) return \x3ccode\x3eNaN\x3c/code\x3e if the value specified in the parameter is significantly higher than \x3ccode\x3eNumber.MAX_VALUE\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eYou might use the \x3ccode\x3eNumber.POSITIVE_INFINITY\x3c/code\x3e property to indicate an error condition that returns a finite number in case of success. Note, however, that \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isFinite" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isFinite"\x3eisFinite\x3c/a\x3e would be more appropriate in such a case.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\x3cp\x3eIn the following example, the variable bigNumber is assigned a value that is larger than the maximum value. When the \x3ccode\x3eif\x3c/code\x3e statement executes, bigNumber has the value \x26quot;\x3ccode\x3eInfinity\x3c/code\x3e\x26quot;, so bigNumber is set to a more manageable value before continuing.\x3c/p\x3e\n\x3cpre\x3e\nvar bigNumber \x3d Number.MAX_VALUE * 2\nif (bigNumber \x3d\x3d Number.POSITIVE_INFINITY) {\n bigNumber \x3d returnFinite();\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee Also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3eInfinity\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY"\x3eNEGATIVE_INFINITY\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/isFinite" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isFinite"\x3eisFinite\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Example","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/prototype","title":"Number.prototype","_id":"4eea8523a4c86c4dba0000d0","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the prototype for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number"\x3eNumber\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eAll \x3ccode\x3eNumber\x3c/code\x3e instances inherit from \x3ccode\x3eNumber.prototype\x3c/code\x3e. The prototype object of the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number"\x3eNumber\x3c/a\x3e constructor can be modified to affect all \x3ccode\x3eNumber\x3c/code\x3e instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/constructor"\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the function that created this object\'s instance. By default this is the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number"\x3eNumber\x3c/a\x3e object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toExponential" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toExponential"\x3etoExponential\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the number in exponential notation.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3etoFixed\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the number in fixed-point notation.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/ToLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a human readable string representing the number using the locale of the environment. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toLocaleString"\x3eObject.prototype.toLocaleString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toPrecision" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision"\x3etoPrecision\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the number to a specified precision in fixed-point or exponential notation.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eReturns an object literal representing the specified Number object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/valueOf"\x3evalueOf\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.prototype.valueOf\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/constructor","title":"Number.constructor","_id":"4eea8524a4c86c4dba0000d1","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/Number"\x3eNumber\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number" title \x3d "en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eSee \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3eObject.constructor\x3c/a\x3e.\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toExponential",
"title":"Number.toExponential","_id":"4eea8524a4c86c4dba0000d2","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the Number object in exponential notation\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number" title \x3d "en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3enumber\x3c/em\x3e.toExponential( [\x3cem\x3efractionDigits\x3c/em\x3e] )\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameter"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameter \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e fractionDigits\n\x3c/dt\x3e\x3cdd\x3e An integer specifying the number of digits after the decimal point. Defaults to as many digits as necessary to specify the number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Returns"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Returns \x3c/h3\x3e\n\x3cp\x3eA string representing a Number object in exponential notation with one digit before the decimal point, rounded to \x3ccode\x3efractionDigits\x3c/code\x3e digits after the decimal point. If the \x3ccode\x3efractionDigits\x3c/code\x3e argument is omitted, the number of digits after the decimal point defaults to the number of digits necessary to represent the value uniquely.\n\x3c/p\x3e\x3cp\x3eIf you use the \x3ccode\x3etoExponential\x3c/code\x3e method for a numeric literal and the numeric literal has no exponent and no decimal point, leave a space before the dot that precedes the method call to prevent the dot from being interpreted as a decimal point.\n\x3c/p\x3e\x3cp\x3eIf a number has more digits that requested by the \x3ccode\x3efractionDigits\x3c/code\x3e parameter, the number is rounded to the nearest number represented by \x3ccode\x3efractionDigits\x3c/code\x3e digits. See the discussion of rounding in the description of the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3etoFixed\x3c/a\x3e method, which also applies to \x3ccode\x3etoExponential\x3c/code\x3e.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Example \x3c/h3\x3e\n\x3cpre\x3e\nvar num\x3d77.1234;\n\nalert(\x26quot;num.toExponential() is \x26quot; + num.toExponential()); //displays 7.71234e+1\n\nalert(\x26quot;num.toExponential(4) is \x26quot; + num.toExponential(4)); //displays 7.7123e+1\n\nalert(\x26quot;num.toExponential(2) is \x26quot; + num.toExponential(2)); //displays 7.71e+1\n\nalert(\x26quot;77.1234.toExponential() is \x26quot; + 77.1234.toExponential()); //displays 7.71234e+1\n\nalert(\x26quot;77 .toExponential() is \x26quot; + 77 .toExponential()); //displays 7.7e+1\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3eNumber.toFixed()\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toPrecision" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision"\x3eNumber.toPrecision()\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3eNumber.toString()\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Parameter "," Returns "," Example "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed","title":"Number.toFixed","_id":"4eea8525a4c86c4dba0000d3","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eFormats a number using fixed-point notation\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3enumber\x3c/em\x3e.toFixed( [\x3cem\x3edigits\x3c/em\x3e] )\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameter"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameter\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3edigits\x3c/dt\x3e \x3cdd\x3eThe number of digits to appear after the decimal point; this may be a value between 0 and 20, inclusive, and implementations may optionally support a larger range of values. If this argument is omitted, it is treated as 0.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Returns"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eReturns\x3c/h3\x3e\n\x3cp\x3eA string representation of \x3ccode\x3enumber\x3c/code\x3e that does not use exponential notation and has exactly \x3ccode\x3edigits\x3c/code\x3e digits after the decimal place. The number is rounded if necessary, and the fractional part is padded with zeros if necessary so that it has the specified length. If \x3ccode\x3enumber\x3c/code\x3e is greater than 1e+21, this method simply calls \x3ccode\x3eNumber.toString()\x3c/code\x3e and returns a string in exponential notation.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Throws"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eThrows\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3eRangeError\x3c/dt\x3e \x3cdd\x3eIf digits is too small or too large. Values between 0 and 20, inclusive, will not cause a \x3ccode\x3eRangeError\x3c/code\x3e. Implementations are allowed to support larger and smaller values as well.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3eTypeError\x3c/dt\x3e \x3cdd\x3eIf this method is invoked on an object that is not a \x3ccode\x3eNumber\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\x3cpre\x3e\nvar n \x3d 12345.6789;\n\nn.toFixed();              // Returns \x26quot;12346\x26quot;: note rounding, no fractional part\n\nn.toFixed(1);             // Returns \x26quot;12345.7\x26quot;: note rounding\n\nn.toFixed(6);             // Returns \x26quot;12345.678900\x26quot;: note added zeros\n\n(1.23e+20).toFixed(2);    // Returns \x26quot;123000000000000000000.00\x26quot;\n\n(1.23e-10).toFixed(2);    // Returns \x26quot;0.00\x26quot;\n\n2.34.toFixed(1);          // Returns \x26quot;2.3\x26quot;\n\n-2.34.toFixed(1);         // Returns -2.3 (due to operator precedence, negative numbers don\'t return a string...)\n\n(-2.24).toFixed(1);       // Returns \x26quot;-2.3\x26quot; (...unless you use parentheses)\n\x3cbr/\x3e\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toExponential" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toExponential"\x3eNumber.toExponential()\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/ToLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/ToLocaleString"\x3eNumber.toLocaleString()\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toPrecision" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision"\x3eNumber.toPrecision()\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3eNumber.toString()\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource"\x3eNumber.toSource()\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/valueOf"\x3eNumber.valueOf()\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameter","Returns","Throws","Example","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/ToLocaleString","title":"Number.ToLocaleString","_id":"4eea852ca4c86c4dba0000d4","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3enumber\x3c/em\x3e.toLocaleString()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar number \x3d 3500\n0 \x26\x26 console.log(number.toLocaleString()); /* Displays \x26quot;3,500\x26quot; in English locale */\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3eNumber.toString()\x3c/a\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Syntax","Examples","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision",
"title":"Number.toPrecision","_id":"4eea852da4c86c4dba0000d5","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the Number object to the specified precision. \x3c/p\x3e\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number" title \x3d "en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3enumber\x3c/em\x3e.toPrecision( [ \x3cem\x3eprecision\x3c/em\x3e ] )\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameter"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameter\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3eprecision\x3c/dt\x3e \x3cdd\x3eAn integer specifying the number of significant digits.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Returns"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eReturns\x3c/h3\x3e\n\x3cp\x3eA string representing a Number object in fixed-point or exponential notation rounded to \x3ccode\x3eprecision\x3c/code\x3e significant digits. See the discussion of rounding in the description of the \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3etoFixed\x3c/a\x3e method, which also applies to \x3ccode\x3etoPrecision\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eIf the \x3ccode\x3eprecision\x3c/code\x3e argument is omitted, behaves as \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3eNumber.toString\x3c/a\x3e. If it is a non-integer value, it is rounded to the nearest integer. After rounding, if that value is not between 1 and 100 (inclusive), a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e is thrown.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3ca title \x3d "en/ECMAScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e only requires a precision of up to 21 significant digits. Other implementations may not support precisions higher than required by the standard.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3e\nvar num \x3d 5.123456;\nprintln(\x26quot;num.toPrecision() is \x26quot; + num.toPrecision());   //displays 5.123456\nprintln(\x26quot;num.toPrecision(5) is \x26quot; + num.toPrecision(5)); //displays 5.1235\nprintln(\x26quot;num.toPrecision(2) is \x26quot; + num.toPrecision(2)); //displays 5.1\nprintln(\x26quot;num.toPrecision(1) is \x26quot; + num.toPrecision(1)); //displays 5\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toExponential" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toExponential"\x3etoExponential\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3etoFixed\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameter","Returns","Example","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource","title":"Number.toSource","_id":"4eea852da4c86c4dba0000d6","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code of the object.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number" title \x3d "en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3enumber\x3c/em\x3e.toSource()\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\n\x3c/p\x3e\x3cp\x3e\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For the built-in \x3ccode\x3eNumber\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\n\x3c/li\x3e\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3efunction Number() {[native code]}\n\x3c/pre\x3e\n\x3cul\x3e\x3cli\x3e For instances of \x3ccode\x3eNumber\x3c/code\x3e, \x3ccode\x3etoSource\x3c/code\x3e returns a string representing the source code.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toString",
"title":"Number.toString","_id":"4eea852ea4c86c4dba0000d7","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the specified Number object\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number" title \x3d "en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3enumber\x3c/em\x3e.toString( [\x3cem\x3eradix\x3c/em\x3e] )\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameter"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameter \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e radix\n\x3c/dt\x3e\x3cdd\x3e An integer between 2 and 36 specifying the base to use for representing numeric values.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eNumber\x3c/code\x3e object overrides the \x3ccode\x3etoString\x3c/code\x3e method of the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/code\x3e object; it does not inherit \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\x3c/code\x3e. For \x3ccode\x3eNumber\x3c/code\x3e objects, the \x3ccode\x3etoString\x3c/code\x3e method returns a string representation of the object in the specified radix.\n\x3c/p\x3e\x3cp\x3eThe toString method parses its first argument, and attempts to return a string representation in the specified radix (base). For radixes above 10, the letters of the alphabet indicate numerals greater than 9. For example, for hexadecimal numbers (base 16), A through F are used.\n\x3c/p\x3e\x3cp\x3eIf toString is given a radix not between 2 and 36, an exception is thrown.\n\x3c/p\x3e\x3cp\x3eIf the radix is not specified, JavaScript assumes the preferred radix is 10.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3evar count \x3d 10;\nprint(count.toString());   // displays \x26quot;10\x26quot;\nprint((17).toString());    // displays \x26quot;17\x26quot;\n\nvar x \x3d 7;\nprint(x.toString(2));      // displays \x26quot;111\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cul\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toExponential" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toExponential"\x3eNumber.prototype.toExponential\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/ToLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/ToLocaleString"\x3eNumber.prototype.toLocaleString\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toPrecision" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toPrecision"\x3eNumber.prototype.toPrecision\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toFixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed"\x3eNumber.prototype.toFixed\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toSource"\x3eNumber.prototype.toSource\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Number/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/valueOf"\x3eNumber.prototype.valueOf\x3c/a\x3e\n\x3c/li\x3e\x3c/ul\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameter "," Description "," Examples "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/valueOf","title":"Number.valueOf","_id":"4eea852ea4c86c4dba0000d8","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the primitive value of a Number object.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number" title \x3d "en/JavaScript/Reference/Global_Objects/Number"\x3e\x3ccode\x3eNumber\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3ccode\x3e\x3cem\x3enumber\x3c/em\x3e.valueOf()\x3c/code\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3evalueOf\x3c/code\x3e method of \x3ccode\x3eNumber\x3c/code\x3e returns the primitive value of a \x3ccode\x3eNumber\x3c/code\x3e object as a number data type.\n\x3c/p\x3e\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3evar x \x3d new Number();\nprint(x.valueOf());     // prints \x26quot;0\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.toSource\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary ","Syntax"," Parameters "," Description "," Examples "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty","title":"Object.defineProperty","_id":"4eea8530a4c86c4dba0000d9","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "summary"\x3e\x3c/span\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eDefines a new property directly on an object, or modifies an existing property on an object, and returns the object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.defineProperty(\x3cem\x3eobj\x3c/em\x3e, \x3cem\x3eprop\x3c/em\x3e, \x3cem\x3edescriptor\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object on which to define the property.\x3c/dd\x3e \x3cdt\x3eprop\x3c/dt\x3e \x3cdd\x3eThe name of the property to be defined or modified.\x3c/dd\x3e \x3cdt\x3edescriptor\x3c/dt\x3e \x3cdd\x3eThe descriptor for the property being defined or modified.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThis method allows precise addition to or modification of a property on an object. Normal property addition through assignment creates properties which show up during property enumeration (\x3ca title \x3d "en/JavaScript/Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in"\x3efor...in loop\x3c/a\x3e), whose values may be changed, and which may be \x3ca title \x3d "en/JavaScript/Reference/Operators/Special Operators/delete Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete"\x3edeleted\x3c/a\x3e. This method allows these extra details to be changed from their defaults.\x3c/p\x3e\n\x3cp\x3eProperty descriptors present in objects come in two main flavors: data descriptors and accessor descriptors. A \x3cem\x3e\x3cdfn\x3edata descriptor\x3c/dfn\x3e\x3c/em\x3e is a property that has a value, which may or may not be writable. An \x3cdfn\x3eaccessor descriptor\x3c/dfn\x3e is a property described by a getter-setter pair of functions. A descriptor must be one of these two flavors; it cannot be both. All descriptors regardless of flavor include the \x3cstrong\x3econfigurable\x3c/strong\x3e and \x3cstrong\x3eenumerable\x3c/strong\x3e fields.\x3c/p\x3e\n\x3cp\x3eA property descriptor is an object with the following fields:\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3evalue\x3c/dt\x3e \x3cdd\x3eThe value associated with the property. (data descriptors only).\x26nbsp;\x3cstrong\x3eDefaults to \x3ccode\x3eundefined\x3c/code\x3e.\x3c/strong\x3e\x3c/dd\x3e \x3cdt\x3ewritable\x3c/dt\x3e \x3cdd\x3eTrue if and only if the value associated with the property may be changed. (data descriptors only).\x3cstrong\x3e Defaults to \x3ccode\x3efalse\x3c/code\x3e.\x3c/strong\x3e\x3c/dd\x3e \x3cdt\x3eget\x3c/dt\x3e \x3cdd\x3eA function which serves as a getter for the property, or \x3ccode\x3eundefined\x3c/code\x3e if there is no getter. (accessor descriptors only).\x26nbsp;\x3cstrong\x3eDefaults to \x3c/strong\x3e\x3cstrong\x3e\x3ccode\x3eundefined\x3c/code\x3e\x3c/strong\x3e\x3cstrong\x3e.\x3c/strong\x3e\x3c/dd\x3e \x3cdt\x3eset\x3c/dt\x3e \x3cdd\x3eA function which serves as a setter for the property, or \x3ccode\x3eundefined\x3c/code\x3e if there is no setter. (accessor descriptors only).\x26nbsp;\x3cstrong\x3eDefaults to \x3c/strong\x3e\x3cstrong\x3e\x3ccode\x3eundefined\x3c/code\x3e\x3c/strong\x3e\x3cstrong\x3e.\x3c/strong\x3e\x3c/dd\x3e \x3cdt\x3econfigurable\x3c/dt\x3e \x3cdd\x3eTrue if and only if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object.\x26nbsp;\x3cstrong\x3eDefaults to \x3c/strong\x3e\x3cstrong\x3e\x3ccode\x3efalse\x3c/code\x3e\x3c/strong\x3e\x3cstrong\x3e.\x3c/strong\x3e\x3c/dd\x3e \x3cdt\x3eenumerable\x3c/dt\x3e \x3cdd\x3eTrue if and only if this property shows up during enumeration of the properties on the corresponding object.\x26nbsp;\x3cstrong\x3eDefaults to \x3c/strong\x3e\x3cstrong\x3e\x3ccode\x3efalse\x3c/code\x3e\x3c/strong\x3e\x3cstrong\x3e.\x3c/strong\x3e\x3c/dd\x3e \x3cdt\x3e\x3c/dt\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Creating_a_property"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCreating a property\x3c/h2\x3e\n\x3cp\x3eWhen the property specified doesn\'t exist in the object, \x3ccode\x3eObject.defineProperty\x3c/code\x3e creates a new property as described. Fields may be omitted from the descriptor, and default values for those fields are imputed. All of the boolean-valued fields default to \x3ccode\x3efalse\x3c/code\x3e. The \x3ccode\x3evalue\x3c/code\x3e, \x3ccode\x3eget\x3c/code\x3e, and \x3ccode\x3eset\x3c/code\x3e fields default to \x3ccode\x3eundefined\x3c/code\x3e.\x3c/p\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {}; // Creates a new object\n\n// Example of an object property added with defineProperty with a data property descriptor\nObject.defineProperty(o, \x26quot;a\x26quot;, {value : 37,\n                               writable : true,\n                               enumerable : true,\n                               configurable : true});\n// \'a\' property exists in the o object and its value is 37\n\n// Example of an object property added with defineProperty with an accessor property descriptor\nvar bValue;\nObject.defineProperty(o, \x26quot;b\x26quot;, {get : function(){ return bValue; },\n                               set : function(newValue){ bValue \x3d newValue; },\n                               enumerable : true,\n                               configurable : true});\no.b \x3d 38;\n// \'b\' property exists in the o object and its value is 38\n// The value of o.b is now always identical to bValue, unless o.b is redefined\n\n// You cannot try to mix both :\nObject.defineProperty(o, \x26quot;conflict\x26quot;, { value: 0x9f91102, \n                                       get: function() { return 0xdeadbeef; } });\n// throws a TypeError: value appears only in data descriptors, get appears only in accessor descriptors\x3c/pre\x3e\r\n        \n\x3cp\x3eYou can use the \x3ccode\x3eObject.defineProperty\x3c/code\x3e method with native objects also. The following example shows how to implement the \x3ca title \x3d "en/DOM/select" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/DOM/HTMLSelectElement"\x3eHTMLSelectElement\x3c/a\x3e\'s \x3ccode\x3eselectedIndex\x3c/code\x3e property in radio button groups.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "xml"\x3e\x26lt;!doctype html\x26gt;\n\x26lt;html\x26gt;\n\x26lt;head\x26gt;\n\x26lt;meta http-equiv\x3d\x26quot;Content-Type\x26quot; content\x3d\x26quot;text/html; charset\x3dUTF-8\x26quot; /\x26gt;\n\x26lt;title\x26gt;Radio group selectedIndex example\x26lt;/title\x26gt;\n\x26lt;script type\x3d\x26quot;text/javascript\x26quot;\x26gt;\nObject.defineProperty(NodeList.prototype, \x26quot;selectedIndex\x26quot;, {\n\tget: function() {\n\t\tvar nIndex \x3d this.length - 1;\n\t\twhile (nIndex \x26gt; -1 \x26amp;\x26amp; !this[nIndex].checked) { nIndex--; }\n\t\treturn nIndex;\n\t},\n\tset: function(nNewIndex) {\n\t\tif (isNaN(nNewIndex)) { return; }\n\t\tvar nOldIndex \x3d this.selectedIndex;\n\t\tif (nOldIndex \x26gt; -1) { this[nOldIndex].checked \x3d false; }\n\t\tif (nNewIndex \x26gt; -1) { this[nNewIndex].checked \x3d true; }\n\t},\n\tenumerable : true,\n\tconfigurable : false\n});\n\n// try it!\nfunction checkForm() {\n\tvar nSelectedIndex \x3d document.myForm.myRadioGroup.selectedIndex;\n\tif (nSelectedIndex \x26lt; 0) { alert(\x26quot;Select a gadget!!\x26quot;); return false; }\n\talert(\x26quot;Congratulations!! You selected the \x26quot; + document.myForm.myRadioGroup[nSelectedIndex].value + \x26quot;.\x26quot;);\n\treturn true;\n}\n\x26lt;/script\x26gt;\n\n\x26lt;/head\x26gt;\n\n\x26lt;body\x26gt;\n\t\t\t\t\t\t\n\x26lt;form name\x3d\x26quot;myForm\x26quot; onsubmit\x3d\x26quot;return(checkForm());\x26quot;\x26gt;\n\x26lt;fieldset\x26gt;\x26lt;legend\x26gt;Select a gadget\x26lt;/legend\x26gt;\n\x26lt;p\x26gt;\x26lt;input type\x3d\x26quot;radio\x26quot; name\x3d\x26quot;myRadioGroup\x26quot; id\x3d\x26quot;ourShirt\x26quot; value\x3d\x26quot;shirt\x26quot; /\x26gt; \x26lt;label for\x3d\x26quot;ourShirt\x26quot;\x26gt;shirt\x26lt;/label\x26gt;\x26lt;br /\x26gt;\n\x26lt;input type\x3d\x26quot;radio\x26quot; name\x3d\x26quot;myRadioGroup\x26quot; id\x3d\x26quot;ourPants\x26quot; value\x3d\x26quot;pants\x26quot; /\x26gt; \x26lt;label for\x3d\x26quot;ourPants\x26quot;\x26gt;pants\x26lt;/label\x26gt;\x26lt;br /\x26gt;\n\x26lt;input type\x3d\x26quot;radio\x26quot; name\x3d\x26quot;myRadioGroup\x26quot; id\x3d\x26quot;ourBelt\x26quot; value\x3d\x26quot;belt\x26quot; /\x26gt; \x26lt;label for\x3d\x26quot;ourBelt\x26quot;\x26gt;belt\x26lt;/label\x26gt;\x26lt;br /\x26gt;\n\x26lt;input type\x3d\x26quot;radio\x26quot; name\x3d\x26quot;myRadioGroup\x26quot; id\x3d\x26quot;ourShoes\x26quot; value\x3d\x26quot;shoes\x26quot; /\x26gt; \x26lt;label for\x3d\x26quot;ourShoes\x26quot;\x26gt;shoes\x26lt;/label\x26gt;\x26lt;/p\x26gt;\n\x26lt;p\x26gt;\x26lt;span style\x3d\x26quot;cursor:pointer;text-decoration:underline;color:#0000ff;\x26quot; onclick\x3d\x26quot;document.myForm.myRadioGroup.selectedIndex\x3d2;\x26quot;\x26gt;Select our favorite gadget ;-)\x26lt;/span\x26gt;\x26lt;/p\x26gt;\n\x26lt;p\x26gt;\x26lt;input type\x3d\x26quot;submit\x26quot; value\x3d\x26quot;Order!\x26quot; /\x26gt;\n\x26lt;/fieldset\x26gt;\n\x26lt;/form\x26gt;\n\x26lt;/body\x26gt;\n\x26lt;/html\x26gt;\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {}; // Creates a new object\n\n// Example of an object property added with defineProperty with a data property descriptor\nObject.defineProperty(o, \x26quot;a\x26quot;, {value : 37,\n                               writable : true,\n                               enumerable : true,\n                               configurable : true});\n// \'a\' property exists in the o object and its value is 37\n\n// Example of an object property added with defineProperty with an accessor property descriptor\nvar bValue;\nObject.defineProperty(o, \x26quot;b\x26quot;, {get : function(){ return bValue; },\n                               set : function(newValue){ bValue \x3d newValue; },\n                               enumerable : true,\n                               configurable : true});\no.b \x3d 38;\n// \'b\' property exists in the o object and its value is 38\n// The value of o.b is now always identical to bValue, unless o.b is redefined\n\n// You cannot try to mix both :\nObject.defineProperty(o, \x26quot;conflict\x26quot;, { value: 0x9f91102, \n                                       get: function() { return 0xdeadbeef; } });\n// throws a TypeError: value appears only in data descriptors, get appears only in accessor descriptors\x3c/pre\x3e\r\n        \n\x3cp\x3eYou can use the \x3ccode\x3eObject.defineProperty\x3c/code\x3e method with native objects also. The following example shows how to implement the \x3ca title \x3d "en/DOM/select" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/DOM/HTMLSelectElement"\x3eHTMLSelectElement\x3c/a\x3e\'s \x3ccode\x3eselectedIndex\x3c/code\x3e property in radio button groups.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "xml"\x3e\x26lt;!doctype html\x26gt;\n\x26lt;html\x26gt;\n\x26lt;head\x26gt;\n\x26lt;meta http-equiv\x3d\x26quot;Content-Type\x26quot; content\x3d\x26quot;text/html; charset\x3dUTF-8\x26quot; /\x26gt;\n\x26lt;title\x26gt;Radio group selectedIndex example\x26lt;/title\x26gt;\n\x26lt;script type\x3d\x26quot;text/javascript\x26quot;\x26gt;\nObject.defineProperty(NodeList.prototype, \x26quot;selectedIndex\x26quot;, {\n\tget: function() {\n\t\tvar nIndex \x3d this.length - 1;\n\t\twhile (nIndex \x26gt; -1 \x26amp;\x26amp; !this[nIndex].checked) { nIndex--; }\n\t\treturn nIndex;\n\t},\n\tset: function(nNewIndex) {\n\t\tif (isNaN(nNewIndex)) { return; }\n\t\tvar nOldIndex \x3d this.selectedIndex;\n\t\tif (nOldIndex \x26gt; -1) { this[nOldIndex].checked \x3d false; }\n\t\tif (nNewIndex \x26gt; -1) { this[nNewIndex].checked \x3d true; }\n\t},\n\tenumerable : true,\n\tconfigurable : false\n});\n\n// try it!\nfunction checkForm() {\n\tvar nSelectedIndex \x3d document.myForm.myRadioGroup.selectedIndex;\n\tif (nSelectedIndex \x26lt; 0) { alert(\x26quot;Select a gadget!!\x26quot;); return false; }\n\talert(\x26quot;Congratulations!! You selected the \x26quot; + document.myForm.myRadioGroup[nSelectedIndex].value + \x26quot;.\x26quot;);\n\treturn true;\n}\n\x26lt;/script\x26gt;\n\n\x26lt;/head\x26gt;\n\n\x26lt;body\x26gt;\n\t\t\t\t\t\t\n\x26lt;form name\x3d\x26quot;myForm\x26quot; onsubmit\x3d\x26quot;return(checkForm());\x26quot;\x26gt;\n\x26lt;fieldset\x26gt;\x26lt;legend\x26gt;Select a gadget\x26lt;/legend\x26gt;\n\x26lt;p\x26gt;\x26lt;input type\x3d\x26quot;radio\x26quot; name\x3d\x26quot;myRadioGroup\x26quot; id\x3d\x26quot;ourShirt\x26quot; value\x3d\x26quot;shirt\x26quot; /\x26gt; \x26lt;label for\x3d\x26quot;ourShirt\x26quot;\x26gt;shirt\x26lt;/label\x26gt;\x26lt;br /\x26gt;\n\x26lt;input type\x3d\x26quot;radio\x26quot; name\x3d\x26quot;myRadioGroup\x26quot; id\x3d\x26quot;ourPants\x26quot; value\x3d\x26quot;pants\x26quot; /\x26gt; \x26lt;label for\x3d\x26quot;ourPants\x26quot;\x26gt;pants\x26lt;/label\x26gt;\x26lt;br /\x26gt;\n\x26lt;input type\x3d\x26quot;radio\x26quot; name\x3d\x26quot;myRadioGroup\x26quot; id\x3d\x26quot;ourBelt\x26quot; value\x3d\x26quot;belt\x26quot; /\x26gt; \x26lt;label for\x3d\x26quot;ourBelt\x26quot;\x26gt;belt\x26lt;/label\x26gt;\x26lt;br /\x26gt;\n\x26lt;input type\x3d\x26quot;radio\x26quot; name\x3d\x26quot;myRadioGroup\x26quot; id\x3d\x26quot;ourShoes\x26quot; value\x3d\x26quot;shoes\x26quot; /\x26gt; \x26lt;label for\x3d\x26quot;ourShoes\x26quot;\x26gt;shoes\x26lt;/label\x26gt;\x26lt;/p\x26gt;\n\x26lt;p\x26gt;\x26lt;span style\x3d\x26quot;cursor:pointer;text-decoration:underline;color:#0000ff;\x26quot; onclick\x3d\x26quot;document.myForm.myRadioGroup.selectedIndex\x3d2;\x26quot;\x26gt;Select our favorite gadget ;-)\x26lt;/span\x26gt;\x26lt;/p\x26gt;\n\x26lt;p\x26gt;\x26lt;input type\x3d\x26quot;submit\x26quot; value\x3d\x26quot;Order!\x26quot; /\x26gt;\n\x26lt;/fieldset\x26gt;\n\x26lt;/form\x26gt;\n\x26lt;/body\x26gt;\n\x26lt;/html\x26gt;\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Modifying_a_property"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eModifying a property\x3c/h2\x3e\n\x3cp\x3eWhen the property already exists, \x3ccode\x3eObject.defineProperty\x3c/code\x3e attempts to modify the property according to the values in the descriptor and the object current configuration. If the old descriptor had its \x3cstrong\x3econfigurable\x3c/strong\x3e attribute set to \x3ccode\x3efalse\x3c/code\x3e (the property is said \x26quot;non-configurable\x26quot;), then no attribute besides \x3cstrong\x3ewritable\x3c/strong\x3e can be changed. In that case, it is also not possible to switch back and forth from data/accessor properties type (a property which would have been defined without \x3ccode\x3eget\x3c/code\x3e/\x3ccode\x3eset\x3c/code\x3e/\x3ccode\x3evalue\x3c/code\x3e/\x3ccode\x3ewritable\x3c/code\x3e is called \x26quot;generic\x26quot; and is \x26quot;typed\x26quot; as a data descriptor).\x3c/p\x3e\n\x3cp\x3eA \x3ca title \x3d "en/JavaScript/Reference/Global Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3e\x3ccode\x3eTypeError\x3c/code\x3e\x3c/a\x3e is thrown when non-configurable property attributes are changed unless it\'s the \x3ccode\x3ewritable\x3c/code\x3e attribute or if the current and new values are equal.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Writable_attribute"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eWritable attribute\x3c/h2\x3e\n\x3cp\x3eWhen the \x3ccode\x3ewritable\x3c/code\x3e property attribute is set to \x3ccode\x3efalse\x3c/code\x3e, the property is said to be \x26quot;non-writable\x26quot;. It cannot be assigned.\x3c/p\x3e\n\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {}; // Creates a new object\n\nObject.defineProperty(o, \x26quot;a\x26quot;, {value : 37,\n                               writable : false});\n\nalert(o.a); // alerts 37\no.a \x3d 25;\nalert(o.a); // alerts 37. The assignment didn\'t work. No error thrown\x3c/pre\x3e\r\n        \n\x3cp\x3eAs seen in the example, trying to write into the non-writable property doesn\'t change it but doesn\'t throw an error either.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example_2"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {}; // Creates a new object\n\nObject.defineProperty(o, \x26quot;a\x26quot;, {value : 37,\n                               writable : false});\n\nalert(o.a); // alerts 37\no.a \x3d 25;\nalert(o.a); // alerts 37. The assignment didn\'t work. No error thrown\x3c/pre\x3e\r\n        \n\x3cp\x3eAs seen in the example, trying to write into the non-writable property doesn\'t change it but doesn\'t throw an error either.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Enumerable_attribute"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eEnumerable attribute\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3eEnumerable\x3c/code\x3e property attribute defines whether the property shows up in a \x3ca title \x3d "en/JavaScript/Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in"\x3efor...in\x3c/a\x3e loop or not.\x3c/p\x3e\n\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example_3"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar i;\nvar o \x3d {};\nObject.defineProperty(o, \x26quot;a\x26quot;, { value : 1, enumerable:true });\nObject.defineProperty(o, \x26quot;b\x26quot;, { value : 2, enumerable:false });\nObject.defineProperty(o, \x26quot;c\x26quot;, { value : 3 }); // enumerable defaults to false\no.d \x3d 4;\n\nfor (i in o) {    \n    alert(i);  \n}\n// alerts \'a\' then \'d\'\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example_3"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar i;\nvar o \x3d {};\nObject.defineProperty(o, \x26quot;a\x26quot;, { value : 1, enumerable:true });\nObject.defineProperty(o, \x26quot;b\x26quot;, { value : 2, enumerable:false });\nObject.defineProperty(o, \x26quot;c\x26quot;, { value : 3 }); // enumerable defaults to false\no.d \x3d 4;\n\nfor (i in o) {    \n    alert(i);  \n}\n// alerts \'a\' then \'d\'\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Configurable_attribute"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConfigurable attribute\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3econfigurable\x3c/code\x3e attribute controls at the same time whether the property can be deleted from the object and whether its attributes (other than \x3ccode\x3ewritable\x3c/code\x3e) can be changed.\x3c/p\x3e\n\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Example_4"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {};\nObject.defineProperty(o, \x26quot;a\x26quot;, { get : function(){return 1;}, \n                                configurable : false } );\n\nObject.defineProperty(o, \x26quot;a\x26quot;, {configurable : true}); // throws a TypeError\nObject.defineProperty(o, \x26quot;a\x26quot;, {enumerable : true}); // throws a TypeError\nObject.defineProperty(o, \x26quot;a\x26quot;, {set : function(){}}); // throws a TypeError (set was undefined previously)\nObject.defineProperty(o, \x26quot;a\x26quot;, {get : function(){return 1;}}); // throws a TypeError (even though the new get does exactly the same thing)\nObject.defineProperty(o, \x26quot;a\x26quot;, {value : 12}); // throws a TypeError\n\nalert(o.a); // alerts 1\ndelete o.a; // Nothing happens\nalert(o.a); // alerts 1\x3c/pre\x3e\r\n        \n\x3cp\x3eIf \x3ccode\x3eo.a\x3c/code\x3e \x3ccode\x3econfigurable\x3c/code\x3e attribute was \x3ccode\x3etrue\x3c/code\x3e, none of the error would be thrown and the property would be deleted at the end.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Example_4"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {};\nObject.defineProperty(o, \x26quot;a\x26quot;, { get : function(){return 1;}, \n                                configurable : false } );\n\nObject.defineProperty(o, \x26quot;a\x26quot;, {configurable : true}); // throws a TypeError\nObject.defineProperty(o, \x26quot;a\x26quot;, {enumerable : true}); // throws a TypeError\nObject.defineProperty(o, \x26quot;a\x26quot;, {set : function(){}}); // throws a TypeError (set was undefined previously)\nObject.defineProperty(o, \x26quot;a\x26quot;, {get : function(){return 1;}}); // throws a TypeError (even though the new get does exactly the same thing)\nObject.defineProperty(o, \x26quot;a\x26quot;, {value : 12}); // throws a TypeError\n\nalert(o.a); // alerts 1\ndelete o.a; // Nothing happens\nalert(o.a); // alerts 1\x3c/pre\x3e\r\n        \n\x3cp\x3eIf \x3ccode\x3eo.a\x3c/code\x3e \x3ccode\x3econfigurable\x3c/code\x3e attribute was \x3ccode\x3etrue\x3c/code\x3e, none of the error would be thrown and the property would be deleted at the end.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "Difference_with_usual_property_addition_and_default_values"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDifference with usual property addition and default values\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {};\n\no.a \x3d 1;\n// is equivalent to :\nObject.defineProperty(o, \x26quot;a\x26quot;, {value : 1,\n                               writable : true,\n                               configurable : true,\n                               enumerable : true});\n\n\n// On the other hand,\nObject.defineProperty(o, \x26quot;a\x26quot;, {value : 1});\n// is equivalent to :\nObject.defineProperty(o, \x26quot;a\x26quot;, {value : 1,\n                               writable : false,\n                               configurable : false,\n                               enumerable : false});\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "Code_considerations"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCode considerations\x3c/h2\x3e\n\x3cp\x3eIf you have to define many properties through the \x3ccode\x3eObject.defineProperty\x3c/code\x3e method, you can utilise the same descriptor object for each property, redefining it from time to time through binary flags.\x3c/p\x3e\n\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar oDesc \x3d {};\nfunction setProp (nMask, oObj, sKey, vVal_fGet, fSet) {\n\tif (nMask \x26amp; 12) {\n\t\tif (arguments.length \x26gt; 3) { oDesc.value \x3d vVal_fGet; } else { delete oDesc.value; }\n\t\toDesc.writable \x3d Boolean(nMask \x26amp; 8);\n\t\tdelete oDesc.get;\n\t\tdelete oDesc.set;\n\t} else {\n\t\tif (vVal_fGet) { oDesc.get \x3d vVal_fGet; } else { delete oDesc.get; }\n\t\tif (fSet) { oDesc.set \x3d fSet; } else { delete oDesc.set; }\n\t\tdelete oDesc.value;\n\t\tdelete oDesc.writable;\n\t}\n\toDesc.enumerable \x3d Boolean(nMask \x26amp; 1);\n\toDesc.configurable \x3d Boolean(nMask \x26amp; 2);\n\tObject.defineProperty(oObj, sKey, oDesc);\n}\n\n/**\n*\t:: function setProp ::\n*\n*\tvVal_fGet is the value to assign to a data descriptor or the getter function to assign to an accessor descriptor;\n*\n*\tnMask is a bitmask:\n*\n*\tflag 0x1: property is enumerable,\n*\tflag 0x2: property is configurable,\n*\tflag 0x4: property is data descriptor,\n*\tflag 0x8: property is writable.\n*\tNote: If flag 0x8 is setted to \x26quot;writable\x26quot;, the propery will be considered a data descriptor even if the flag 0x4 is setted to \x26quot;accessor descriptor\x26quot;!\n*\n*\tValues:\n*\n*\t0  : accessor descriptor - not configurable, not enumerable (0000).\n*\t1  : accessor descriptor - not configurable, enumerable (0001).\n*\t2  : accessor descriptor - configurable, not enumerable (0010).\n*\t3  : accessor descriptor - configurable, enumerable (0011).\n*\t4  : readonly data descriptor - not configurable, not enumerable (0100).\n*\t5  : readonly data descriptor - not configurable, enumerable (0101).\n*\t6  : readonly data descriptor - configurable, not enumerable (0110).\n*\t7  : readonly data descriptor - configurable, enumerable (0111).\n*\t8  : writable data descriptor - not configurable, not enumerable (1000).\n*\t9  : writable data descriptor - not configurable, enumerable (1001).\n*\t10 : writable data descriptor - configurable, not enumerable (1010).\n*\t11 : writable data descriptor - configurable, enumerable (1011).\n*/\n\n// creating a new empty object\nvar myObj \x3d {};\n\n// adding a writable data descriptor - not configurable, not enumerable\nsetProp(8, myObj, \x26quot;myNumber\x26quot;, 25);\n\n// adding a readonly data descriptor - not configurable, enumerable\nsetProp(5, myObj, \x26quot;myString\x26quot;, \x26quot;Hello world!\x26quot;);\n\n// adding an accessor descriptor - not configurable, enumerable\nsetProp(1, myObj, \x26quot;myArray\x26quot;, function() {\n\tfor (var iBit \x3d 0, iFlag \x3d 1, aBoolArr \x3d [false]; iFlag \x26lt; this.myNumber + 1 || (this.myNumber \x26amp; iFlag); iFlag \x3d iFlag \x26lt;\x26lt; 1) { aBoolArr[iBit++] \x3d Boolean(this.myNumber \x26amp; iFlag); }\n\treturn aBoolArr;\n}, function(aNewMask) {\n\tfor (var nNew \x3d 0, iBit \x3d 0; iBit \x26lt; aNewMask.length; iBit++) { nNew |\x3d Boolean(aNewMask[iBit]) \x26lt;\x26lt; iBit; }\n\tthis.myNumber \x3d nNew;\n});\n\n// adding a writable data descriptor (undefined value) - configurable, enumerable\nsetProp(11, myObj, \x26quot;myUndefined\x26quot;);\n\n// adding an accessor descriptor (only getter) - not configurable, enumerable\nsetProp(1, myObj, \x26quot;myDate\x26quot;, function() { return new Date(); });\n\n// adding an accessor descriptor (only setter) - not configurable, not enumerable\nsetProp(0, myObj, \x26quot;myAlert\x26quot;, null, function(sTxt) { alert(sTxt); });\n\nmyObj.myAlert \x3d myObj.myDate.toLocaleString() + \x26quot;\\n\\n\x26quot; + myObj.myString + \x26quot;\\nThe number \x26quot; + myObj.myNumber + \x26quot; represents the following bitmask: \x26quot; + myObj.myArray.join(\x26quot;, \x26quot;) + \x26quot;.\x26quot;;\x3c/pre\x3e\r\n        \n\x3cp\x3eYou can do the same thing with an anonymous descriptor object.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3enew (function() {\n\tfunction buildProp (nMask, oObj, sKey, vVal_fGet, fSet) {\n\t\tif (nMask \x26amp; 12) {\n\t\t\tif (arguments.length \x26gt; 3) { this.value \x3d vVal_fGet; } else { delete this.value; }\n\t\t\tthis.writable \x3d Boolean(nMask \x26amp; 8);\n\t\t\tdelete this.get;\n\t\t\tdelete this.set;\n\t\t} else {\n\t\t\tif (vVal_fGet) { this.get \x3d vVal_fGet; } else { delete this.get; }\n\t\t\tif (fSet) { this.set \x3d fSet; } else { delete this.set; }\n\t\t\tdelete this.value;\n\t\t\tdelete this.writable;\n\t\t}\n\t\tthis.enumerable \x3d Boolean(nMask \x26amp; 1);\n\t\tthis.configurable \x3d Boolean(nMask \x26amp; 2);\n\t\tObject.defineProperty(oObj, sKey, this);\n\t};\n\tbuildProp(5, window, \x26quot;setProp\x26quot;, buildProp);\n})();\n\n// creating a new empty object\nvar myObj \x3d {};\n\n// adding a writable data descriptor - not configurable, not enumerable\nsetProp(8, myObj, \x26quot;myNumber\x26quot;, 25);\n\n// adding a readonly data descriptor - not configurable, enumerable\nsetProp(5, myObj, \x26quot;myString\x26quot;, \x26quot;Hello world!\x26quot;);\n// etc. etc.\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_16"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar oDesc \x3d {};\nfunction setProp (nMask, oObj, sKey, vVal_fGet, fSet) {\n\tif (nMask \x26amp; 12) {\n\t\tif (arguments.length \x26gt; 3) { oDesc.value \x3d vVal_fGet; } else { delete oDesc.value; }\n\t\toDesc.writable \x3d Boolean(nMask \x26amp; 8);\n\t\tdelete oDesc.get;\n\t\tdelete oDesc.set;\n\t} else {\n\t\tif (vVal_fGet) { oDesc.get \x3d vVal_fGet; } else { delete oDesc.get; }\n\t\tif (fSet) { oDesc.set \x3d fSet; } else { delete oDesc.set; }\n\t\tdelete oDesc.value;\n\t\tdelete oDesc.writable;\n\t}\n\toDesc.enumerable \x3d Boolean(nMask \x26amp; 1);\n\toDesc.configurable \x3d Boolean(nMask \x26amp; 2);\n\tObject.defineProperty(oObj, sKey, oDesc);\n}\n\n/**\n*\t:: function setProp ::\n*\n*\tvVal_fGet is the value to assign to a data descriptor or the getter function to assign to an accessor descriptor;\n*\n*\tnMask is a bitmask:\n*\n*\tflag 0x1: property is enumerable,\n*\tflag 0x2: property is configurable,\n*\tflag 0x4: property is data descriptor,\n*\tflag 0x8: property is writable.\n*\tNote: If flag 0x8 is setted to \x26quot;writable\x26quot;, the propery will be considered a data descriptor even if the flag 0x4 is setted to \x26quot;accessor descriptor\x26quot;!\n*\n*\tValues:\n*\n*\t0  : accessor descriptor - not configurable, not enumerable (0000).\n*\t1  : accessor descriptor - not configurable, enumerable (0001).\n*\t2  : accessor descriptor - configurable, not enumerable (0010).\n*\t3  : accessor descriptor - configurable, enumerable (0011).\n*\t4  : readonly data descriptor - not configurable, not enumerable (0100).\n*\t5  : readonly data descriptor - not configurable, enumerable (0101).\n*\t6  : readonly data descriptor - configurable, not enumerable (0110).\n*\t7  : readonly data descriptor - configurable, enumerable (0111).\n*\t8  : writable data descriptor - not configurable, not enumerable (1000).\n*\t9  : writable data descriptor - not configurable, enumerable (1001).\n*\t10 : writable data descriptor - configurable, not enumerable (1010).\n*\t11 : writable data descriptor - configurable, enumerable (1011).\n*/\n\n// creating a new empty object\nvar myObj \x3d {};\n\n// adding a writable data descriptor - not configurable, not enumerable\nsetProp(8, myObj, \x26quot;myNumber\x26quot;, 25);\n\n// adding a readonly data descriptor - not configurable, enumerable\nsetProp(5, myObj, \x26quot;myString\x26quot;, \x26quot;Hello world!\x26quot;);\n\n// adding an accessor descriptor - not configurable, enumerable\nsetProp(1, myObj, \x26quot;myArray\x26quot;, function() {\n\tfor (var iBit \x3d 0, iFlag \x3d 1, aBoolArr \x3d [false]; iFlag \x26lt; this.myNumber + 1 || (this.myNumber \x26amp; iFlag); iFlag \x3d iFlag \x26lt;\x26lt; 1) { aBoolArr[iBit++] \x3d Boolean(this.myNumber \x26amp; iFlag); }\n\treturn aBoolArr;\n}, function(aNewMask) {\n\tfor (var nNew \x3d 0, iBit \x3d 0; iBit \x26lt; aNewMask.length; iBit++) { nNew |\x3d Boolean(aNewMask[iBit]) \x26lt;\x26lt; iBit; }\n\tthis.myNumber \x3d nNew;\n});\n\n// adding a writable data descriptor (undefined value) - configurable, enumerable\nsetProp(11, myObj, \x26quot;myUndefined\x26quot;);\n\n// adding an accessor descriptor (only getter) - not configurable, enumerable\nsetProp(1, myObj, \x26quot;myDate\x26quot;, function() { return new Date(); });\n\n// adding an accessor descriptor (only setter) - not configurable, not enumerable\nsetProp(0, myObj, \x26quot;myAlert\x26quot;, null, function(sTxt) { alert(sTxt); });\n\nmyObj.myAlert \x3d myObj.myDate.toLocaleString() + \x26quot;\\n\\n\x26quot; + myObj.myString + \x26quot;\\nThe number \x26quot; + myObj.myNumber + \x26quot; represents the following bitmask: \x26quot; + myObj.myArray.join(\x26quot;, \x26quot;) + \x26quot;.\x26quot;;\x3c/pre\x3e\r\n        \n\x3cp\x3eYou can do the same thing with an anonymous descriptor object.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3enew (function() {\n\tfunction buildProp (nMask, oObj, sKey, vVal_fGet, fSet) {\n\t\tif (nMask \x26amp; 12) {\n\t\t\tif (arguments.length \x26gt; 3) { this.value \x3d vVal_fGet; } else { delete this.value; }\n\t\t\tthis.writable \x3d Boolean(nMask \x26amp; 8);\n\t\t\tdelete this.get;\n\t\t\tdelete this.set;\n\t\t} else {\n\t\t\tif (vVal_fGet) { this.get \x3d vVal_fGet; } else { delete this.get; }\n\t\t\tif (fSet) { this.set \x3d fSet; } else { delete this.set; }\n\t\t\tdelete this.value;\n\t\t\tdelete this.writable;\n\t\t}\n\t\tthis.enumerable \x3d Boolean(nMask \x26amp; 1);\n\t\tthis.configurable \x3d Boolean(nMask \x26amp; 2);\n\t\tObject.defineProperty(oObj, sKey, this);\n\t};\n\tbuildProp(5, window, \x26quot;setProp\x26quot;, buildProp);\n})();\n\n// creating a new empty object\nvar myObj \x3d {};\n\n// adding a writable data descriptor - not configurable, not enumerable\nsetProp(8, myObj, \x26quot;myNumber\x26quot;, 25);\n\n// adding a readonly data descriptor - not configurable, enumerable\nsetProp(5, myObj, \x26quot;myString\x26quot;, \x26quot;Hello world!\x26quot;);\n// etc. etc.\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_17"\x3e\x3cspan id \x3d "Cross-browser_concerns"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser concerns\x3c/h2\x3e\n\x3cdiv id \x3d "section_18"\x3e\x3cspan id \x3d "Redefining_the_length_property_of_an_Array_object"\x3e\x3c/span\x3e\x3ch3 id \x3d "ie8-specific" class \x3d "editable"\x3eRedefining the length property of an Array object\x3c/h3\x3e\n\x3cp\x3eIt is possible to redefine the \x3ccode\x3elength\x3c/code\x3e property of arrays, but not all browsers permit this redefinition. \x26nbsp;Firefox 4 will throw a \x3ccode\x3eTypeError\x3c/code\x3e on any attempt to redefine the length property of an array. \x26nbsp;Versions of Chrome which implement \x3ccode\x3eObject.defineProperty\x3c/code\x3e\x26nbsp;in some circumstances ignore a length value different from the array\'s current \x3ccode\x3elength\x3c/code\x3e property, and changing writability seems to silently not work in some circumstances. \x26nbsp;Versions of Safari which implement \x3ccode\x3eObject.defineProperty\x3c/code\x3e\x26nbsp;ignore a length value different from the array\'s current \x3ccode\x3elength\x3c/code\x3e property, and attempts to change writability execute without error but do not actually change the property\'s writability. \x26nbsp;Only IE9 appears to fully and correctly implement redefinition of the \x3ccode\x3elength\x3c/code\x3e property of arrays. \x26nbsp;For now, don\'t rely on redefining the \x3ccode\x3elength\x3c/code\x3e property of an array to either work, or to work in a particular manner.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_19"\x3e\x3cspan id \x3d "Internet_Explorer_8_specific_case"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eInternet Explorer 8 specific case\x3c/h3\x3e\n\x3cp\x3eIE8 implemented a \x3ccode\x3eObject.defineProperty()\x3c/code\x3e method that could \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://msdn.microsoft.com/en-us/library/dd229916%28VS.85%29.aspx" title \x3d "http://msdn.microsoft.com/en-us/library/dd229916%28VS.85%29.aspx" target \x3d "_blank"\x3eonly be used on DOM objects\x3c/a\x3e. A couple of things need to be noted:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eTrying to use \x3ccode\x3eObject.defineProperty()\x3c/code\x3e on native objects throws an error.\x3c/li\x3e \x3cli\x3eProperty attributes must be set to some values. \x3ccode\x3etrue, true, true\x3c/code\x3e for data descriptor and \x3ccode\x3etrue\x3c/code\x3e for configurable, \x3ccode\x3efalse\x3c/code\x3e for enumerable for accessor descriptor. Any attempt to provide other value will result in an error being thrown.\x3c/li\x3e \x3cli\x3eReconfiguring a property requires to delete the property first. If the property isn\'t deleted, it stays as it was before the reconfiguration attempt.\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_20"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2)\x3c/td\x3e \x3ctd\x3e5 (previous versions untested)\x3c/td\x3e \x3ctd\x3e9 (8, but only on DOM objects and with some non standard behaviors. \x3ca href \x3d "#ie8-specific"\x3eSee above\x3c/a\x3e.)\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5.1 (5, but not on DOM objects)\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_18"\x3e\x3cspan id \x3d "Redefining_the_length_property_of_an_Array_object"\x3e\x3c/span\x3e\x3ch3 id \x3d "ie8-specific" class \x3d "editable"\x3eRedefining the length property of an Array object\x3c/h3\x3e\n\x3cp\x3eIt is possible to redefine the \x3ccode\x3elength\x3c/code\x3e property of arrays, but not all browsers permit this redefinition. \x26nbsp;Firefox 4 will throw a \x3ccode\x3eTypeError\x3c/code\x3e on any attempt to redefine the length property of an array. \x26nbsp;Versions of Chrome which implement \x3ccode\x3eObject.defineProperty\x3c/code\x3e\x26nbsp;in some circumstances ignore a length value different from the array\'s current \x3ccode\x3elength\x3c/code\x3e property, and changing writability seems to silently not work in some circumstances. \x26nbsp;Versions of Safari which implement \x3ccode\x3eObject.defineProperty\x3c/code\x3e\x26nbsp;ignore a length value different from the array\'s current \x3ccode\x3elength\x3c/code\x3e property, and attempts to change writability execute without error but do not actually change the property\'s writability. \x26nbsp;Only IE9 appears to fully and correctly implement redefinition of the \x3ccode\x3elength\x3c/code\x3e property of arrays. \x26nbsp;For now, don\'t rely on redefining the \x3ccode\x3elength\x3c/code\x3e property of an array to either work, or to work in a particular manner.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_19"\x3e\x3cspan id \x3d "Internet_Explorer_8_specific_case"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eInternet Explorer 8 specific case\x3c/h3\x3e\n\x3cp\x3eIE8 implemented a \x3ccode\x3eObject.defineProperty()\x3c/code\x3e method that could \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://msdn.microsoft.com/en-us/library/dd229916%28VS.85%29.aspx" title \x3d "http://msdn.microsoft.com/en-us/library/dd229916%28VS.85%29.aspx" target \x3d "_blank"\x3eonly be used on DOM objects\x3c/a\x3e. A couple of things need to be noted:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eTrying to use \x3ccode\x3eObject.defineProperty()\x3c/code\x3e on native objects throws an error.\x3c/li\x3e \x3cli\x3eProperty attributes must be set to some values. \x3ccode\x3etrue, true, true\x3c/code\x3e for data descriptor and \x3ccode\x3etrue\x3c/code\x3e for configurable, \x3ccode\x3efalse\x3c/code\x3e for enumerable for accessor descriptor. Any attempt to provide other value will result in an error being thrown.\x3c/li\x3e \x3cli\x3eReconfiguring a property requires to delete the property first. If the property isn\'t deleted, it stays as it was before the reconfiguration attempt.\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_20"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBrowser compatibility\x3c/h3\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2)\x3c/td\x3e \x3ctd\x3e5 (previous versions untested)\x3c/td\x3e \x3ctd\x3e9 (8, but only on DOM objects and with some non standard behaviors. \x3ca href \x3d "#ie8-specific"\x3eSee above\x3c/a\x3e.)\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5.1 (5, but not on DOM objects)\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_21"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/create" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create"\x3eObject.create\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Creating a property","Example","Modifying a property",
"Writable attribute","Example","Enumerable attribute","Example","Configurable attribute","Example","Difference with usual property addition and default values","Code considerations","Examples","Cross-browser concerns","Redefining the length property of an Array object","Internet Explorer 8 specific case","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create","title":"Object.create","_id":"4eea8532a4c86c4dba0000da","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eCreates a new object with the specified prototype object and properties.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.create(\x3cem\x3eproto\x3c/em\x3e [, \x3cem\x3epropertiesObject\x3c/em\x3e ])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eproto\x3c/dt\x3e \x3cdd\x3eThe object which should be the prototype of the newly-created object.\x3c/dd\x3e \x3cdt\x3epropertiesObject\x3c/dt\x3e \x3cdd\x3eIf specified and not undefined, an object whose enumerable own properties (that is, those properties defined upon itself and \x3cem\x3enot\x3c/em\x3e enumerable properties along its prototype chain) specify property descriptors to be added to the newly-created object, with the corresponding property names.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cspan style \x3d "font-family: Verdana,Tahoma,sans-serif;"\x3eThrows a \x3c/span\x3e\x3cspan style \x3d "font-family: Courier New;"\x3eTypeError\x3c/span\x3e\x3c/code\x3e\x3ccode\x3e\x3cspan style \x3d "font-family: Verdana,Tahoma,sans-serif;"\x3e exception if the proto parameter isn\'t null or an object\x3c/span\x3e\x3c/code\x3e.\x3cstrong\x3e\x3cbr/\x3e\n\x3c/strong\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o;\n\n// create an object with null as prototype\no \x3d Object.create(null);\n\n\no \x3d {};\n// is equivalent to:\no \x3d Object.create(Object.prototype);\n\n\nfunction Constructor(){}\no \x3d new Constructor();\n// is equivalent to:\no \x3d Object.create(Constructor.prototype);\n// Of course, if there is actual initialization code in the Constructor function, the Object.create cannot reflect it\n\n\n// create a new object whose prototype is a new, empty object\n// and a adding single property \'p\', with value 42\no \x3d Object.create({}, { p: { value: 42 } })\n\n// by default properties ARE NOT writable, enumerable or configurable:\no.p \x3d 24\no.p\n//42\n\no.q \x3d 12\nfor (var prop in o) {\n   0 \x26\x26 console.log(prop)\n}\n//\x26quot;q\x26quot;\n\ndelete o.p\n//false\n\n//to specify an ES3 property\no2 \x3d Object.create({}, { p: { value: 42, writable: true, enumerable: true, configurable: true } });\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Polyfill"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3ePolyfill\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (!Object.create) {\n    Object.create \x3d function (o) {\n        if (arguments.length \x26gt; 1) {\n            throw new Error(\'Object.create implementation only accepts the first parameter.\');\n        }\n        function F() {}\n        F.prototype \x3d o;\n        return new F();\n    };\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThis polyfill covers the main use case which is creating a new object for which the prototype has been chosen but doesn\'t take the second argument into account.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Polyfill"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3ePolyfill\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif (!Object.create) {\n    Object.create \x3d function (o) {\n        if (arguments.length \x26gt; 1) {\n            throw new Error(\'Object.create implementation only accepts the first parameter.\');\n        }\n        function F() {}\n        F.prototype \x3d o;\n        return new F();\n    };\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThis polyfill covers the main use case which is creating a new object for which the prototype has been chosen but doesn\'t take the second argument into account.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/defineProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty"\x3eObject.defineProperty\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/defineProperties" class \x3d "internal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperties"\x3eObject.defineProperties\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/Object/IsPrototypeOf" class \x3d "internal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf"\x3eObject.prototype.isPrototypeOf\x3c/a\x3e\x3c/li\x3e \x3cli\x3eJohn\x26nbsp;Resig\'s post on \x3ca class \x3d "external" title \x3d "http://ejohn.org/blog/objectgetprototypeof/" rel \x3d "external" href \x3d "http://ejohn.org/blog/objectgetprototypeof/" target \x3d "_blank"\x3egetPrototypeOf\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Cross-browser compatibility","Polyfill","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/prototype","title":"Object.prototype","_id":"4eea8532a4c86c4dba0000db","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/code\x3e prototype object.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eAll objects in JavaScript are descended from \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/code\x3e; all objects inherit methods and properties from \x3ccode\x3eObject.prototype\x3c/code\x3e, although they may be overridden\x26nbsp;(except an\x26nbsp;\x3ccode\x3eObject\x3c/code\x3e\x26nbsp;with a \x3ccode\x3enull \x3c/code\x3eprototype, i.e.\x26nbsp;\x3ccode\x3eObject.create(null)\x3c/code\x3e). For example, other constructors\' prototypes override the \x3ccode\x3econstructor\x3c/code\x3e property and provide their own \x3ccode\x3etoString\x3c/code\x3e methods. Changes to the \x3ccode\x3eObject\x3c/code\x3e prototype object are propagated to all objects unless the properties and methods subject to those changes are overridden further along the prototype chain.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/count" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/count" class \x3d "new "\x3e\x3ccode\x3e__count__\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since \x3ca rel \x3d "custom" href \x3d "/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\x3cbr/\x3e Returns the number of enumerable properties directly on a user-defined object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/parent" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since \x3ca rel \x3d "custom" href \x3d "/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\x3cbr/\x3e Points to an object\'s context.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/proto" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Points to the object which was used as prototype when the object was instantiated.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Associates a function with a property that, when accessed, executes that function and returns its return value.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Associates a function with a property that, when set, executes that function which modifies the property.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/eval"\x3eeval\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan\x3e\n\n\x3cspan style \x3d "border: 1px solid #FF0000; background-color: #FEBCBC; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eObsolete since \x3ca rel \x3d "custom" href \x3d "/en/JavaScript/New_in_JavaScript/1.8.5"\x3eJavaScript 1.8.5\x3c/a\x3e\x3c/span\x3e\x3cbr/\x3e \x3c/span\x3eEvaluates a string of JavaScript code in the context of the specified object.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a boolean indicating whether an object contains the specified property as a direct property of that object and not inherited through the prototype chain.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf"\x3eisPrototypeOf\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a boolean indication whether the specified object is in the prototype chain of the object this method is called upon.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupGetter"\x3e__lookupGetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns the function associated with the specified property by the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupSetter"\x3e__lookupSetter__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns the function associated with the specified property by the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/code\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/noSuchMethod" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/noSuchMethod"\x3e__noSuchMethod__\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Allows a function to be defined that will be executed when an undefined object member is called as a method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable"\x3epropertyIsEnumerable\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a boolean indicating if the internal \x3ca title \x3d "en/ECMAScript_DontEnum_attribute" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute"\x3eECMAScript DontEnum attribute\x3c/a\x3e is set.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3etoSource\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns string containing the source of an object literal representing the object that this method is called upon; you can use this value to create a new object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toLocaleString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toLocaleString"\x3etoLocaleString\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eCalls \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3etoString\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representation of the object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/unwatch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch"\x3eunwatch\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Removes a watchpoint from a property of the object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3evalueOf\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/watch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch"\x3ewatch\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Adds a watchpoint to a property of the object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperties","title":"Object.defineProperties","_id":"4eea8532a4c86c4dba0000dc","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eDefines new or modifies existing properties directly on an object, returning the object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eObject.defineProperties(\x3cem\x3eobj\x3c/em\x3e, \x3cem\x3eprops\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object on which to define or modify properties.\x3c/dd\x3e \x3cdt\x3eprops\x3c/dt\x3e \x3cdd\x3eAn object whose own enumerable properties constitute descriptors for the properties to be defined or modified.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eObject.defineProperties\x3c/code\x3e, in essence, defines all properties corresponding to the enumerable own properties of \x3ccode\x3eprops\x3c/code\x3e on the object \x3ccode\x3eobjrops\x3c/code\x3e object.\x3c/p\x3e\n\x3cp\x3eAssuming a pristine execution environment with all names and properties referring to their initial values, \x3ccode\x3eObject.defineProperties\x3c/code\x3e is almost completely equivalent (note the comment in \x3ccode\x3eisCallable\x3c/code\x3e) to the following reimplementation in JavaScript:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction defineProperties(obj, properties)\n{\n  function convertToDescriptor(desc)\n  {\n    function hasProperty(obj, prop)\n    {\n      return Object.prototype.hasOwnProperty.call(obj, prop);\n    }\n\n    function isCallable(v)\n    {\n      // NB: modify as necessary if other values than functions are callable.\n      return typeof v \x3d\x3d\x3d \x26quot;function\x26quot;;\n    }\n\n    if (typeof desc !\x3d\x3d \x26quot;object\x26quot; || desc \x3d\x3d\x3d null)\n      throw new TypeError(\x26quot;bad desc\x26quot;);\n\n    var d \x3d {};\n    if (hasProperty(desc, \x26quot;enumerable\x26quot;))\n      d.enumerable \x3d !!obj.enumerable;\n    if (hasProperty(desc, \x26quot;configurable\x26quot;))\n      d.configurable \x3d !!obj.configurable;\n    if (hasProperty(desc, \x26quot;value\x26quot;))\n      d.value \x3d obj.value;\n    if (hasProperty(desc, \x26quot;writable\x26quot;))\n      d.writable \x3d !!desc.writable;\n    if (hasProperty(desc, \x26quot;get\x26quot;))\n    {\n      var g \x3d desc.get;\n      if (!isCallable(g) \x26amp;\x26amp; g !\x3d\x3d \x26quot;undefined\x26quot;)\n        throw new TypeError(\x26quot;bad get\x26quot;);\n      d.get \x3d g;\n    }\n    if (hasProperty(desc, \x26quot;set\x26quot;))\n    {\n      var s \x3d desc.set;\n      if (!isCallable(s) \x26amp;\x26amp; s !\x3d\x3d \x26quot;undefined\x26quot;)\n        throw new TypeError(\x26quot;bad set\x26quot;);\n      d.set \x3d s;\n    }\n\n    if ((\x26quot;get\x26quot; in d || \x26quot;set\x26quot; in d) \x26amp;\x26amp; (\x26quot;value\x26quot; in d || \x26quot;writable\x26quot; in d))\n      throw new TypeError(\x26quot;identity-confused descriptor\x26quot;);\n\n    return d;\n  }\n\n  if (typeof obj !\x3d\x3d \x26quot;object\x26quot; || obj \x3d\x3d\x3d null)\n    throw new TypeError(\x26quot;bad obj\x26quot;);\n\n  properties \x3d Object(properties);\n  var keys \x3d Object.keys(properties);\n  var descs \x3d [];\n  for (var i \x3d 0; i \x26lt; keys.length; i++)\n    descs.push([keys[i], convertToDescriptor(properties[keys[i]])]);\n  for (var i \x3d 0; i \x26lt; descs.length; i++)\n    Object.defineProperty(obj, descs[i][0], descs[i][1]);\n\n  return obj;\n}\x3c/pre\x3e\r\n        \n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2)\x3c/td\x3e \x3ctd\x3e5 (previous versions untested)\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e \x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/defineProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty"\x3eObject.defineProperty\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/keys" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys"\x3eObject.keys\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2)\x3c/td\x3e \x3ctd\x3e5 (previous versions untested)\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/defineProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty"\x3eObject.defineProperty\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/keys" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys"\x3eObject.keys\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Browser compatibilitySee also","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor","title":"Object.getOwnPropertyDescriptor","_id":"4eea8534a4c86c4dba0000dd","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.getOwnPropertyDescriptor(\x3cem\x3eobj\x3c/em\x3e, \x3cem\x3eprop\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eobj\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe object in which to look for the property.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of the property whose description is to be retrieved\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThis method permits examination of the precise description of a property. A \x3cdfn\x3eproperty\x3c/dfn\x3e in JavaScript consists of a string-valued name and a property descriptor. A \x3cdfn\x3eproperty descriptor\x3c/dfn\x3e is a record with some of the following attributes:\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3e\x3cstrong\x3evalue\x3c/strong\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe value associated with the property (data descriptors only).\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3cstrong\x3ewritable\x3c/strong\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3etrue\x3c/code\x3e if and only if the value associated with the property may be changed (data descriptors only).\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3cstrong\x3eget\x3c/strong\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA function which serves as a getter for the property, or \x3ccode\x3eundefined\x3c/code\x3e if there is no getter (accessor descriptors only).\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3cstrong\x3eset\x3c/strong\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA function which serves as a setter for the property, or \x3ccode\x3eundefined\x3c/code\x3e if there is no setter (accessor descriptors only).\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3cstrong\x3econfigurable\x3c/strong\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3etrue\x3c/code\x3e if and only if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3cstrong\x3eenumerable\x3c/strong\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3etrue\x3c/code\x3e if and only if this property shows up during enumeration of the properties on the corresponding object.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3eFurther information about property descriptor attributes can be found on the \x3ccode\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/defineProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty"\x3eObject.defineProperty\x3c/a\x3e\x3c/code\x3e description\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o, d;\n\no \x3d { get foo() { return 17; } };\nd \x3d Object.getOwnPropertyDescriptor(o, \x26quot;foo\x26quot;);\n// d is { configurable: true, enumerable: true, get: /*the getter function*/, set: undefined }\n\no \x3d { bar: 42 };\nd \x3d Object.getOwnPropertyDescriptor(o, \x26quot;bar\x26quot;);\n// d is { configurable: true, enumerable: true, value: 42, writable: true }\n\no \x3d {};\nObject.defineProperty(o, \x26quot;baz\x26quot;, { value: 8675309, writable: false, enumerable: false });\nd \x3d Object.getOwnPropertyDescriptor(o, \x26quot;baz\x26quot;);\n// d is { value: 8675309, writable: false, enumerable: false, configurable: false }\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3ctd\x3e8\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/defineProperty" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty"\x3eObject.defineProperty\x3c/a\x3e\x3c/code\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],"sectionNames":["Syntax","Parameters","Description",
"Examples","Cross-browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys","title":"Object.keys","_id":"4eea8535a4c86c4dba0000de","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eReturns an array of all own enumerable properties found upon a given object, in the same order as that provided by a \x3ca title \x3d "en/JavaScript/Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in"\x3e\x3ccode\x3efor-in\x3c/code\x3e\x3c/a\x3e loop (the difference being that a for-in loop enumerates properties in the prototype chain as well).\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.keys(\x3cem\x3eobj\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object whose enumerable own properties are to be returned.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.keys\x3c/code\x3e returns an array whose elements are strings corresponding to the enumerable properties found directly upon \x3ccode\x3eobject\x3c/code\x3e. The ordering of the properties is the same as that given by looping over the properties of the object manually.\x3c/p\x3e \x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar arr \x3d [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;]; alert(Object.keys(arr)); // will alert \x26quot;0,1,2\x26quot;\n\n// array like object\nvar obj \x3d { 0 : \x26quot;a\x26quot;, 1 : \x26quot;b\x26quot;, 2 : \x26quot;c\x26quot;};\nalert(Object.keys(obj)); // will alert \x26quot;0,1,2\x26quot;\n\n// getFoo is property which isn\'t enumerable\nvar my_obj \x3d Object.create({}, { getFoo : { value : function () { return this.foo } } });\nmy_obj.foo \x3d 1;\n\nalert(Object.keys(my_obj)); // will alert only foo\x3c/pre\x3e\r\n        \n\x3cp\x3eIf you want all properties, even the not enumerable, see \x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/getOwnPropertyNames" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames"\x3eObject.getOwnPropertyNames\x3c/a\x3e.\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Compatiblity"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatiblity\x3c/h2\x3e\n\x3cp\x3eTo add compatible Object.keys support in older environments that do not natively support it, copy the following snippet:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif(!Object.keys) Object.keys \x3d function(o){\n if (o !\x3d\x3d Object(o))\n      throw new TypeError(\'Object.keys called on non-object\');\n var ret\x3d[],p;\n for(p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);\n return ret;\n}\x3c/pre\x3e\r\n         \x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Browser_support"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser support\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/propertyIsEnumerable" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable"\x3epropertyIsEnumerable\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/create" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create"\x3eObject.create\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/getOwnPropertyNames" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames"\x3eObject.getOwnPropertyNames\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d " link-https" rel \x3d "external" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d307791" title \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d307791" target \x3d "_blank"\x3eBug\x26nbsp;307791\x3c/a\x3e -\x3cspan id \x3d "summary_alias_container"\x3e \x3cspan id \x3d "short_desc_nonedit_display"\x3eImplement ES5\'s Object.keys(O)\x3c/span\x3e \x3c/span\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Compatiblity","Browser support","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames","title":"Object.getOwnPropertyNames","_id":"4eea8537a4c86c4dba0000df","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eReturns an array of all properties (enumerable or not) found upon a given object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.getOwnPropertyNames(\x3cem\x3eobj\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object whose enumerable \x3cem\x3eand non-enumerable\x3c/em\x3e own properties are to be returned.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.\x3c/code\x3egetOwnPropertyNames returns an array whose elements are strings corresponding to the enumerable \x3cem\x3eand non-enumerable\x3c/em\x3e properties found directly upon \x3ccode\x3eobj\x3c/code\x3e. The ordering of the enumerable properties in the array is consistent with the ordering exposed by a \x26nbsp;\x3ca style \x3d "text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default; " title \x3d "en/Core JavaScript 1.5 Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in"\x3efor...in loop\x3c/a\x3e\x26nbsp;(or by\x26nbsp;\x3ca style \x3d "text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default; " title \x3d "en/Core JavaScript 1.5 Reference/Global\nObjects/Object/keys" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys"\x3eObject.keys\x3c/a\x3e) over the properties of the object. \x26nbsp;The ordering of the non-enumerable properties in the array, and among the enumerable properties, is not defined.\x3c/p\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar arr \x3d [\x26quot;a\x26quot;, \x26quot;b\x26quot;, \x26quot;c\x26quot;];\nprint(Object.getOwnPropertyNames(arr).sort()); // prints \x26quot;0,1,2,length\x26quot;\n\n// array-like object\nvar obj \x3d { 0: \x26quot;a\x26quot;, 1: \x26quot;b\x26quot;, 2: \x26quot;c\x26quot;};\nprint(Object.getOwnPropertyNames(obj).sort()); // prints \x26quot;0,1,2\x26quot;\n\n// non-enumerable property\nvar my_obj \x3d Object.create({}, { getFoo: { value: function() { return this.foo; }, enumerable: false } });\nmy_obj.foo \x3d 1;\n\nprint(Object.getOwnPropertyNames(my_obj).sort()); // prints \x26quot;foo, getFoo\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eIf you want only the enumerable properties, see \x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global\nObjects/Object/keys" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys"\x3eObject.keys\x3c/a\x3e or use a \x3ca title \x3d "en/Core JavaScript 1.5 Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in"\x3efor...in loop\x3c/a\x3e\x26nbsp;(although note that this will return enumerable properties not found directly upon that object but also along the prototype chain for the object).\x3c/p\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global\n    Objects/Object/propertyIsEnumerable" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable"\x3epropertyIsEnumerable\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global\n    Objects/Object/create" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create"\x3eObject.create\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global\n    Objects/Object/keys" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys"\x3eObject.keys\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d " link-https" rel \x3d "external" href \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d518663" title \x3d "https://bugzilla.mozilla.org/show_bug.cgi?id\x3d518663" target \x3d "_blank"\x3eBug\x26nbsp;518663\x3c/a\x3e -\x3cspan id \x3d "summary_alias_container"\x3e \x3cspan id \x3d "short_desc_nonedit_display"\x3eES5: Object.getOwnPropertyNames\x3c/span\x3e \x3c/span\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cdl\x3e \x3cdt\x3e\x3c/dt\x3e\n\x3c/dl\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Cross-browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf","title":"Object.GetPrototypeOf","_id":"4eea8537a4c86c4dba0000e0","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eReturns the prototype of the specified object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.getPrototypeOf(\x3cem\x3eobject\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobject\x3c/dt\x3e \x3cdd\x3eThe object whose prototype is to be returned.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cspan style \x3d "font-family: Verdana,Tahoma,sans-serif;"\x3eThrows a \x3c/span\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3e\x3cspan style \x3d "font-family: Courier New;"\x3eTypeError\x3c/span\x3e\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e\x3cspan style \x3d "font-family: Verdana,Tahoma,sans-serif;"\x3e exception if the object parameter isn\'t an \x3c/span\x3e\x3c/code\x3e\x3cspan style \x3d "font-family: Courier New;"\x3eObject\x3c/span\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e3.5\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eEven if Opera does not support \x3ccode\x3eObject.getPrototypeOf()\x3c/code\x3e yet, it does support the non-standard \x3ccode\x3e__proto__\x3c/code\x3e property since Opera 10.50.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/Object/IsPrototypeOf" class \x3d "internal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf"\x3eisPrototypeOf\x3c/a\x3e\x26nbsp;\x3c/li\x3e \x3cli\x3eJohn\x26nbsp;Resig\'s post on \x3ca class \x3d "external" title \x3d "http://ejohn.org/blog/objectgetprototypeof/" rel \x3d "external" href \x3d "http://ejohn.org/blog/objectgetprototypeof/" target \x3d "_blank"\x3egetPrototypeOf\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Cross-browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions","title":"Object.preventExtensions","_id":"4eea8538a4c86c4dba0000e1","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3ePrevents new properties from ever being added to an object (i.e. prevents future extensions to the object).\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.preventExtensions(\x3cem\x3eobj\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e \x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object which should be made non-extensible.\x3c/dd\x3e\n\x3c/dl\x3e \x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eAn object is extensible if new properties can be added to it. \x26nbsp;\x3ccode\x3epreventExtensions\x3c/code\x3e\x26nbsp;marks an object as no longer extensible, so that it will never have properties beyond the ones it had at the time it was marked as non-extensible. \x26nbsp;Note that the properties of a non-extensible object, in general, may still be \x3cem\x3edeleted\x3c/em\x3e. Attempting to add new properties to a non-extensible object will fail, either silently or by throwing a \x3ca title \x3d "en/JavaScript/Reference/Global Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3e\x3ccode\x3eTypeError\x3c/code\x3e\x3c/a\x3e (most commonly, but not exclusively, when in\x26nbsp;\x3ca title \x3d "en/JavaScript/Strict mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Strict_mode"\x3estrict mode\x3c/a\x3e).\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eObject.preventExtensions\x3c/code\x3e only prevents addition of own properties. Properties can still be added to the object prototype. However, calling \x3ccode\x3eObject.preventExtensions\x3c/code\x3e on an object will also prevent extensions on its __proto__ ( \n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n ) property.\x3c/p\x3e\n\x3cp\x3eIf there is a way to turn an extensible object to a non-extensible one, there is no way to do the opposite in ECMAScript 5\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Object.preventExtensions returns the object being made non-extensible.\nvar obj \x3d {};\nvar obj2 \x3d Object.preventExtensions(obj);\nassert(obj \x3d\x3d\x3d obj2);\n\n// Objects are extensible by default.\nvar empty \x3d {};\nassert(Object.isExtensible(empty) \x3d\x3d\x3d true);\n\n// ...but that can be changed.\nObject.preventExtensions(empty);\nassert(Object.isExtensible(empty) \x3d\x3d\x3d false);\n\n// Object.defineProperty throws when adding a new property to a non-extensible object.\nvar nonExtensible \x3d { removable: true };\nObject.preventExtensions(nonExtensible);\nObject.defineProperty(nonExtensible, \x26quot;new\x26quot;, { value: 8675309 }); // throws a TypeError\n\n// In strict mode, attempting to add new properties to a non-extensible object throws a TypeError.\nfunction fail()\n{\n  \x26quot;use strict\x26quot;;\n  nonExtensible.newProperty \x3d \x26quot;FAIL\x26quot;; // throws a TypeError\n}\nfail();\n\n// EXTENSION (only works in engines supporting __proto__ (which is deprecated. Use Object.getPrototypeOf instead)): A non-extensible object\'s prototype is immutable.\nvar fixed \x3d Object.preventExtensions({});\nfixed.__proto__ \x3d { oh: \x26quot;hai\x26quot; }; // throws a TypeError\x3c/pre\x3e\r\n         \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e6\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5.1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3cstrong\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3e\x3ccode\x3eObject.isExtensible\x3c/code\x3e\x3c/a\x3e\x3c/strong\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3eObject.seal\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isSealed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed"\x3e\x3ccode\x3eObject.isSealed\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/freezed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze"\x3e\x3ccode\x3eObject.freeze\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isFrozen" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen"\x3e\x3ccode\x3eObject.isFrozen\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Cross-browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible","title":"Object.isExtensible","_id":"4eea8538a4c86c4dba0000e2","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eDetermines if an object is extensible (whether it can have new properties added to it).\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.isExtensible(\x3cem\x3eobj\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object which should be checked.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eObjects are extensible by default: they can have new properties added to them, and (in engines that support \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/proto" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/proto"\x3e__proto__\x3c/a\x3e\x3c/code\x3e \n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n their __proto__ property) can be modified. An object can be marked as non-extensible using \x3ccode\x3e\x3ca title \x3d "en/Core\nJavaScript 1.5 Reference/Global Objects/Object/preventExtensions" style \x3d "text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default; " rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions"\x3eObject.preventExtensions\x3c/a\x3e\x3c/code\x3e, \x3ccode style \x3d "color: inherit; font-weight: inherit; text-decoration: none; cursor: default; "\x3e\x3ca title \x3d "en/Core\nJavaScript 1.5 Reference/Global Objects/Object/seal" style \x3d "text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default; " rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3eObject.seal\x3c/a\x3e\x3c/code\x3e, or \x3ccode style \x3d "color: inherit; font-weight: inherit; text-decoration: none; cursor: default; "\x3e\x3ca title \x3d "en/Core\nJavaScript 1.5 Reference/Global Objects/Object/freezed" style \x3d "text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default; " rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze"\x3eObject.freeze\x3c/a\x3e\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// New objects are extensible.\nvar empty \x3d {};\nassert(Object.isExtensible(empty) \x3d\x3d\x3d true);\n\n// ...but that can be changed.\nObject.preventExtensions(empty);\nassert(Object.isExtensible(empty) \x3d\x3d\x3d false);\n\n// Sealed objects are by definition non-extensible.\nvar sealed \x3d Object.seal({});\nassert(Object.isExtensible(sealed) \x3d\x3d\x3d false);\n\n// Frozen objects are also by definition non-extensible.\nvar frozen \x3d Object.freeze({});\nassert(Object.isExtensible(frozen) \x3d\x3d\x3d false);\x3c/pre\x3e\r\n         \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e6\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5.1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3cstrong\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/preventExtensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions"\x3e\x3ccode\x3eObject.preventExtensions\x3c/code\x3e\x3c/a\x3e\x3c/strong\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3eObject.seal\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isSealed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed"\x3e\x3ccode\x3eObject.isSealed\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/freezed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze"\x3e\x3ccode\x3eObject.freeze\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isFrozen" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen"\x3e\x3ccode\x3eObject.isFrozen\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Cross-browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal","title":"Object.seal","_id":"4eea853ba4c86c4dba0000e3","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eSeals an object, preventing new properties from being added to it and marking all existing properties as non-configurable. Values of present properties can still be changed as long as they are writable.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.seal(\x3cem\x3eobj\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object which should be sealed.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eBy default objects are \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3eextensible\x3c/a\x3e (new properties can be added to them). Sealing an object prevents new properties from being added and marks all existing properties as non-configurable. This has the effect of making the set of properties on the object fixed and immutable. Making all properties non-configurable also prevents them from being converted from data properties to accessor properties and vice versa, but it does not prevent the values of data properties from being changed. Attempting to delete or add properties to a sealed object, or to convert a data property to accessor or vice versa, will fail, either silently or by throwing a \x3ccode\x3eTypeError\x3c/code\x3e (most commonly, although not exclusively, when in \x3ca title \x3d "en/JavaScript/Strict mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Strict_mode"\x3estrict mode\x3c/a\x3e\x26nbsp;code).\x3c/p\x3e\n\x3cp\x3eThe prototype chain remains untouched. However, the \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/proto" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/proto"\x3e__proto__\x3c/a\x3e ( \n\n\x3cspan class \x3d "deprecatedInlineTemplate" style \x3d "border: 1px solid #5151FF; background-color: #B9B9FF; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eDeprecated\x3c/span\x3e\n\n ) property is sealed as well.\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar obj \x3d {\n    prop: function () {},\n    foo: \x26quot;bar\x26quot;\n  };\n\n// New properties may be added, existing properties may be changed or removed\nobj.foo \x3d \x26quot;baz\x26quot;;\nobj.lumpy \x3d \x26quot;woof\x26quot;;\ndelete obj.prop;\n\nvar o \x3d Object.seal(obj);\nassert(o \x3d\x3d\x3d obj);\nassert(Object.isSealed(obj) \x3d\x3d\x3d true);\n\n// Changing property values on a sealed object still works.\nobj.foo \x3d \x26quot;quux\x26quot;;\n\n// But you can\'t convert data properties to accessors, or vice versa.\nObject.defineProperty(obj, \x26quot;foo\x26quot;, { get: function() { return \x26quot;g\x26quot;; } }); // throws a TypeError\n\n// Now any changes, other than to property values, will fail.\nobj.quaxxor \x3d \x26quot;the friendly duck\x26quot;; // silently doesn\'t add the property\ndelete obj.foo; // silently doesn\'t delete the property\n\n// ...and in strict mode such attempts will throw TypeErrors\nfunction fail() {\n  \x26quot;use strict\x26quot;;\n  delete obj.foo; // throws a TypeError\n  obj.sparky \x3d \x26quot;arf\x26quot;; // throws a TypeError\n}\nfail();\n\n// Attempted additions through Object.defineProperty will also throw\nObject.defineProperty(obj, \x26quot;ohai\x26quot;, { value: 17 }); // throws a TypeError\nObject.defineProperty(obj, \x26quot;foo\x26quot;, { value: \x26quot;eit\x26quot; }); // throws a TypeError\x3c/pre\x3e\r\n         \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar obj \x3d {\n    prop: function () {},\n    foo: \x26quot;bar\x26quot;\n  };\n\n// New properties may be added, existing properties may be changed or removed\nobj.foo \x3d \x26quot;baz\x26quot;;\nobj.lumpy \x3d \x26quot;woof\x26quot;;\ndelete obj.prop;\n\nvar o \x3d Object.seal(obj);\nassert(o \x3d\x3d\x3d obj);\nassert(Object.isSealed(obj) \x3d\x3d\x3d true);\n\n// Changing property values on a sealed object still works.\nobj.foo \x3d \x26quot;quux\x26quot;;\n\n// But you can\'t convert data properties to accessors, or vice versa.\nObject.defineProperty(obj, \x26quot;foo\x26quot;, { get: function() { return \x26quot;g\x26quot;; } }); // throws a TypeError\n\n// Now any changes, other than to property values, will fail.\nobj.quaxxor \x3d \x26quot;the friendly duck\x26quot;; // silently doesn\'t add the property\ndelete obj.foo; // silently doesn\'t delete the property\n\n// ...and in strict mode such attempts will throw TypeErrors\nfunction fail() {\n  \x26quot;use strict\x26quot;;\n  delete obj.foo; // throws a TypeError\n  obj.sparky \x3d \x26quot;arf\x26quot;; // throws a TypeError\n}\nfail();\n\n// Attempted additions through Object.defineProperty will also throw\nObject.defineProperty(obj, \x26quot;ohai\x26quot;, { value: 17 }); // throws a TypeError\nObject.defineProperty(obj, \x26quot;foo\x26quot;, { value: \x26quot;eit\x26quot; }); // throws a TypeError\x3c/pre\x3e\r\n         \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e6\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5.1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3cstrong\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isSealed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed"\x3e\x3ccode\x3eObject.isSealed\x3c/code\x3e\x3c/a\x3e\x3c/strong\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/preventExtensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions"\x3e\x3ccode\x3eObject.preventExtensions\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3e\x3ccode\x3eObject.isExtensible\x3c/code\x3e\x3c/a\x3e\x3cstrong\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isSealed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed"\x3e\x3ccode\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/a\x3e\x3c/strong\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/freezed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze"\x3e\x3ccode\x3eObject.freeze\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isFrozen" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen"\x3e\x3ccode\x3eObject.isFrozen\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Cross-browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze","title":"Object.freeze","_id":"4eea853da4c86c4dba0000e4","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eFreezes an object: that is, prevents new properties from being added to it; prevents existing properties from being removed; and prevents existing properties, or their enumerability, configurability, or writability, from being changed.\x26nbsp;In essence the object is made effectively immutable. The method returns the object being frozen.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.freeze(\x3cem\x3eobj\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object which should be frozen.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eNothing can be added to or removed from the properties set of a frozen object. Any attempt to do so will fail, either silently or by throwing a \x3ccode\x3eTypeError\x3c/code\x3e exception (most commonly, but not exclusively, when in \x3ca title \x3d "en/JavaScript/Strict mode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Strict_mode"\x3estrict mode\x3c/a\x3e).\x3c/p\x3e\n\x3cp\x3eValues cannot be changed for data properties. Accessor properties (getters and setters) work the same (and still give the illusion that you are changing the value)\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar obj \x3d {\n  prop: function (){},\n  foo: \x26quot;bar\x26quot;\n};\n\n// New properties may be added, existing properties may be changed or removed\nobj.foo \x3d \x26quot;baz\x26quot;;\nobj.lumpy \x3d \x26quot;woof\x26quot;;\ndelete obj.prop;\n\nvar o \x3d Object.freeze(obj);\n\nassert(Object.isFrozen(obj) \x3d\x3d\x3d true);\n\n// Now any changes will fail\nobj.foo \x3d \x26quot;quux\x26quot;; // silently does nothing\nobj.quaxxor \x3d \x26quot;the friendly duck\x26quot;; // silently doesn\'t add the property\n\n// ...and in strict mode such attempts will throw TypeErrors\nfunction fail(){\n  \x26quot;use strict\x26quot;;\n  obj.foo \x3d \x26quot;sparky\x26quot;; // throws a TypeError\n  delete obj.quaxxor; // throws a TypeError\n  obj.sparky \x3d \x26quot;arf\x26quot;; // throws a TypeError\n}\nfail();\n\n// Attempted changes through Object.defineProperty will also throw\nObject.defineProperty(obj, \x26quot;ohai\x26quot;, { value: 17 }); // throws a TypeError\nObject.defineProperty(obj, \x26quot;foo\x26quot;, { value: \x26quot;eit\x26quot; }); // throws a TypeError\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar obj \x3d {\n  prop: function (){},\n  foo: \x26quot;bar\x26quot;\n};\n\n// New properties may be added, existing properties may be changed or removed\nobj.foo \x3d \x26quot;baz\x26quot;;\nobj.lumpy \x3d \x26quot;woof\x26quot;;\ndelete obj.prop;\n\nvar o \x3d Object.freeze(obj);\n\nassert(Object.isFrozen(obj) \x3d\x3d\x3d true);\n\n// Now any changes will fail\nobj.foo \x3d \x26quot;quux\x26quot;; // silently does nothing\nobj.quaxxor \x3d \x26quot;the friendly duck\x26quot;; // silently doesn\'t add the property\n\n// ...and in strict mode such attempts will throw TypeErrors\nfunction fail(){\n  \x26quot;use strict\x26quot;;\n  obj.foo \x3d \x26quot;sparky\x26quot;; // throws a TypeError\n  delete obj.quaxxor; // throws a TypeError\n  obj.sparky \x3d \x26quot;arf\x26quot;; // throws a TypeError\n}\nfail();\n\n// Attempted changes through Object.defineProperty will also throw\nObject.defineProperty(obj, \x26quot;ohai\x26quot;, { value: 17 }); // throws a TypeError\nObject.defineProperty(obj, \x26quot;foo\x26quot;, { value: \x26quot;eit\x26quot; }); // throws a TypeError\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e6\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e12\x3c/td\x3e \x3ctd\x3e5.1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3cstrong\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isFrozen" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen"\x3e\x3ccode\x3eObject.isFrozen\x3c/code\x3e\x3c/a\x3e\x3c/strong\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/preventExtensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions"\x3e\x3ccode\x3eObject.preventExtensions\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3e\x3ccode\x3eObject.isExtensible\x3c/code\x3e\x3c/a\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3cbr/\x3e \x3ccode\x3e \x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3eObject.seal\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isSealed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed"\x3e\x3ccode\x3eObject.isSealed\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed","title":"Object.isSealed","_id":"4eea853da4c86c4dba0000e5","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eDetermine if an object is sealed.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.isSealed(\x3cem\x3eobj\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object which should be checked.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eReturns true if the object is sealed, otherwise false. An object is sealed if it is \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3enon-extensible\x3c/a\x3e and if all its properties are non-configurable and therefore not removable (but not necessarily non-writable).\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Objects aren\'t sealed by default.\nvar empty \x3d {};\nassert(Object.isSealed(empty) \x3d\x3d\x3d false);\n\n// If you make an empty object non-extensible, it is vacuously sealed.\nObject.preventExtensions(empty);\nassert(Object.isSealed(empty) \x3d\x3d\x3d true);\n\n// The same is not true of a non-empty object, unless its properties are all non-configurable.\nvar hasProp \x3d { fee: \x26quot;fie foe fum\x26quot; };\nObject.preventExtensions(hasProp);\nassert(Object.isSealed(hasProp) \x3d\x3d\x3d false);\n\n// But make them all non-configurable and the object becomes sealed.\nObject.defineProperty(hasProp, \x26quot;fee\x26quot;, { configurable: false });\nassert(Object.isSealed(hasProp) \x3d\x3d\x3d true);\n\n// The easiest way to seal an object, of course, is Object.seal.\nvar sealed \x3d {};\nObject.seal(sealed);\nassert(Object.isSealed(sealed) \x3d\x3d\x3d true);\n\n// A sealed object is, by definition, non-extensible.\nassert(Object.isExtensible(sealed) \x3d\x3d\x3d false);\n\n// A sealed object might be frozen, but it doesn\'t have to be.\nassert(Object.isFrozen(sealed) \x3d\x3d\x3d true); // all properties also non-writable\n\nvar s2 \x3d Object.seal({ p: 3 });\nassert(Object.isFrozen(s2) \x3d\x3d\x3d false); // \x26quot;p\x26quot; is still writable\n\nvar s3 \x3d Object.seal({ get p() { return 0; } });\nassert(Object.isFrozen(s3) \x3d\x3d\x3d true); // only configurability matters for accessor properties\x3c/pre\x3e\r\n         \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Objects aren\'t sealed by default.\nvar empty \x3d {};\nassert(Object.isSealed(empty) \x3d\x3d\x3d false);\n\n// If you make an empty object non-extensible, it is vacuously sealed.\nObject.preventExtensions(empty);\nassert(Object.isSealed(empty) \x3d\x3d\x3d true);\n\n// The same is not true of a non-empty object, unless its properties are all non-configurable.\nvar hasProp \x3d { fee: \x26quot;fie foe fum\x26quot; };\nObject.preventExtensions(hasProp);\nassert(Object.isSealed(hasProp) \x3d\x3d\x3d false);\n\n// But make them all non-configurable and the object becomes sealed.\nObject.defineProperty(hasProp, \x26quot;fee\x26quot;, { configurable: false });\nassert(Object.isSealed(hasProp) \x3d\x3d\x3d true);\n\n// The easiest way to seal an object, of course, is Object.seal.\nvar sealed \x3d {};\nObject.seal(sealed);\nassert(Object.isSealed(sealed) \x3d\x3d\x3d true);\n\n// A sealed object is, by definition, non-extensible.\nassert(Object.isExtensible(sealed) \x3d\x3d\x3d false);\n\n// A sealed object might be frozen, but it doesn\'t have to be.\nassert(Object.isFrozen(sealed) \x3d\x3d\x3d true); // all properties also non-writable\n\nvar s2 \x3d Object.seal({ p: 3 });\nassert(Object.isFrozen(s2) \x3d\x3d\x3d false); // \x26quot;p\x26quot; is still writable\n\nvar s3 \x3d Object.seal({ get p() { return 0; } });\nassert(Object.isFrozen(s3) \x3d\x3d\x3d true); // only configurability matters for accessor properties\x3c/pre\x3e\r\n         \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e6\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5.1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3cstrong\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3eObject.seal\x3c/code\x3e\x3c/a\x3e\x3c/strong\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/preventExtensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions"\x3e\x3ccode\x3eObject.preventExtensions\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3e\x3ccode\x3eObject.isExtensible\x3c/code\x3e\x3c/a\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/freezed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze"\x3e\x3ccode\x3eObject.freeze\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isFrozen" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen"\x3e\x3ccode\x3eObject.isFrozen\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Cross-browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen","title":"Object.isFrozen","_id":"4eea853da4c86c4dba0000e6","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eDetermine if an object is frozen.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.5\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eObject.isFrozen(\x3cem\x3eobj\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3eobj\x3c/dt\x3e \x3cdd\x3eThe object which should be checked.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eAn object is frozen if and only if it is not \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3eextensible\x3c/a\x3e, all its properties are\x26nbsp;non-configurable, and all its data properties (that is, properties which are not accessor properties with getter or setter components) are non-writable.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// A new object is extensible, so it is not frozen.\nassert(Object.isFrozen({}) \x3d\x3d\x3d false);\n\n// An empty object which is not extensible is vacuously frozen.\nvar vacuouslyFrozen \x3d Object.preventExtensions({});\nassert(Object.isFrozen(vacuouslyFrozen) \x3d\x3d\x3d true);\n\n// A new object with one property is also extensible, ergo not frozen.\nvar oneProp \x3d { p: 42 };\nassert(Object.isFrozen(oneProp) \x3d\x3d\x3d false);\n\n// Preventing extensions to the object still doesn\'t make it frozen,\n// because the property is still configurable (and writable).\nObject.preventExtensions(oneProp);\nassert(Object.isFrozen(oneProp) \x3d\x3d\x3d false);\n\n// ...but then deleting that property makes the object vacuously frozen.\ndelete oneProp.p;\nassert(Object.isFrozen(oneProp) \x3d\x3d\x3d true);\n\n// A non-extensible object with a non-writable but still configurable property is not frozen.\nvar nonWritable \x3d { e: \x26quot;plep\x26quot; };\nObject.preventExtensions(nonWritable);\nObject.defineProperty(nonWritable, \x26quot;e\x26quot;, { writable: false }); // make non-writable\nassert(Object.isFrozen(nonWritable) \x3d\x3d\x3d false);\n\n// Changing that property to non-configurable then makes the object frozen.\nObject.defineProperty(nonWritable, \x26quot;e\x26quot;, { configurable: false }); // make non-configurable\nassert(Object.isFrozen(nonWritable) \x3d\x3d\x3d true);\n\n// A non-extensible object with a non-configurable but still writable property also isn\'t frozen.\nvar nonConfigurable \x3d { release: \x26quot;the kraken!\x26quot; };\nObject.preventExtensions(nonConfigurable);\nObject.defineProperty(nonConfigurable, \x26quot;release\x26quot;, { configurable: false });\nassert(Object.isFrozen(nonConfigurable) \x3d\x3d\x3d false);\n\n// Changing that property to non-writable then makes the object frozen.\nObject.defineProperty(nonConfigurable, \x26quot;release\x26quot;, { writable: false });\nassert(Object.isFrozen(nonConfigurable) \x3d\x3d\x3d true);\n\n// A non-extensible object with a configurable accessor property isn\'t frozen.\nvar accessor \x3d { get food() { return \x26quot;yum\x26quot;; } };\nObject.preventExtensions(accessor);\nassert(Object.isFrozen(accessor) \x3d\x3d\x3d false);\n\n// ...but make that property non-configurable and it becomes frozen.\nObject.defineProperty(accessor, \x26quot;food\x26quot;, { configurable: false });\nassert(Object.isFrozen(accessor) \x3d\x3d\x3d true);\n\n// But the easiest way for an object to be frozen is if Object.freeze has been called on it.\nvar frozen \x3d { 1: 81 };\nassert(Object.isFrozen(frozen) \x3d\x3d\x3d false);\nObject.freeze(frozen);\nassert(Object.isFrozen(frozen) \x3d\x3d\x3d true);\n\n// By definition, a frozen object is non-extensible.\nassert(Object.isExtensible(frozen) \x3d\x3d\x3d false);\n\n// Also by definition, a frozen object is sealed.\nassert(Object.isSealed(frozen) \x3d\x3d\x3d true);\x3c/pre\x3e\r\n        \n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e6\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5.1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3cstrong\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/freezed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze"\x3e\x3ccode\x3eObject.freeze\x3c/code\x3e\x3c/a\x3e\x3c/strong\x3e\x3cstrong\x3e\x3ccode\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/strong\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/preventExtensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions"\x3e\x3ccode\x3eObject.preventExtensions\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3e\x3ccode\x3eObject.isExtensible\x3c/code\x3e\x3c/a\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3eObject.seal\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isSealed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed"\x3e\x3ccode\x3eObject.isSealed\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e4 (2.0)\x3c/td\x3e \x3ctd\x3e6\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5.1\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3cstrong\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/freezed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze"\x3e\x3ccode\x3eObject.freeze\x3c/code\x3e\x3c/a\x3e\x3c/strong\x3e\x3cstrong\x3e\x3ccode\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/strong\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/preventExtensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions"\x3e\x3ccode\x3eObject.preventExtensions\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3e\x3ccode\x3eObject.isExtensible\x3c/code\x3e\x3c/a\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3eObject.seal\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isSealed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed"\x3e\x3ccode\x3eObject.isSealed\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3cstrong\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/freezed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze"\x3e\x3ccode\x3eObject.freeze\x3c/code\x3e\x3c/a\x3e\x3c/strong\x3e\x3cstrong\x3e\x3ccode\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/strong\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/preventExtensions" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions"\x3e\x3ccode\x3eObject.preventExtensions\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3e\x3ccode\x3eObject.isExtensible\x3c/code\x3e\x3c/a\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/seal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal"\x3e\x3ccode\x3eObject.seal\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core\n    JavaScript 1.5 Reference/Global Objects/Object/isSealed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed"\x3e\x3ccode\x3eObject.isSealed\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Browser compatibility","Browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor","title":"Object.constructor","_id":"4eea853da4c86c4dba0000e7","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name, but it isn\'t read only (except for primitive Boolean, Number or String values: 1, true, \x26quot;read-only\x26quot;).\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eAll objects inherit a \x3ccode\x3econstructor\x3c/code\x3e property from their \x3ccode\x3eprototype\x3c/code\x3e:\x3c/p\x3e\n\x3cpre\x3e\no \x3d new Object // or o \x3d {} in JavaScript 1.2\no.constructor \x3d\x3d Object\na \x3d new Array // or a \x3d [] in JavaScript 1.2\na.constructor \x3d\x3d Array\nn \x3d new Number(3)\nn.constructor \x3d\x3d Number\n\x3c/pre\x3e\n\x3cp\x3eEven though you cannot construct most HTML objects, you can do comparisons. For example,\x3c/p\x3e\n\x3cpre\x3e\ndocument.constructor \x3d\x3d Document\ndocument.form3.constructor \x3d\x3d Form\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Displaying_the_constructor_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Displaying the constructor of an object\x3c/h4\x3e\n\x3cp\x3eThe following example creates a prototype, \x3ccode\x3eTree\x3c/code\x3e, and an object of that type, \x3ccode\x3etheTree\x3c/code\x3e. The example then displays the \x3ccode\x3econstructor\x3c/code\x3e property for the object \x3ccode\x3etheTree\x3c/code\x3e.\x3c/p\x3e\n\x3cpre\x3e\nfunction Tree(name) {\n   this.name \x3d name;\n}\ntheTree \x3d new Tree(\x26quot;Redwood\x26quot;);\n0 \x26\x26 console.log(\x26quot;theTree.constructor is \x26quot; + theTree.constructor);\n\x3c/pre\x3e\n\x3cp\x3eThis example displays the following output:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheTree.constructor is function Tree(name) {\n    this.name \x3d name;\n}\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Changing_the_constructor_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Changing the constructor of an object\x3c/h4\x3e\n\x3cp\x3eThe following example shows how to modify constructor value of generic objects. Only true, 1 and \x26quot;test\x26quot; variable constructors will not be changed. This example explains that is not always so safe to believe in constructor function.\x3c/p\x3e\n\x3cpre\x3e\nfunction Type(){};\nvar\ttypes \x3d [\n\tnew Array,\t[],\n\tnew Boolean,\ttrue,\n\tnew Date,\n\tnew Error,\n\tnew Function,\tfunction(){},\n\tMath,\t\n\tnew Number,\t1,\n\tnew Object,\t{},\n\tnew RegExp,\t/(?:)/,\n\tnew String,\t\x26quot;test\x26quot;\n];\nfor(var i \x3d 0; i \x26lt; types.length; i++){\n\ttypes[i].constructor \x3d Type;\n\ttypes[i] \x3d [types[i].constructor, types[i] instanceof Type, types[i].toString()];\n};\nalert(types.join(\x26quot;\\n\x26quot;));\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Displaying_the_constructor_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Displaying the constructor of an object\x3c/h4\x3e\n\x3cp\x3eThe following example creates a prototype, \x3ccode\x3eTree\x3c/code\x3e, and an object of that type, \x3ccode\x3etheTree\x3c/code\x3e. The example then displays the \x3ccode\x3econstructor\x3c/code\x3e property for the object \x3ccode\x3etheTree\x3c/code\x3e.\x3c/p\x3e\n\x3cpre\x3e\nfunction Tree(name) {\n   this.name \x3d name;\n}\ntheTree \x3d new Tree(\x26quot;Redwood\x26quot;);\n0 \x26\x26 console.log(\x26quot;theTree.constructor is \x26quot; + theTree.constructor);\n\x3c/pre\x3e\n\x3cp\x3eThis example displays the following output:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheTree.constructor is function Tree(name) {\n    this.name \x3d name;\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Changing_the_constructor_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Changing the constructor of an object\x3c/h4\x3e\n\x3cp\x3eThe following example shows how to modify constructor value of generic objects. Only true, 1 and \x26quot;test\x26quot; variable constructors will not be changed. This example explains that is not always so safe to believe in constructor function.\x3c/p\x3e\n\x3cpre\x3e\nfunction Type(){};\nvar\ttypes \x3d [\n\tnew Array,\t[],\n\tnew Boolean,\ttrue,\n\tnew Date,\n\tnew Error,\n\tnew Function,\tfunction(){},\n\tMath,\t\n\tnew Number,\t1,\n\tnew Object,\t{},\n\tnew RegExp,\t/(?:)/,\n\tnew String,\t\x26quot;test\x26quot;\n];\nfor(var i \x3d 0; i \x26lt; types.length; i++){\n\ttypes[i].constructor \x3d Type;\n\ttypes[i] \x3d [types[i].constructor, types[i] instanceof Type, types[i].toString()];\n};\nalert(types.join(\x26quot;\\n\x26quot;));\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Examples","Example: Displaying the constructor of an object","Example: Changing the constructor of an object"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/proto","title":"Object.proto","_id":"4eea8540a4c86c4dba0000e8","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRefers to the prototype of the object, which may be an object or \x3ccode\x3enull\x3c/code\x3e\x26nbsp;(which usually means the object is \x3ccode\x3eObject.prototype\x3c/code\x3e, which has no prototype). \x26nbsp;It is sometimes used to implement prototype-inheritance based property lookup.\x3c/p\x3e\n\x3cp\x3eThis property is deprecated and should not be used in new code: use \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/GetPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf"\x3eObject.getPrototypeOf\x3c/a\x3e\x3c/code\x3e\x26nbsp;instead.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3evar proto \x3d \x3cem\x3eobj\x3c/em\x3e.__proto__;\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3eNote: this is two underscores, followed by the five characters \x26quot;proto\x26quot;, followed by two more underscores.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eWhen an object is created, its \x3ccode\x3e__proto__\x3c/code\x3e property is set to constructing function\'s \x3ccode\x3eprototype\x3c/code\x3e property. For example \x3ccode\x3evar fred \x3d new Employee();\x3c/code\x3e will cause \x3ccode\x3efred.__proto__ \x3d Employee.prototype;\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eThis is used at runtime to look up properties which are not declared in the object directly. E.g. when \x3ccode\x3efred.doSomething()\x3c/code\x3e is executed and \x3ccode\x3efred\x3c/code\x3e does not contain a \x3ccode\x3edoSomething\x3c/code\x3e, \x3ccode\x3efred.__proto__\x3c/code\x3e is checked, which points to \x3ccode\x3eEmployee.prototype\x3c/code\x3e, which contains a \x3ccode\x3edoSomething\x3c/code\x3e, i.e. \x3ccode\x3efred.__proto__.doSomething()\x3c/code\x3e is invoked.\x3c/p\x3e\n\x3cp\x3eNote that \x3ccode\x3e\x3cem\x3e__proto__\x3c/em\x3e\x3c/code\x3e is a property of the instances, whereas \x3ccode\x3eprototype\x3c/code\x3e is a property of their constructor functions.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\x3cp\x3eThis example demonstrates that the \x3ccode\x3e__proto__\x3c/code\x3e property can be changed to point to a different object after initial construction. This change will alter the lookup results for object properties. This example also illustrates that all objects have \x3ccode\x3e__proto__\x3c/code\x3e, including the objects bound to the \x3ccode\x3eprototype\x3c/code\x3e property of functions. The object \x3ccode\x3e anOnion\x3c/code\x3e will have a \x3ccode\x3e__proto__\x3c/code\x3e property equal to \x3ccode\x3ePlant.prototype\x3c/code\x3e; if we write \x3ccode\x3eanOnion.foo\x3c/code\x3e, then we will lookup \x3ccode\x3efoo\x3c/code\x3e in the \x3ccode\x3eanOnion\x3c/code\x3e object first, then in \x3ccode\x3ePlant.prototype\x3c/code\x3e (the value of \x3ccode\x3eanOnion.__proto__\x3c/code\x3e), then in \x3ccode\x3eLifeform.prototype\x3c/code\x3e (the value of \x3ccode\x3ePlant.prototype\x3c/code\x3e set by the call to \x3ccode\x3eextend\x3c/code\x3e\x3ccode\x3e()\x3c/code\x3e), and finally in \x3ccode\x3eLifeform.__proto__\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction extend(child, supertype) {\n   child.prototype.__proto__ \x3d supertype.prototype;\n}\n\nextend(Animal, Lifeform);\nextend(Plant, Lifeform);\n\nvar anOnion \x3d new Plant();\x3c/pre\x3e\r\n        \n\x3cp\x3eHowever, this only applies to \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Object/isExtensible" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible"\x3eextensible\x3c/a\x3e objects:\x26nbsp;a non-extensible object\'s\x26nbsp;\x3ccode style \x3d "color: inherit; font-weight: inherit; "\x3e__proto__\x3c/code\x3e\x26nbsp;property (more generally, the object\'s prototype) cannot be changed:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar obj \x3d {};\nObject.preventExtensions(obj);\n\nobj.__proto__ \x3d {}; // throws a TypeError\x3c/pre\x3e\r\n        \n\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Description","Example"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter","title":"Object.defineGetter","_id":"4eea8540a4c86c4dba0000e9","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eBinds an object\'s property to a function to be called when that property is looked up.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__defineGetter__(\x3cem\x3esprop\x3c/em\x3e, \x3cem\x3efun\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea string containing the name of the property to bind to the given function\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea function to be bound to a lookup of the specified property\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3e__defineGetter__\x3c/code\x3e allows a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/get_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/get"\x3egetter\x3c/a\x3e to be defined on a pre-existing object.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/get_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/get"\x3eget\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupGetter"\x3e__lookupGetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Creating_New_Objects/Defining_Getters_and_Setters"\x3eJS Guide:Defining Getters and Setters\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter","title":"Object.defineSetter","_id":"4eea8541a4c86c4dba0000ea","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eBinds an object\'s property to a function to be called when an attempt is made to set that property.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__defineSetter__(\x3cem\x3esprop\x3c/em\x3e, \x3cem\x3efun\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea string containing the name of the property to be bound to the given function\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea function to be called when there is an attempt to set the specified property. This function takes the form\x3c/dd\x3e \x3cdd\x3e\x3ccode\x3efunction (\x3cem\x3eval\x3c/em\x3e) { .\x26nbsp;.\x26nbsp;. }\x3c/code\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3eval\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ean alias for the variable that holds the value attempted to be assigned to \x3ccode\x3eprop\x3c/code\x3e\x3c/dd\x3e \x3c/dl\x3e \x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3e__defineSetter__\x3c/code\x3e method allows a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/set_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/set"\x3esetter\x3c/a\x3e to be defined on a pre-existing object.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Operators/Special_Operators/set_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/set"\x3eset\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/lookupSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupSetter"\x3e__lookupSetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Creating_New_Objects/Defining_Getters_and_Setters"\x3eJS Guide:Defining Getters and Setters\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/eval","title":"Object.eval","_id":"4eea8541a4c86c4dba0000eb","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eEvaluates a string of JavaScript code in the context of an object.\x3c/p\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobject\x3c/em\x3e.eval(\x3cem\x3estring\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estring\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eAny string representing a JavaScript expression, statement, or sequence of statements. The expression can include variables and properties of existing objects.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eeval\x3c/code\x3e method can\'t no longer be used as a method of \x3ccode\x3eObject\x3c/code\x3e. Use the top-level \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e\x3c/code\x3e function instead.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Functions/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty",
"title":"Object.hasOwnProperty","_id":"4eea8542a4c86c4dba0000ec","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a boolean indicating whether the object has the specified property.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.hasOwnProperty(\x3cem\x3eprop\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of the property to test.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eEvery object descended from \x3ccode\x3eObject\x3c/code\x3e inherits the \x3ccode\x3ehasOwnProperty\x3c/code\x3e method. This method can be used to determine whether an object has the specified property as a direct property of that object; unlike the \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/in_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/in"\x3e\x3ccode\x3ein\x3c/code\x3e\x3c/a\x3e operator, this method does not check down the object\'s prototype chain.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_hasOwnProperty_to_test_for_a_property.27s_existence"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_hasOwnProperty_to_test_for_a_property\'s_existence"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3ehasOwnProperty\x3c/code\x3e to test for a property\'s existence\x3c/h4\x3e\n\x3cp\x3eThe following example determines whether the \x3ccode\x3eo\x3c/code\x3e object contains a property named \x3ccode\x3eprop\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo \x3d new Object();\no.prop \x3d \'exists\';\n\nfunction changeO() {\n  o.newprop \x3d o.prop;\n  delete o.prop;\n}\n\no.hasOwnProperty(\'prop\');   //returns true\nchangeO();\no.hasOwnProperty(\'prop\');   //returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Direct_versus_inherited_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Direct versus inherited properties\x3c/h4\x3e\n\x3cp\x3eThe following example differentiates between direct properties and properties inherited through the prototype chain:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo \x3d new Object();\no.prop \x3d \'exists\';\no.hasOwnProperty(\'prop\');             // returns true\no.hasOwnProperty(\'toString\');         // returns false\no.hasOwnProperty(\'hasOwnProperty\');   // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Itarate_over_properties_not_considering_inherited_properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Iterating_over_the_properties_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Iterating over the properties of an object\x3c/h4\x3e\n\x3cp\x3eThe following example shows how to iterate over the properties of an object without executing on inherit properties.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar buz \x3d {\n    fog: \'stack\'\n};\n\nfor (var name in buz) {\n    if (buz.hasOwnProperty(name)) {\n        alert(\x26quot;this is fog (\x26quot; + name + \x26quot;) for sure. Value: \x26quot; + buz[name]);\n    }\n    else {\n        alert(name); // toString or something else\n    }\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_hasOwnProperty_to_test_for_a_property.27s_existence"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_hasOwnProperty_to_test_for_a_property\'s_existence"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3ehasOwnProperty\x3c/code\x3e to test for a property\'s existence\x3c/h4\x3e\n\x3cp\x3eThe following example determines whether the \x3ccode\x3eo\x3c/code\x3e object contains a property named \x3ccode\x3eprop\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo \x3d new Object();\no.prop \x3d \'exists\';\n\nfunction changeO() {\n  o.newprop \x3d o.prop;\n  delete o.prop;\n}\n\no.hasOwnProperty(\'prop\');   //returns true\nchangeO();\no.hasOwnProperty(\'prop\');   //returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Direct_versus_inherited_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Direct versus inherited properties\x3c/h4\x3e\n\x3cp\x3eThe following example differentiates between direct properties and properties inherited through the prototype chain:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eo \x3d new Object();\no.prop \x3d \'exists\';\no.hasOwnProperty(\'prop\');             // returns true\no.hasOwnProperty(\'toString\');         // returns false\no.hasOwnProperty(\'hasOwnProperty\');   // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Itarate_over_properties_not_considering_inherited_properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Iterating_over_the_properties_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Iterating over the properties of an object\x3c/h4\x3e\n\x3cp\x3eThe following example shows how to iterate over the properties of an object without executing on inherit properties.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar buz \x3d {\n    fog: \'stack\'\n};\n\nfor (var name in buz) {\n    if (buz.hasOwnProperty(name)) {\n        alert(\x26quot;this is fog (\x26quot; + name + \x26quot;) for sure. Value: \x26quot; + buz[name]);\n    }\n    else {\n        alert(name); // toString or something else\n    }\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in"\x3efor...in\x3c/a\x3e\x3cbr/\x3e\n\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/in_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/in"\x3ein\x3c/a\x3e\x3cbr/\x3e\n\x3ca title \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Inheritance_Revisited" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Inheritance_Revisited"\x3einheritance\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using hasOwnProperty to test for a property's existence","Example: Direct versus inherited properties","Example: Iterating over the properties of an object","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf","title":"Object.isPrototypeOf","_id":"4eea8545a4c86c4dba0000ed","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eTests for an object in another object\'s prototype chain.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eprototype\x3c/em\x3e.isPrototypeOf(\x3cem\x3eobject\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eprototype\x3c/dt\x3e \x3cdd\x3e\x26nbsp; an object to be tested against each link in the prototype chain of the \x3cstrong\x3eobject\x3c/strong\x3e\x26nbsp; argument\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;\x3ccode\x3eisPrototypeOf\x3c/code\x3e differs from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/instanceof_Operator" title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/instanceof_Operator"\x3einstanceof operator\x3c/a\x3e. In the expression \x3ccode\x3eobject instanceof AFunction\x3c/code\x3e, the \x3ccode\x3eobject\x3c/code\x3e prototype chain is checked against \x3ccode\x3eAFunction.prototype\x3c/code\x3e, not against \x3ccode\x3eAFunction\x3c/code\x3e itself\x3c/div\x3e\n\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3eobject\x3c/dt\x3e \x3cdd\x3ethe object whose prototype chain will be searched\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e allows you to check whether or not an object exists within another object\'s prototype chain.\x3c/p\x3e\n\x3cp\x3eFor example, consider the following prototype chain:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction Fee() {\n  // . . .\n}\n\nfunction Fi() {\n  // . . .\n}\nFi.prototype \x3d new Fee();\n\nfunction Fo() {\n  // . . .\n}\nFo.prototype \x3d new Fi();\n\nfunction Fum() {\n  // . . .\n}\nFum.prototype \x3d new Fo();\n\x3c/pre\x3e\n\x3cp\x3eLater on down the road, if you instantiate \x3ccode\x3eFum\x3c/code\x3e and need to check if \x3ccode\x3eFi\x3c/code\x3e\'s prototype exists within the \x3ccode\x3eFum\x3c/code\x3e prototype chain, you could do this:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3evar fum \x3d new Fum();\n. . .\n\nif (Fi.prototype.isPrototypeOf(fum)) {\n  // do something safe\n}\n\x3c/pre\x3e\n\x3cp\x3eThis, along with the \x3ccode\x3einstanceof\x3c/code\x3e operator particularly comes in handy if you have code that can only function when dealing with objects descended from a specific prototype chain, e.g., to guarantee that certain methods or properties will be present on that object.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/instanceof_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/instanceof"\x3einstanceof\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d "internal" title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/Object/GetPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf"\x3egetProtoypeOf\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupGetter","title":"Object.lookupGetter","_id":"4eea8545a4c86c4dba0000ee","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturn the function bound as a getter to the specified property.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone, but see \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor"\x3egetOwnPropertyDescriptor\x3c/a\x3e and \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf"\x3egetPrototypeOf\x3c/a\x3e.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__lookupGetter__(\x3cem\x3esprop\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea string containing the name of the property whose getter should be returned\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf a getter has been defined for an object\'s property, it\'s not possible to reference the getter function through that property, because that property refers to the return value of that function. \x3ccode\x3e__lookupGetter__\x3c/code\x3e can be used to obtain a reference to the getter function.\x3c/p\x3e\n\x3cp\x3eIt is now possible to do this in a standardized way using \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor" title \x3d "en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor"\x3egetOwnPropertyDescriptor\x3c/a\x3e and \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/getPrototypeOf"\x3egetPrototypeOf\x3c/a\x3e.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/get_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/get"\x3eget\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/defineGetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter"\x3e__defineGetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d "internal" title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Creating_New_Objects/Defining_Getters_and_Setters"\x3eJS Guide:Defining Getters and Setters\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/noSuchMethod","title":"Object.noSuchMethod","_id":"4eea8545a4c86c4dba0000ef","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eExecutes a function when a non-existent method is called on an object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__noSuchMethod__ \x3d \x3cem\x3efun\x3c/em\x3e\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efun\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea function that takes the form\x3c/dd\x3e \x3cdd\x3e\x3ccode\x3efunction (\x3cem\x3eid\x3c/em\x3e, \x3cem\x3eargs\x3c/em\x3e) { .\x26nbsp;.\x26nbsp;. }\x3c/code\x3e \x3cdl\x3e \x3cdt\x3e\x3ccode\x3eid\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ethe name of the non-existent method that was called\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3eargs\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ean array of the arguments passed to the method\x3c/dd\x3e \x3c/dl\x3e \x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eBy default, an attempt to call a method that doesn\'t exist on an object results in a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e being thrown. This behavior can be circumvented by defining a function at that object\'s \x3ccode\x3e__noSuchMethod__\x3c/code\x3e member. The function takes two arguments, the first is the name of the method attempted and the second is an array of the arguments that were passed in the method call. The second argument is an actual array (that is, it inherits through the \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/prototype"\x3eArray prototype\x3c/a\x3e chain) and not the array-like \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Functions/arguments" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments"\x3earguments object\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eIf this method cannot be called, either as if \x3ccode\x3eundefined\x3c/code\x3e by default, if deleted, or if manually set to a non-function, the JavaScript engine will revert to throwing \x3ccode\x3eTypeError\x3c/code\x3es.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e can be used to simulate multiple inheritance.\x3c/p\x3e\n\x3cp\x3eAn example of code that implements a primitive form of multiple inheritance is shown below.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Doesn\'t work with multiple inheritance objects as parents\n\nfunction noMethod(name, args) {\n  var parents\x3dthis.__parents_;\n  \n  // Go through all parents\n  \n  for (var i\x3d0;i\x26lt;parents.length;i++) {\n    // If we find a function on the parent, we call it\n    if (typeof parents[i][name] \x3d\x3d\x26quot;function\x26quot;) {\n      return parents[i][name].apply(this, args);\n    }\n  }\n  \n  // If we get here, the method hasn\'t been found\n  \n  throw new TypeError;\n}\n\n// Used to add a parent for multiple inheritance\n\nfunction addParent(obj, parent) {\n  // If the object isn\'t initialized, initialize it\n  \n  if (!obj.__parents_) {\n    obj.__parents_\x3d[];\n    obj.__noSuchMethod__\x3dnoMethod;\n  }\n  \n  // Add the parent\n  \n  obj.__parents_.push(parent);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eAn example of using this idea is shown below.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Example base class 1\n\nfunction NamedThing(name){\n  this.name\x3dname;\n}\n\nNamedThing.prototype \x3d {\n  getName: function() {return this.name;},\n  setName: function(newName) {this.name\x3dnewName;}\n}\n\n//Example base class 2\n\nfunction AgedThing(age){\n  this.age\x3dage;\n}\n\nAgedThing.prototype \x3d {\n  getAge: function(){return this.age;},\n  setAge: function(age){this.age\x3dage;}\n}\n\n// Child class. inherits from NamedThing and AgedThing as well as defining address\n\nfunction Person(name, age, address){\n  addParent(this, NamedThing.prototype);\n  NamedThing.call(this, name);\n  addParent(this, AgedThing.prototype);\n  AgedThing.call(this, age);\n  this.address\x3daddress;\n}\n\nPerson.prototype \x3d {\n  getAddr: function() {return this.address;},\n  setAddr: function(addr) {this.address\x3daddr;}\n}\n\nvar bob\x3dnew Person(\x26quot;bob\x26quot;, 25, \x26quot;New York\x26quot;);\n\n0 \x26\x26 console.log(\x26quot;getAge is \x26quot;+((\x26quot;getAge\x26quot; in bob)?\x26quot;in\x26quot;:\x26quot;not in\x26quot;)+\x26quot; bob\x26quot;);\n0 \x26\x26 console.log(\x26quot;bob\'s age is: \x26quot;+bob.getAge());\n0 \x26\x26 console.log(\x26quot;getName is \x26quot;+((\x26quot;getName\x26quot; in bob)?\x26quot;in\x26quot;:\x26quot;not in\x26quot;)+\x26quot; bob\x26quot;);\n0 \x26\x26 console.log(\x26quot;bob\'s name is: \x26quot;+bob.getName());\n0 \x26\x26 console.log(\x26quot;getAddr is \x26quot;+((\x26quot;getAddr\x26quot; in bob)?\x26quot;in\x26quot;:\x26quot;not in\x26quot;)+\x26quot; bob\x26quot;);\n0 \x26\x26 console.log(\x26quot;bob\'s address is: \x26quot;+bob.getAddr());\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Example"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable","title":"Object.propertyIsEnumerable","_id":"4eea8545a4c86c4dba0000f0","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a Boolean indicating whether the specified property is enumerable.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.propertyIsEnumerable(\x3cem\x3eprop\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eThe name of the property to test.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eEvery object has a \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e method. This method can determine whether the specified property in an object can be enumerated by a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for...in"\x3e\x3ccode\x3efor...in\x3c/code\x3e\x3c/a\x3e loop, with the exception of properties inherited through the prototype chain. If the object does not have the specified property, this method returns false.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Starting in JavaScript 1.8.1 (in Firefox 3.6), \x3ccode\x3epropertyIsEnumerable(\x26quot;prototype\x26quot;)\x3c/code\x3e returns false instead of true; this makes the result compliant with ECMAScript 5.\x3c/div\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_5\"\x3e\x3cspan id \x3d \"Examples\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Example:_A_basic_use_of_propertyIsEnumerable\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: A basic use of \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example shows the use of \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e on objects and arrays:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar o \x3d {};\nvar a \x3d [];\no.prop \x3d 'is enumerable';\na[0] \x3d 'is enumerable';\n\no.propertyIsEnumerable('prop');   // returns true\na.propertyIsEnumerable(0);        // returns true\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"Example:_User-defined_versus_built-in_objects\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: User-defined versus built-in objects\x3c/h4\x3e\n\x3cp\x3eThe following example demonstrates the enumerability of user-defined versus built-in properties:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar a \x3d ['is enumerable'];\n\na.propertyIsEnumerable(0);          // returns true\na.propertyIsEnumerable('length');   // returns false\n\nMath.propertyIsEnumerable('random');   // returns false\nthis.propertyIsEnumerable('Math');     // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d \"section_8\"\x3e\x3cspan id \x3d \"Example:_Direct_versus_inherited_properties\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: Direct versus inherited properties\x3c/h4\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar a \x3d [];\na.propertyIsEnumerable('constructor');         // returns false\n\nfunction firstConstructor()\n{\n  this.property \x3d 'is not enumerable';\n}\nfirstConstructor.prototype.firstMethod \x3d function () {};\n\nfunction secondConstructor()\n{\n  this.method \x3d function method() { return 'is enumerable'; };\n}\n\nsecondConstructor.prototype \x3d new firstConstructor;\nsecondConstructor.prototype.constructor \x3d secondConstructor;\n\nvar o \x3d new secondConstructor();\no.arbitraryProperty \x3d 'is enumerable';\n\no.propertyIsEnumerable('arbitraryProperty');   // returns true\no.propertyIsEnumerable('method');              // returns true\no.propertyIsEnumerable('property');            // returns false\n\no.property \x3d 'is enumerable';\n\no.propertyIsEnumerable('property');            // returns true\n\n// These return false as they are on the prototype which \n// propertyIsEnumerable does not consider (even though the last two\n// are iteratable with for-in)\no.propertyIsEnumerable('prototype'); // returns false (as of JS 1.8.1/FF3.6)\no.propertyIsEnumerable('constructor'); // returns false\no.propertyIsEnumerable('firstMethod'); // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e",
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_A_basic_use_of_propertyIsEnumerable"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: A basic use of \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example shows the use of \x3ccode\x3epropertyIsEnumerable\x3c/code\x3e on objects and arrays:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {};\nvar a \x3d [];\no.prop \x3d \'is enumerable\';\na[0] \x3d \'is enumerable\';\n\no.propertyIsEnumerable(\'prop\');   // returns true\na.propertyIsEnumerable(0);        // returns true\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_User-defined_versus_built-in_objects"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: User-defined versus built-in objects\x3c/h4\x3e\n\x3cp\x3eThe following example demonstrates the enumerability of user-defined versus built-in properties:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar a \x3d [\'is enumerable\'];\n\na.propertyIsEnumerable(0);          // returns true\na.propertyIsEnumerable(\'length\');   // returns false\n\nMath.propertyIsEnumerable(\'random\');   // returns false\nthis.propertyIsEnumerable(\'Math\');     // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_8\"\x3e\x3cspan id \x3d \"Example:_Direct_versus_inherited_properties\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: Direct versus inherited properties\x3c/h4\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar a \x3d [];\na.propertyIsEnumerable('constructor');         // returns false\n\nfunction firstConstructor()\n{\n  this.property \x3d 'is not enumerable';\n}\nfirstConstructor.prototype.firstMethod \x3d function () {};\n\nfunction secondConstructor()\n{\n  this.method \x3d function method() { return 'is enumerable'; };\n}\n\nsecondConstructor.prototype \x3d new firstConstructor;\nsecondConstructor.prototype.constructor \x3d secondConstructor;\n\nvar o \x3d new secondConstructor();\no.arbitraryProperty \x3d 'is enumerable';\n\no.propertyIsEnumerable('arbitraryProperty');   // returns true\no.propertyIsEnumerable('method');              // returns true\no.propertyIsEnumerable('property');            // returns false\n\no.property \x3d 'is enumerable';\n\no.propertyIsEnumerable('property');            // returns true\n\n// These return false as they are on the prototype which \n// propertyIsEnumerable does not consider (even though the last two\n// are iteratable with for-in)\no.propertyIsEnumerable('prototype'); // returns false (as of JS 1.8.1/FF3.6)\no.propertyIsEnumerable('constructor'); // returns false\no.propertyIsEnumerable('firstMethod'); // returns false\x3c/pre\x3e\r\n        \n\x3c/div\x3e",
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Statements/for...in" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for...in"\x3efor...in\x3c/a\x3e\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: A basic use of propertyIsEnumerable",
"Example: User-defined versus built-in objects","Example: Direct versus inherited properties","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/lookupSetter","title":"Object.lookupSetter","_id":"4eea8545a4c86c4dba0000f1","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturn the function bound as a setter to the specified property.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobj\x3c/em\x3e.__lookupSetter__(\x3cem\x3esprop\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ea string containing the name of the property whose setter should be returned\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf a setter has been defined for an object\'s property, it\'s not possible to reference the setter function through that property, because that property refers to the return value of that function. \x3ccode\x3e__lookupSetter__\x3c/code\x3e can be used to obtain a reference to the setter function.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/set_Operator" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/set"\x3eset\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/defineSetter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineSetter"\x3e__defineSetter__\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Creating_New_Objects/Defining_Getters_and_Setters"\x3eJS Guide:Defining Getters and Setters\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch","title":"Object.unwatch","_id":"4eea8549a4c86c4dba0000f2","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRemoves a watchpoint set with the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/watch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch"\x3ewatch()\x3c/a\x3e\x3c/code\x3e method.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eunwatch(\x3cem\x3eprop\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of a property of the object to stop watching.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe JavaScript debugger has functionality similar to that provided by this method, as well as other debugging options. For information on the debugger, see \x3ca title \x3d "en/Venkman" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Venkman"\x3eVenkman\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eBy default, this method is inherited by every object descended from \x3ccode\x3eObject\x3c/code\x3e.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e The reason for \x3ccode\x3eunwatch()\x3c/code\x3e to take the property name \x3cem\x3eprop\x3c/em\x3e as its only parameter is due to the \x26quot;single handler allowing\x26quot; behavior of the \x3ca title \x3d "watch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch"\x3e\x3ccode\x3ewatch()\x3c/code\x3e\x3c/a\x3e method.\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cp\x3eSee \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/watch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch"\x3ewatch()\x3c/a\x3e\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/constructor",
"title":"RegExp.constructor","_id":"4eea8549a4c86c4dba0000f3","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3eRegExp\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp" title \x3d "en/JavaScript/Reference/Global_Objects/RegExp"\x3e\x3ccode\x3eRegExp\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eSee \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3eObject.constructor\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/prototype",
"title":"RegExp.prototype","_id":"4eea854aa4c86c4dba0000f4","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the prototype object for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3e\x3ccode\x3eRegExp\x3c/code\x3e\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eSee \x3ca class \x3d "internal" title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/RegExp#RegExp_instances" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp#RegExp_instances"\x3e\x3ccode\x3eRegExp\x3c/code\x3e\x3c/a\x3e for a description of \x3ccode\x3eRegExp\x3c/code\x3e instances.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eRegExp\x3c/code\x3e instances inherit from \x3ccode\x3eRegExp.prototype\x3c/code\x3e. Modifications to the prototype object are propagated to all \x3ccode\x3eRegExp\x3c/code\x3e instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cp\x3eSee also \x3ca title \x3d "en/JavaScript/Reference/Deprecated_Features#RegExp_Properties" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Deprecated_Features#RegExp_Properties"\x3eDeprecated RegExp Properties\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3eNote that several of the \x3ccode\x3eRegExp\x3c/code\x3e properties have both long and short (Perl-like) names. Both names always refer to the same value. Perl is the programming language from which JavaScript modeled its regular expressions.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/global" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/global"\x3e\x3ccode\x3eglobal\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eWhether to test the regular expression against all possible matches in a string, or only against the first.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/ignoreCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/ignoreCase"\x3e\x3ccode\x3eignoreCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eWhether to ignore case while attempting a match in a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/lastIndex" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/lastIndex"\x3e\x3ccode\x3elastIndex\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe index at which to start the next match.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/multiline" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/multiline"\x3e\x3ccode\x3emultiline\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eWhether or not to search in strings across multiple lines.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/source" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/source"\x3e\x3ccode\x3esource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe text of the pattern.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/sticky" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/sticky" class \x3d "new "\x3esticky\x3c/a\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding:0px 2px;"\x3eNew in \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/Firefox_3_for_developers"\x3eFirefox 3\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eWhether or not the search is sticky.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3c/dt\x3e See also \x3ca title \x3d "en/JavaScript/Reference/Deprecated_Features#RegExp_Methods" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Deprecated_Features#RegExp_Methods"\x3eDeprecated RegExp Methods\x3c/a\x3e\x3c/dl\x3e \x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/exec" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec"\x3e\x3ccode\x3eexec\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExecutes a search for a match in its string parameter.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/test" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test"\x3e\x3ccode\x3etest\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eTests for a match in its string parameter.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns an object literal representing the specified object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3c/dl\x3e \x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ValueOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ValueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e \x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3e\x3ccode\x3eRegExp\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3e\x3ccode\x3eFunction.prototype\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch","title":"Object.watch","_id":"4eea854ba4c86c4dba0000f5","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eWatches for a property to be assigned a value and runs a function when that occurs.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.6\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eobject\x3c/em\x3e.watch(\x3cem\x3eprop\x3c/em\x3e, \x3cem\x3ehandler\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eprop\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of a property of the object on which you wish to monitor changes.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ehandler\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA function to call when the specified property\'s value changes.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cdiv class \x3d "warning"\x3e\x3cstrong\x3eWarning:\x3c/strong\x3e Generally you should avoid using \x3ccode\x3ewatch()\x3c/code\x3e and \x3ca title \x3d "/en/JavaScript/Reference/Global_Objects/Object/unwatch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch"\x3e\x3ccode\x3eunwatch()\x3c/code\x3e\x3c/a\x3e when possible. These two methods are implemented only in Gecko, and they\'re intended primarily for debugging use. In addition, using watchpoints has a serious negative impact on performance, which is especially true when used on global objects, such as window. You can usually use setters and getters or proxies instead. See \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/watch#Compatibility"\x3eCompatibility\x3c/a\x3e for details.\x3c/div\x3e\n\x3cp\x3eWatches for assignment to a property named \x3ccode\x3eprop\x3c/code\x3e in this object, calling \x3ccode\x3ehandler(prop, oldval, newval)\x3c/code\x3e whenever \x3ccode\x3eprop\x3c/code\x3e is set and storing the return value in that property. A watchpoint can filter (or nullify) the value assignment, by returning a modified \x3ccode\x3enewval\x3c/code\x3e (or by returning \x3ccode\x3eoldval\x3c/code\x3e).\x3c/p\x3e\n\x3cp\x3eIf you delete a property for which a watchpoint has been set, that watchpoint does not disappear. If you later recreate the property, the watchpoint is still in effect.\x3c/p\x3e\n\x3cp\x3eTo remove a watchpoint, use the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/unwatch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch"\x3eunwatch()\x3c/a\x3e\x3c/code\x3e method. By default, the \x3ccode\x3ewatch\x3c/code\x3e method is inherited by every object descended from \x3ccode\x3eObject\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eThe JavaScript debugger has functionality similar to that provided by this method, as well as other debugging options. For information on the debugger, see \x3ca title \x3d "en/Venkman" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Venkman"\x3eVenkman\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eIn Firefox, \x3ccode\x3ehandler\x3c/code\x3e is only called from assignments in script, not from native code. For example, \x3ccode\x3ewindow.watch(\'location\', myHandler)\x3c/code\x3e will not call \x3ccode\x3emyHandler\x3c/code\x3e if the user clicks a link to an anchor within the current document. However, \x3ccode\x3ewindow.location +\x3d \'#myAnchor\'\x3c/code\x3e will call \x3ccode\x3emyHandler\x3c/code\x3e.\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Calling \x3ccode\x3ewatch()\x3c/code\x3e on an object for a specific property overrides and previous handler attached for that property.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_watch_and_unwatch"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3ewatch\x3c/code\x3e and \x3ccode\x3eunwatch\x3c/code\x3e\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {p:1};\no.watch(\x26quot;p\x26quot;,\n  function (id, oldval, newval) {\n    0 \x26\x26 console.log(\x26quot;o.\x26quot; + id + \x26quot; changed from \x26quot; + oldval + \x26quot; to \x26quot; + newval);\n    return newval;\n  });\n\no.p \x3d 2;\no.p \x3d 3;\ndelete o.p;\no.p \x3d 4;\n\no.unwatch(\'p\');\no.p \x3d 5;\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eo.p changed from 1 to 2\no.p changed from 2 to 3\no.p changed from undefined to 4\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_watch_to_validate_an_object.27s_properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_watch_to_validate_an_object\'s_properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3ewatch\x3c/code\x3e to validate an object\'s properties\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3ewatch\x3c/code\x3e to test any assignment to an object\'s properties. This example ensures that every Person always has a valid name and an age between 0 and 200.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ePerson \x3d function(name,age) {\n  this.watch(\x26quot;age\x26quot;, Person.prototype._isValidAssignment);\n  this.watch(\x26quot;name\x26quot;, Person.prototype._isValidAssignment);\n  this.name \x3d name;\n  this.age \x3d age;\n}\n\nPerson.prototype.toString \x3d function() {\n  return this.name + \x26quot;, \x26quot; + this.age;\n};\n\nPerson.prototype._isValidAssignment \x3d function(id, oldval, newval) {\n  if (id \x3d\x3d\x3d \x26quot;name\x26quot; \x26amp;\x26amp; (!newval || newval.length \x26gt; 30)) {\n    throw new RangeError(\x26quot;invalid name for \x26quot; + this);\n  }\n  if (id \x3d\x3d\x3d \x26quot;age\x26quot;  \x26amp;\x26amp; (newval \x26lt; 0 || newval \x26gt; 200)) {\n    throw new RangeError(\x26quot;invalid age for \x26quot; + this);\n  }\n  return newval;\n}\n\nwill \x3d new Person(\x26quot;Will\x26quot;, 29);\nprint(will);   // Will, 29\n\ntry {\n  will.name \x3d \x26quot;\x26quot;;\n} catch (e) {\n  print(e);\n}\n\ntry {\n  will.age \x3d -4;\n} catch (e) {\n  print(e);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eWill, 29\nRangeError: invalid name for Will, 29\nRangeError: invalid age for Will, 29\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_watch_and_unwatch"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3ewatch\x3c/code\x3e and \x3ccode\x3eunwatch\x3c/code\x3e\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar o \x3d {p:1};\no.watch(\x26quot;p\x26quot;,\n  function (id, oldval, newval) {\n    0 \x26\x26 console.log(\x26quot;o.\x26quot; + id + \x26quot; changed from \x26quot; + oldval + \x26quot; to \x26quot; + newval);\n    return newval;\n  });\n\no.p \x3d 2;\no.p \x3d 3;\ndelete o.p;\no.p \x3d 4;\n\no.unwatch(\'p\');\no.p \x3d 5;\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eo.p changed from 1 to 2\no.p changed from 2 to 3\no.p changed from undefined to 4\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_watch_to_validate_an_object.27s_properties"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_watch_to_validate_an_object\'s_properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3ewatch\x3c/code\x3e to validate an object\'s properties\x3c/h3\x3e\n\x3cp\x3eYou can use \x3ccode\x3ewatch\x3c/code\x3e to test any assignment to an object\'s properties. This example ensures that every Person always has a valid name and an age between 0 and 200.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ePerson \x3d function(name,age) {\n  this.watch(\x26quot;age\x26quot;, Person.prototype._isValidAssignment);\n  this.watch(\x26quot;name\x26quot;, Person.prototype._isValidAssignment);\n  this.name \x3d name;\n  this.age \x3d age;\n}\n\nPerson.prototype.toString \x3d function() {\n  return this.name + \x26quot;, \x26quot; + this.age;\n};\n\nPerson.prototype._isValidAssignment \x3d function(id, oldval, newval) {\n  if (id \x3d\x3d\x3d \x26quot;name\x26quot; \x26amp;\x26amp; (!newval || newval.length \x26gt; 30)) {\n    throw new RangeError(\x26quot;invalid name for \x26quot; + this);\n  }\n  if (id \x3d\x3d\x3d \x26quot;age\x26quot;  \x26amp;\x26amp; (newval \x26lt; 0 || newval \x26gt; 200)) {\n    throw new RangeError(\x26quot;invalid age for \x26quot; + this);\n  }\n  return newval;\n}\n\nwill \x3d new Person(\x26quot;Will\x26quot;, 29);\nprint(will);   // Will, 29\n\ntry {\n  will.name \x3d \x26quot;\x26quot;;\n} catch (e) {\n  print(e);\n}\n\ntry {\n  will.age \x3d -4;\n} catch (e) {\n  print(e);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eWill, 29\nRangeError: invalid name for Will, 29\nRangeError: invalid age for Will, 29\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3eThis \x3cspan class \x3d "external"\x3e\x3ca class \x3d "link-https" title \x3d "https://gist.github.com/384583" rel \x3d "external" href \x3d "https://gist.github.com/384583" target \x3d "_blank"\x3ePolyfill\x3c/a\x3e that offers watch to all ES5 compatible browser\x3c/span\x3e\x3c/li\x3e \x3cli\x3eUsing a \x3ca title \x3d "Proxy" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Proxy"\x3eProxy\x3c/a\x3e enables you do that even deeper changes to how property assignments work\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/unwatch" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/unwatch"\x3eunwatch()\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description",
"Examples","Example: Using watch and unwatch","Example: Using watch to validate an object's properties","Compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/global","title":"RegExp.global","_id":"4eea854ba4c86c4dba0000f6","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eWhether or not the \x26quot;\x3ccode\x3eg\x3c/code\x3e\x26quot; flag is used with the regular expression.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/RegExp" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/RegExp"\x3eRegExp\x3c/a\x3e instances\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd colspan \x3d "2"\x3e\n\x3cp\x3e\x3cb\x3eRead-only\x3c/b\x3e\n\x3c/p\x3e\n\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.2, NES3.0\n\x3cp\x3eJavaScript 1.5: \x3ccode\x3eglobal\x3c/code\x3e is a property of a \x3ccode\x3eRegExp\x3c/code\x3e instance, not the \x3ccode\x3eRegExp\x3c/code\x3e object.\n\x3c/p\x3e\n\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262, Edition 3\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eglobal\x3c/code\x3e is a property of an individual regular expression object.\n\x3c/p\x3e\x3cp\x3eThe value of \x3ccode\x3eglobal\x3c/code\x3e is true if the \x26quot;\x3ccode\x3eg\x3c/code\x3e\x26quot; flag was used; otherwise, \x3ccode\x3efalse\x3c/code\x3e. The \x26quot;\x3ccode\x3eg\x3c/code\x3e\x26quot; flag indicates that the regular expression should be tested against all possible matches in a string.\n\x3c/p\x3e\x3cp\x3eYou cannot change this property directly.\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/ignoreCase","title":"RegExp.ignoreCase","_id":"4eea854da4c86c4dba0000f7","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eWhether or not the \x26quot;\x3ccode\x3ei\x3c/code\x3e\x26quot; flag is used with the regular expression.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/RegExp" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/RegExp"\x3eRegExp\x3c/a\x3e instances\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.2, NES3.0\n\x3cp\x3eJavaScript 1.5: \x3ccode\x3eignoreCase\x3c/code\x3e is a property of a \x3ccode\x3eRegExp\x3c/code\x3e instance, not the \x3ccode\x3eRegExp\x3c/code\x3e object.\n\x3c/p\x3e\n\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262, Edition 3\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eignoreCase\x3c/code\x3e is a property of an individual regular expression object.\n\x3c/p\x3e\x3cp\x3eThe value of \x3ccode\x3eignoreCase\x3c/code\x3e is true if the \x26quot;\x3ccode\x3ei\x3c/code\x3e\x26quot; flag was used; otherwise, false. The \x26quot;\x3ccode\x3ei\x3c/code\x3e\x26quot; flag indicates that case should be ignored while attempting a match in a string.\n\x3c/p\x3e\x3cp\x3eYou cannot change this property directly.\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/multiline","title":"RegExp.multiline","_id":"4eea854ea4c86c4dba0000f8","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReflects whether or not to search in strings across multiple lines.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/RegExp" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/RegExp"\x3eRegExp\x3c/a\x3e instances\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd colspan \x3d "2"\x3e\n\x3cp\x3e\x3cb\x3eStatic\x3c/b\x3e\n\x3c/p\x3e\n\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.2, NES3.0\n\x3cp\x3eJavaScript 1.5: \x3ccode\x3emultiline\x3c/code\x3e is a property of a \x3ccode\x3eRegExp\x3c/code\x3e instance, not the \x3ccode\x3eRegExp\x3c/code\x3e object.\n\x3c/p\x3e\n\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262, Edition 3\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3emultiline\x3c/code\x3e is a property of an individual regular expression object..\n\x3c/p\x3e\x3cp\x3eThe value of \x3ccode\x3emultiline\x3c/code\x3e is true if the \x26quot;\x3ccode\x3em\x3c/code\x3e\x26quot; flag was used; otherwise, false. The \x26quot;\x3ccode\x3em\x3c/code\x3e\x26quot; flag indicates that a multiline input string should be treated as multiple lines. For example, if \x26quot;\x3ccode\x3em\x3c/code\x3e\x26quot; is used, \x26quot;\x3ccode\x3e^\x3c/code\x3e\x26quot; and \x26quot;\x3ccode\x3e$\x3c/code\x3e\x26quot; change from matching at only the start or end of the entire string to the start or end of any line within the string.\n\x3c/p\x3e\x3cp\x3eYou cannot change this property directly.\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/lastIndex","title":"RegExp.lastIndex","_id":"4eea854fa4c86c4dba0000f9","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eA read/write integer property that specifies the index at which to start the next match.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/RegExp" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/RegExp"\x3eRegExp\x3c/a\x3e\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.2, NES3.0\n\x3cp\x3eJavaScript 1.5: \x3ccode\x3elastIndex\x3c/code\x3e is a property of a \x3ccode\x3eRegExp\x3c/code\x3e instance, not the \x3ccode\x3eRegExp\x3c/code\x3e object.\n\x3c/p\x3e\n\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262, Edition 3\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3elastIndex\x3c/code\x3e is a property of an individual regular expression object.\n\x3c/p\x3e\x3cp\x3eThis property is set only if the regular expression used the \x26quot;\x3ccode\x3eg\x3c/code\x3e\x26quot; flag to indicate a global search. The following rules apply:\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e If \x3ccode\x3elastIndex\x3c/code\x3e is greater than the length of the string, \x3ccode\x3eregexp.test\x3c/code\x3e and \x3ccode\x3eregexp.exec\x3c/code\x3e fail, and \x3ccode\x3elastIndex\x3c/code\x3e is set to 0.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cul\x3e\x3cli\x3e If \x3ccode\x3elastIndex\x3c/code\x3e is equal to the length of the string and if the regular expression matches the empty string, then the regular expression matches input starting at \x3ccode\x3elastIndex\x3c/code\x3e.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cul\x3e\x3cli\x3e If \x3ccode\x3elastIndex\x3c/code\x3e is equal to the length of the string and if the regular expression does not match the empty string, then the regular expression mismatches input, and \x3ccode\x3elastIndex\x3c/code\x3e is reset to 0.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cul\x3e\x3cli\x3e Otherwise, \x3ccode\x3elastIndex\x3c/code\x3e is set to the next position following the most recent match.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eFor example, consider the following sequence of statements:\n\x3c/p\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ere \x3d /(hi)?/g\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Matches the empty string. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ere(\x26quot;hi\x26quot;)\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Returns \x3ccode\x3e[\x26quot;hi\x26quot;, \x26quot;hi\x26quot;]\x3c/code\x3e with \x3ccode\x3elastIndex\x3c/code\x3e equal to 2. \x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ere(\x26quot;hi\x26quot;)\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Returns \x3ccode\x3e[\x26quot;\x26quot;]\x3c/code\x3e, an empty array whose zeroth element is the match string. In this case, the empty string because \x3ccode\x3elastIndex\x3c/code\x3e was 2 (and still is 2) and \x26quot;\x3ccode\x3ehi\x3c/code\x3e\x26quot; has length 2.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e'],
"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/source","title":"RegExp.source","_id":"4eea854fa4c86c4dba0000fa","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eA read-only property that contains the text of the pattern, excluding the forward slashes.\n\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e\n\x3ctr\x3e\n\x3ctd class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/RegExp" title \x3d "en/Core_JavaScript_1.5_Reference/Objects/RegExp"\x3eRegExp\x3c/a\x3e instances\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd colspan \x3d "2"\x3e\n\x3cp\x3e\x3cb\x3eStatic\x3c/b\x3e\n\x3c/p\x3e\n\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eImplemented in:\x3c/td\x3e\n\x3ctd\x3eJavaScript 1.2, NES3.0\n\x3cp\x3eJavaScript 1.5: \x3ccode\x3esource\x3c/code\x3e is a property of a \x3ccode\x3eRegExp\x3c/code\x3e instance, not the \x3ccode\x3eRegExp\x3c/code\x3e object.\n\x3c/p\x3e\n\x3c/td\x3e\n\x3c/tr\x3e\n\x3ctr\x3e\n\x3ctd\x3eECMA Version:\x3c/td\x3e\n\x3ctd\x3eECMA-262, Edition 3\x3c/td\x3e\n\x3c/tr\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3esource\x3c/code\x3e is a property of an individual regular expression object.\n\x3c/p\x3e\x3cp\x3eYou cannot change this property directly.\n\x3c/p\x3e\x3c/div\x3e'],"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test","title":"RegExp.test","_id":"4eea855aa4c86c4dba0000fb",
"sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eExecutes the search for a match between a regular expression and a specified string. Returns \x3ccode\x3etrue\x3c/code\x3e or \x3ccode\x3efalse\x3c/code\x3e.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3e\x3ccode\x3eRegExp\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eregexp\x3c/em\x3e.test([\x3cem\x3estr\x3c/em\x3e]) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eregexp\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of the regular expression. It can be a variable name or a literal.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estr\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe string against which to match the regular expression.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eWhen you want to know whether a pattern is found in a string use the \x3ccode\x3etest\x3c/code\x3e method (similar to the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/search" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/search"\x3eString.search\x3c/a\x3e\x3c/code\x3e method); for more information (but slower execution) use the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/exec" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec"\x3eexec\x3c/a\x3e\x3c/code\x3e method (similar to the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/match" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match"\x3eString.match\x3c/a\x3e\x3c/code\x3e method). As with \x3ccode\x3e\x3ccode\x3eexec\x3c/code\x3e\x3c/code\x3e (or in combination with it), \x3ccode\x3e\x3ccode\x3etest\x3c/code\x3e\x3c/code\x3e called multiple times on the same global regular expression instance will advance past the previous match.\x3c/p\x3e\n\x3cdiv class \x3d "geckoVersionNote"\x3e \x3cp\x3e\n\x3cdiv class \x3d "geckoVersionHeading"\x3eGecko 8.0 note\x3cdiv style \x3d "font-size:9px; position:relative; top:-5px; font-style:italic;"\x3e(Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)\n\x3c/div\x3e\x3c/div\x3e\n\x3c/p\x3e \x3cp\x3ePrior to Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)\n, \x3ccode\x3etest()\x3c/code\x3e was implemented incorrectly; when it was called with no parameters, it would match against the value of the previous input (RegExp.input property) instead of against the string \x26quot;undefined\x26quot;. This is fixed; now \x3ccode\x3e/undefined/.test()\x3c/code\x3e correctly results in \x3ccode\x3etrue\x3c/code\x3e, instead of an error.\x3c/p\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_test"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etest\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example prints a message which depends on the success of the test:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction testinput(re, str){\n   if (re.test(str)) {\n      midstring \x3d \x26quot; contains \x26quot;;\n   } else {\n      midstring \x3d \x26quot; does not contain \x26quot;;\n   }\n   document.write (str + midstring + re.source);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_test"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etest\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example prints a message which depends on the success of the test:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction testinput(re, str){\n   if (re.test(str)) {\n      midstring \x3d \x26quot; contains \x26quot;;\n   } else {\n      midstring \x3d \x26quot; does not contain \x26quot;;\n   }\n   document.write (str + midstring + re.source);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using test"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec","title":"RegExp.exec","_id":"4eea855aa4c86c4dba0000fc","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eExecutes a search for a match in a specified string. Returns a result array, or \x3ccode\x3enull\x3c/code\x3e.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3e\x3ccode\x3eRegExp\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eresult\x3c/em\x3e \x3d \x3cem\x3eregexp\x3c/em\x3e.exec(\x3cem\x3estr\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eregexp\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe name of the regular expression. It can be a variable name or a literal.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estr\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe string against which to match the regular expression.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf the match succeeds, the \x3ccode\x3eexec\x3c/code\x3e method returns an array and updates properties of the regular expression object. The returned array has the matched text as the first item, and then one item for each capturing parenthesis that matched containing the text that was captured.\x26nbsp; If the match fails, the \x3ccode\x3eexec\x3c/code\x3e method returns \x3ccode\x3enull\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eIf you are executing a match simply to find true or false, use the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/test" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test"\x3etest\x3c/a\x3e\x3c/code\x3e method or the \x3ccode\x3eString\x3c/code\x3e \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/search" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/search"\x3esearch\x3c/a\x3e\x3c/code\x3e method.\x3c/p\x3e\n\x3cp\x3eConsider the following example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Match one d followed by one or more b\'s followed by one d\n// Remember matched b\'s and the following d\n// Ignore case\nvar re \x3d /d(b+)(d)/ig;\nvar result \x3d re.exec(\x26quot;cdbBdbsbz\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eThe following table shows the results for this script:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eObject\x3c/td\x3e \x3ctd class \x3d "header"\x3eProperty/Index\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3ctd class \x3d "header"\x3eExample\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "5"\x3e\x3ccode\x3eresult\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26nbsp;\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe content of \x3ccode\x3emyArray\x3c/code\x3e.\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[\x26quot;dbBd\x26quot;, \x26quot;bB\x26quot;, \x26quot;d\x26quot;]\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eindex\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe 0-based index of the match in the string.\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e1\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3einput\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe original string.\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ecdbBdbsbz\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[0]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe last matched characters\x3c/td\x3e \x3ctd\x3e\x3ccode\x3edbBd\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e[1], ...[\x3cem\x3en\x3c/em\x3e]\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe parenthesized substring matches, if any. The number of possible parenthesized substrings is unlimited.\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e[1] \x3d bB\x3cbr/\x3e [2] \x3d d\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd rowspan \x3d "5"\x3e\x3ccode\x3ere\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3elastIndex\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe index at which to start the next match.\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e5\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eignoreCase\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eIndicates if the \x26quot;\x3ccode\x3ei\x3c/code\x3e\x26quot; flag was used to ignore case.\x3c/td\x3e \x3ctd\x3e\x3ccode\x3etrue\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eglobal\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eIndicates if the \x26quot;\x3ccode\x3eg\x3c/code\x3e\x26quot; flag was used for a global match.\x3c/td\x3e \x3ctd\x3e\x3ccode\x3etrue\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3emultiline\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eIndicates if the \x26quot;\x3ccode\x3em\x3c/code\x3e\x26quot; flag was used to search in strings across multiple line.\x3c/td\x3e \x3ctd\x3e\x3ccode\x3efalse\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3esource\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe text of the pattern.\x3c/td\x3e \x3ctd\x3e\x3ccode\x3ed(b+)(d)\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cdiv class \x3d "geckoVersionNote"\x3e \x3cp\x3e\n\x3cdiv class \x3d "geckoVersionHeading"\x3eGecko 8.0 note\x3cdiv style \x3d "font-size:9px; position:relative; top:-5px; font-style:italic;"\x3e(Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)\n\x3c/div\x3e\x3c/div\x3e\n\x3c/p\x3e \x3cp\x3ePrior to Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)\n, \x3ccode\x3eexec()\x3c/code\x3e was implemented incorrectly; when it was called with no parameters, it would match against the value of the previous input (RegExp.input property) instead of against the string \x26quot;undefined\x26quot;. This is fixed; now \x3ccode\x3e/undefined/.exec()\x3c/code\x3e correctly results in \x3ccode\x3e[\'undefined\']\x3c/code\x3e, instead of an error.\x3c/p\x3e\n\x3c/div\x3e\n\x3cp\x3eIf your regular expression uses the \x26quot;\x3ccode\x3eg\x3c/code\x3e\x26quot; flag, you can use the \x3ccode\x3eexec\x3c/code\x3e method multiple times to find successive matches in the same string. When you do so, the search starts at the substring of \x3ccode\x3estr\x3c/code\x3e specified by the regular expression\'s \x3ccode\x3elastIndex\x3c/code\x3e property (\x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/test" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test"\x3etest\x3c/a\x3e\x3c/code\x3e will also advance the \x3ccode\x3elastIndex\x3c/code\x3e property). For example, assume you have this script:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar myRe \x3d /ab*/g;\nvar str \x3d \x26quot;abbcdefabh\x26quot;;\nvar myArray;\nwhile ((myArray \x3d myRe.exec(str)) !\x3d null)\n{\n  var msg \x3d \x26quot;Found \x26quot; + myArray[0] + \x26quot;.  \x26quot;;\n  msg +\x3d \x26quot;Next match starts at \x26quot; + myRe.lastIndex;\n  print(msg);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following text:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nFound abb. Next match starts at 3\nFound ab. Next match starts at 9\n\x3c/pre\x3e\n\x3cp\x3eYou can also use \x3ccode\x3eexec()\x3c/code\x3e without creating a RegExp object:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar matches \x3d /(hello \\S+)/.exec(\'This is a hello world!\');\nalert(matches[1]);\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;This will display an alert containing \'hello world!\';\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toSource","title":"RegExp.toSource","_id":"4eea855ba4c86c4dba0000fd","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code of the object.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp" title \x3d "en/JavaScript/Reference/Global_Objects/RegExp"\x3e\x3ccode\x3eRegExp\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eregexp\x3c/em\x3e.toSource()\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\n\x3c/p\x3e\x3cp\x3e\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For the built-in \x3ccode\x3eRegExp\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\n\x3c/li\x3e\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3efunction RegExp() {[native code]}\n\x3c/pre\x3e\n\x3cul\x3e\x3cli\x3e For instances of \x3ccode\x3eRegExp\x3c/code\x3e, \x3ccode\x3etoSource\x3c/code\x3e returns a string representing the source code.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace",
"title":"String.replace","_id":"4eea855ca4c86c4dba0000fe","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a new string with some or all matches of a \x3ccode\x3epattern\x3c/code\x3e replaced by a \x3ccode\x3ereplacement\x3c/code\x3e.\x26nbsp; The \x3ccode\x3epattern\x3c/code\x3e can be a string or a RegExp, and the \x3ccode\x3ereplacement\x3c/code\x3e can be a string or a function to be called for each match.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estr\x3c/em\x3e.replace(\x3cem\x3eregexp|substr\x3c/em\x3e, \x3cem\x3enewSubStr|function[\x3c/em\x3e, \x3c/code\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e      \x3ccode\x3e\x3cem\x3eflags]\x3c/em\x3e);\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eregexp\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3eRegExp\x3c/a\x3e object. The match is replaced by the return value of parameter #2.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esubstr\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String"\x3eString\x3c/a\x3e that is to be replaced by \x3ccode\x3enewSubStr\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3enewSubStr\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String"\x3eString\x3c/a\x3e that replaces the substring received from parameter #1. A number of special replacement patterns are supported; see the \x26quot;Specifying a string as a parameter\x26quot; section below.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efunction\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA function to be invoked to create the new substring (to put in place of the substring received from parameter #1). The arguments supplied to this function are described in the \x26quot;Specifying a function as a parameter\x26quot; section below.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eflags\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     A string specifying a combination of regular expression flags. The use of the flags parameter in the String.replace method is non-standard, use a RegExp object with the corresponding flags. \x3cdl\x3e \x3cdt\x3e\x3ccode\x3eg\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eglobal match\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ei\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eignore case\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3em\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3ematch over multiple lines\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ey\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3esticky\x3c/dd\x3e \x3c/dl\x3e \x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThis method does not change the \x3ccode\x3eString\x3c/code\x3e object it is called on. It simply returns a new string.\x3c/p\x3e\n\x3cp\x3eTo perform a global search and replace, either include the \x3ccode\x3eg\x3c/code\x3e switch in the regular expression or if the first parameter is a string, include \x3ccode\x3eg\x3c/code\x3e in the \x3ccode\x3eflags\x3c/code\x3e parameter.\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Specifying_a_string_as_a_parameter"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eSpecifying a string as a parameter\x3c/h4\x3e\n\x3cp\x3eThe replacement string can include the following special replacement patterns:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ePattern\x3c/td\x3e \x3ctd class \x3d "header"\x3eInserts\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$$\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInserts a \x26quot;$\x26quot;.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$\x26amp;\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInserts the matched substring.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$`\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInserts the portion of the string that precedes the matched substring.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$\'\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInserts the portion of the string that follows the matched substring.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd style \x3d "white-space: nowrap;"\x3e\x3ccode\x3e$\x3cem\x3en\x3c/em\x3e\x3c/code\x3e or \x3ccode\x3e$\x3cem\x3enn\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e or \x3ccode\x3e\x3cem\x3enn\x3c/em\x3e\x3c/code\x3e are decimal digits, inserts the \x3cem\x3en\x3c/em\x3eth parenthesized submatch string, provided the first argument was a \x3ccode\x3eRegExp\x3c/code\x3e object.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Specifying_a_function_as_a_parameter"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eSpecifying a function as a parameter\x3c/h4\x3e\n\x3cp\x3eYou can specify a function as the second parameter. In this case, the function will be invoked after the match has been performed. The function\'s result (return value) will be used as the replacement string. (Note: the above-mentioned special replacement patterns do \x3cem\x3enot\x3c/em\x3e apply in this case.) Note that the function will be invoked multiple times for each full match to be replaced if the regular expression in the first parameter is global.\x3c/p\x3e\n\x3cp\x3eThe arguments to the function are as follows:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ePossible name\x3c/td\x3e \x3ctd class \x3d "header"\x3eSupplied value\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3estr\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe matched substring. (Corresponds to $\x26amp; above.)\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ep1, p2, ...\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe \x3cem\x3en\x3c/em\x3eth parenthesized submatch string, provided the first argument to \x3ccode\x3ereplace\x3c/code\x3e was a \x3ccode\x3eRegExp\x3c/code\x3e object. (Correspond to $1, $2, etc. above.)\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eoffset\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe offset of the matched substring within the total string being examined. (For example, if the total string was \x3ccode\x3e\x26quot;abcd\x26quot;\x3c/code\x3e, and the matched substring was \x3ccode\x3e\x26quot;bc\x26quot;\x3c/code\x3e, then this argument will be \x3ccode\x3e1\x3c/code\x3e.)\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd style \x3d "white-space: nowrap;"\x3e\x3ccode\x3es\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe total string being examined.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3e(The exact number of arguments will depend on whether the first argument was a \x3ccode\x3eRegExp \x3c/code\x3eobject and, if so, how many parenthesized submatches it specifies.)\x3c/p\x3e\n\x3cp\x3eThe following example will set \x3ccode\x3enewString \x3c/code\x3eto \x3ccode style \x3d "white-space: nowrap;"\x3e\x26quot;XXzzzz - XX , zzzz\x26quot;\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction replacer(str, p1, p2, offset, s)\n{\n  return str + \x26quot; - \x26quot; + p1 + \x26quot; , \x26quot; + p2;\n}\nvar newString \x3d \x26quot;XXzzzz\x26quot;.replace(/(X*)(z*)/, replacer);\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Specifying_a_string_as_a_parameter"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eSpecifying a string as a parameter\x3c/h4\x3e\n\x3cp\x3eThe replacement string can include the following special replacement patterns:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ePattern\x3c/td\x3e \x3ctd class \x3d "header"\x3eInserts\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$$\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInserts a \x26quot;$\x26quot;.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$\x26amp;\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInserts the matched substring.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$`\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInserts the portion of the string that precedes the matched substring.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e$\'\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eInserts the portion of the string that follows the matched substring.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd style \x3d "white-space: nowrap;"\x3e\x3ccode\x3e$\x3cem\x3en\x3c/em\x3e\x3c/code\x3e or \x3ccode\x3e$\x3cem\x3enn\x3c/em\x3e\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eWhere \x3ccode\x3e\x3cem\x3en\x3c/em\x3e\x3c/code\x3e or \x3ccode\x3e\x3cem\x3enn\x3c/em\x3e\x3c/code\x3e are decimal digits, inserts the \x3cem\x3en\x3c/em\x3eth parenthesized submatch string, provided the first argument was a \x3ccode\x3eRegExp\x3c/code\x3e object.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Specifying_a_function_as_a_parameter"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eSpecifying a function as a parameter\x3c/h4\x3e\n\x3cp\x3eYou can specify a function as the second parameter. In this case, the function will be invoked after the match has been performed. The function\'s result (return value) will be used as the replacement string. (Note: the above-mentioned special replacement patterns do \x3cem\x3enot\x3c/em\x3e apply in this case.) Note that the function will be invoked multiple times for each full match to be replaced if the regular expression in the first parameter is global.\x3c/p\x3e\n\x3cp\x3eThe arguments to the function are as follows:\x3c/p\x3e\n\x3ctable class \x3d "fullwidth-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3ePossible name\x3c/td\x3e \x3ctd class \x3d "header"\x3eSupplied value\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3estr\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe matched substring. (Corresponds to $\x26amp; above.)\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ep1, p2, ...\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe \x3cem\x3en\x3c/em\x3eth parenthesized submatch string, provided the first argument to \x3ccode\x3ereplace\x3c/code\x3e was a \x3ccode\x3eRegExp\x3c/code\x3e object. (Correspond to $1, $2, etc. above.)\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eoffset\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe offset of the matched substring within the total string being examined. (For example, if the total string was \x3ccode\x3e\x26quot;abcd\x26quot;\x3c/code\x3e, and the matched substring was \x3ccode\x3e\x26quot;bc\x26quot;\x3c/code\x3e, then this argument will be \x3ccode\x3e1\x3c/code\x3e.)\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd style \x3d "white-space: nowrap;"\x3e\x3ccode\x3es\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe total string being examined.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3cp\x3e(The exact number of arguments will depend on whether the first argument was a \x3ccode\x3eRegExp \x3c/code\x3eobject and, if so, how many parenthesized submatches it specifies.)\x3c/p\x3e\n\x3cp\x3eThe following example will set \x3ccode\x3enewString \x3c/code\x3eto \x3ccode style \x3d "white-space: nowrap;"\x3e\x26quot;XXzzzz - XX , zzzz\x26quot;\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction replacer(str, p1, p2, offset, s)\n{\n  return str + \x26quot; - \x26quot; + p1 + \x26quot; , \x26quot; + p2;\n}\nvar newString \x3d \x26quot;XXzzzz\x26quot;.replace(/(X*)(z*)/, replacer);\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Using_global_and_ignore_with_replace"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eglobal\x3c/code\x3e and \x3ccode\x3eignore\x3c/code\x3e with \x3ccode\x3ereplace\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, the regular expression includes the global and ignore case flags which permits \x3ccode\x3ereplace\x3c/code\x3e to replace each occurrence of \'apples\' in the string with \'oranges\'.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar re \x3d /apples/gi;\nvar str \x3d \x26quot;Apples are round, and apples are juicy.\x26quot;;\nvar newstr \x3d str.replace(re, \x26quot;oranges\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eIn this version, a string is used as the first parameter and the global and ignore case flags are specified in the \x3ccode\x3eflags\x3c/code\x3e parameter.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar str \x3d \x26quot;Apples are round, and apples are juicy.\x26quot;;\nvar newstr \x3d str.replace(\x26quot;apples\x26quot;, \x26quot;oranges\x26quot;, \x26quot;gi\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eBoth of these examples print \x26quot;oranges are round, and oranges are juicy.\x26quot;\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Defining_the_regular_expression_in_replace"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Defining the regular expression in \x3ccode\x3ereplace\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, the regular expression is defined in \x3ccode\x3ereplace\x3c/code\x3e and includes the ignore case flag.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar str \x3d \x26quot;Twas the night before Xmas...\x26quot;;\nvar newstr \x3d str.replace(/xmas/i, \x26quot;Christmas\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis prints \x26quot;Twas the night before Christmas...\x26quot;\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example:_Switching_words_in_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Switching words in a string\x3c/h4\x3e\n\x3cp\x3eThe following script switches the words in the string. For the replacement text, the script uses the \x3ccode\x3e$1\x3c/code\x3e and \x3ccode\x3e$2\x3c/code\x3e replacement patterns.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar re \x3d /(\\w+)\\s(\\w+)/;\nvar str \x3d \x26quot;John Smith\x26quot;;\nvar newstr \x3d str.replace(re, \x26quot;$2, $1\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis prints \x26quot;Smith, John\x26quot;.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Example:_Using_an_inline_function_that_modifies_the_matched_characters"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using an inline function that modifies the matched characters\x3c/h4\x3e\n\x3cp\x3eIn this example, all occurrences of capital letters in the string are converted to lower case, and a hyphen is inserted just before the match location. The important thing here is that additional operations are needed on the matched item before it is given back as a replacement.\x3c/p\x3e\n\x3cp\x3eThe replacement function accepts the matched snippet as its parameter, and uses it to transform the case and concatenate the hyphen before returning.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction styleHyphenFormat(propertyName)\n{\n  function upperToHyphenLower(match)\n  {\n    return \'-\' + match.toLowerCase();\n  }\n  return propertyName.replace(/[A-Z]/, upperToHyphenLower);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eGiven \x3ccode\x3estyleHyphenFormat(\'borderTop\')\x3c/code\x3e, this returns \'border-top\'.\x3c/p\x3e\n\x3cp\x3eBecause we want to further transform the \x3cem\x3eresult\x3c/em\x3e of the match before the final substitution is made, we must use a function. This forces the evaluation of the match prior to the \x3ccode\x3etoLowerCase()\x3c/code\x3e method. If we had tried to do this using the match without a function, the toLowerCase() would have no effect.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar newString \x3d propertyName.replace(/[A-Z]/, \'-\' + \'$\x26amp;\'.toLowerCase());  // won\'t work\x3c/pre\x3e\r\n        \n\x3cp\x3eThis is because \x3ccode\x3e\'$\x26amp;\'.toLowerCase()\x3c/code\x3e would be evaluated first as a string literal (resulting in the same \x3ccode\x3e\'$\x26amp;\'\x3c/code\x3e) before using the characters as a pattern.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Replacing_a_Fahrenheit_degree_with_its_Celsius_equivalent"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Replacing a Fahrenheit degree with its Celsius equivalent\x3c/h4\x3e\n\x3cp\x3eThe following example replaces a Fahrenheit degree with its equivalent Celsius degree. The Fahrenheit degree should be a number ending with F. The function returns the Celsius number ending with C. For example, if the input number is 212F, the function returns 100C. If the number is 0F, the function returns -17.77777777777778C.\x3c/p\x3e\n\x3cp\x3eThe regular expression \x3ccode\x3etest\x3c/code\x3e checks for any number that ends with F. The number of Fahrenheit degree is accessible to the function through its second parameter, \x3ccode\x3ep1\x3c/code\x3e. The function sets the Celsius number based on the Fahrenheit degree passed in a string to the \x3ccode\x3ef2c\x3c/code\x3e function. \x3ccode\x3ef2c\x3c/code\x3e then returns the Celsius number. This function approximates Perl\'s s///e flag.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction f2c(x)\n{\n  function convert(str, p1, offset, s)\n  {\n    return ((p1-32) * 5/9) + \x26quot;C\x26quot;;\n  }\n  var s \x3d String(x);\n  var test \x3d /(\\d+(?:\\.\\d*)?)F\\b/g;\n  return s.replace(test, convert);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Using_global_and_ignore_with_replace"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eglobal\x3c/code\x3e and \x3ccode\x3eignore\x3c/code\x3e with \x3ccode\x3ereplace\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, the regular expression includes the global and ignore case flags which permits \x3ccode\x3ereplace\x3c/code\x3e to replace each occurrence of \'apples\' in the string with \'oranges\'.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar re \x3d /apples/gi;\nvar str \x3d \x26quot;Apples are round, and apples are juicy.\x26quot;;\nvar newstr \x3d str.replace(re, \x26quot;oranges\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eIn this version, a string is used as the first parameter and the global and ignore case flags are specified in the \x3ccode\x3eflags\x3c/code\x3e parameter.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar str \x3d \x26quot;Apples are round, and apples are juicy.\x26quot;;\nvar newstr \x3d str.replace(\x26quot;apples\x26quot;, \x26quot;oranges\x26quot;, \x26quot;gi\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eBoth of these examples print \x26quot;oranges are round, and oranges are juicy.\x26quot;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Defining_the_regular_expression_in_replace"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Defining the regular expression in \x3ccode\x3ereplace\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eIn the following example, the regular expression is defined in \x3ccode\x3ereplace\x3c/code\x3e and includes the ignore case flag.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar str \x3d \x26quot;Twas the night before Xmas...\x26quot;;\nvar newstr \x3d str.replace(/xmas/i, \x26quot;Christmas\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis prints \x26quot;Twas the night before Christmas...\x26quot;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example:_Switching_words_in_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Switching words in a string\x3c/h4\x3e\n\x3cp\x3eThe following script switches the words in the string. For the replacement text, the script uses the \x3ccode\x3e$1\x3c/code\x3e and \x3ccode\x3e$2\x3c/code\x3e replacement patterns.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar re \x3d /(\\w+)\\s(\\w+)/;\nvar str \x3d \x26quot;John Smith\x26quot;;\nvar newstr \x3d str.replace(re, \x26quot;$2, $1\x26quot;);\nprint(newstr);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis prints \x26quot;Smith, John\x26quot;.\x3c/p\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_11\"\x3e\x3cspan id \x3d \"Example:_Using_an_inline_function_that_modifies_the_matched_characters\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: Using an inline function that modifies the matched characters\x3c/h4\x3e\n\x3cp\x3eIn this example, all occurrences of capital letters in the string are converted to lower case, and a hyphen is inserted just before the match location. The important thing here is that additional operations are needed on the matched item before it is given back as a replacement.\x3c/p\x3e\n\x3cp\x3eThe replacement function accepts the matched snippet as its parameter, and uses it to transform the case and concatenate the hyphen before returning.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3efunction styleHyphenFormat(propertyName)\n{\n  function upperToHyphenLower(match)\n  {\n    return '-' + match.toLowerCase();\n  }\n  return propertyName.replace(/[A-Z]/, upperToHyphenLower);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eGiven \x3ccode\x3estyleHyphenFormat('borderTop')\x3c/code\x3e, this returns 'border-top'.\x3c/p\x3e\n\x3cp\x3eBecause we want to further transform the \x3cem\x3eresult\x3c/em\x3e of the match before the final substitution is made, we must use a function. This forces the evaluation of the match prior to the \x3ccode\x3etoLowerCase()\x3c/code\x3e method. If we had tried to do this using the match without a function, the toLowerCase() would have no effect.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar newString \x3d propertyName.replace(/[A-Z]/, '-' + '$\x26amp;'.toLowerCase());  // won't work\x3c/pre\x3e\r\n        \n\x3cp\x3eThis is because \x3ccode\x3e'$\x26amp;'.toLowerCase()\x3c/code\x3e would be evaluated first as a string literal (resulting in the same \x3ccode\x3e'$\x26amp;'\x3c/code\x3e) before using the characters as a pattern.\x3c/p\x3e\n\x3c/div\x3e",
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Example:_Replacing_a_Fahrenheit_degree_with_its_Celsius_equivalent"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Replacing a Fahrenheit degree with its Celsius equivalent\x3c/h4\x3e\n\x3cp\x3eThe following example replaces a Fahrenheit degree with its equivalent Celsius degree. The Fahrenheit degree should be a number ending with F. The function returns the Celsius number ending with C. For example, if the input number is 212F, the function returns 100C. If the number is 0F, the function returns -17.77777777777778C.\x3c/p\x3e\n\x3cp\x3eThe regular expression \x3ccode\x3etest\x3c/code\x3e checks for any number that ends with F. The number of Fahrenheit degree is accessible to the function through its second parameter, \x3ccode\x3ep1\x3c/code\x3e. The function sets the Celsius number based on the Fahrenheit degree passed in a string to the \x3ccode\x3ef2c\x3c/code\x3e function. \x3ccode\x3ef2c\x3c/code\x3e then returns the Celsius number. This function approximates Perl\'s s///e flag.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction f2c(x)\n{\n  function convert(str, p1, offset, s)\n  {\n    return ((p1-32) * 5/9) + \x26quot;C\x26quot;;\n  }\n  var s \x3d String(x);\n  var test \x3d /(\\d+(?:\\.\\d*)?)F\\b/g;\n  return s.replace(test, convert);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Specifying a string as a parameter","Specifying a function as a parameter","Examples","Example: Using global and ignore with replace","Example: Defining the regular expression in replace","Example: Switching words in a string","Example: Using an inline function that modifies the matched characters","Example: Replacing a Fahrenheit degree with its Celsius equivalent"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/toString",
"title":"RegExp.toString","_id":"4eea855ca4c86c4dba0000ff","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the specified object.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp" title \x3d "en/JavaScript/Reference/Global_Objects/RegExp"\x3e\x3ccode\x3eRegExp\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eregexp\x3c/em\x3e.toString()\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eRegExp\x3c/code\x3e object overrides the \x3ccode\x3etoString\x3c/code\x3e method of the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/code\x3e object; it does not inherit \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\x3c/code\x3e. For \x3ccode\x3eRegExp\x3c/code\x3e objects, the \x3ccode\x3etoString\x3c/code\x3e method returns a string representation of the regular expression.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3etoString\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example displays the string value of a \x3ccode\x3eRegExp\x3c/code\x3e object:\n\x3c/p\x3e\n\x3cpre\x3e\nmyExp \x3d new RegExp(\x26quot;a+b+c\x26quot;);\nalert(myExp.toString());       // displays \x26quot;/a+b+c/\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3etoString\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example displays the string value of a \x3ccode\x3eRegExp\x3c/code\x3e object:\n\x3c/p\x3e\n\x3cpre\x3e\nmyExp \x3d new RegExp(\x26quot;a+b+c\x26quot;);\nalert(myExp.toString());       // displays \x26quot;/a+b+c/\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e\n\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using toString "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/length","title":"String.length","_id":"4eea8560a4c86c4dba000100","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eThe length of a string.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThis property returns the number of code units in the string. \n\x3ca rel \x3d "custom" href \x3d "http://en.wikipedia.org/wiki/UTF-16"\x3eUTF-16\x3c/a\x3e\n, the string format used by\x26nbsp;JavaScript, uses a single 16-bit code unit to represent the most common characters, but needs to use two code units for less commonly-used characters, so it\'s possible for the value returned by \x3ccode\x3elength\x3c/code\x3e to not match the actual number of characters in the string.\x3c/p\x3e\n\x3cp\x3eFor an empty string, \x3ccode\x3elength\x3c/code\x3e is 0.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x \x3d \x26quot;Netscape\x26quot;;\nvar empty \x3d \x26quot;\x26quot;;\n\n0 \x26\x26 console.log(\x26quot;Netspace is \x26quot; + x.length + \x26quot; code units long\x26quot;);\n0 \x26\x26 console.log(\x26quot;The empty string is has a length of \x26quot; + empty.length); /* should be 0 */\x3c/pre\x3e\r\n        \n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d "external" title \x3d "http://developer.teradata.com/blog/jasonstrimpel/2011/11/javascript-string-length-and-internationalizing-web-applications" rel \x3d "external" href \x3d "http://developer.teradata.com/blog/jasonstrimpel/2011/11/javascript-string-length-and-internationalizing-web-applications" target \x3d "_blank"\x3eJavaScript String.length and Internationalizing Web Applications\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d "external" title \x3d "http://developer.teradata.com/blog/jasonstrimpel/2011/11/javascript-string-length-and-internationalizing-web-applications" rel \x3d "external" href \x3d "http://developer.teradata.com/blog/jasonstrimpel/2011/11/javascript-string-length-and-internationalizing-web-applications" target \x3d "_blank"\x3eJavaScript String.length and Internationalizing Web Applications\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","See also","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring","title":"String.substring","_id":"4eea8561a4c86c4dba000101","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a subset of a \x3ccode\x3estring between one index \x3c/code\x3eand another, or through the end of the string.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.substring(\x3cem\x3eindexA\x3c/em\x3e[, \x3cem\x3eindexB\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eindexA\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn integer between 0 and one less than the length of the string.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eindexB\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3e(optional) An integer between 0 and the length of the string.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3esubstring\x3c/code\x3e extracts characters from \x3ccode\x3eindexA\x3c/code\x3e up to but not including \x3ccode\x3eindexB\x3c/code\x3e. In particular:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eIf \x3ccode\x3eindexA\x3c/code\x3e equals \x3ccode\x3eindexB\x3c/code\x3e, \x3ccode\x3esubstring\x3c/code\x3e returns an empty string.\x3c/li\x3e \x3cli\x3eIf \x3ccode\x3eindexB\x3c/code\x3e is omitted, \x3ccode\x3esubstring\x3c/code\x3e extracts characters to the end of the string.\x3c/li\x3e \x3cli\x3eIf either argument is less than 0 or is \x3ccode\x3eNaN\x3c/code\x3e, it is treated as if it were 0.\x3c/li\x3e \x3cli\x3eIf either argument is greater than \x3ccode\x3estringName.length\x3c/code\x3e, it is treated as if it were \x3ccode\x3estringName.length\x3c/code\x3e.\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3eIf \x3ccode\x3eindexA\x3c/code\x3e is larger than \x3ccode\x3eindexB\x3c/code\x3e, then the effect of \x3ccode\x3esubstring\x3c/code\x3e is as if the two arguments were swapped; for example, \x3ccode\x3e\x3cem\x3estr\x3c/em\x3e.substring(1, 0) \x3d\x3d \x3cem\x3estr\x3c/em\x3e.substring(0, 1)\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_substring"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esubstring\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3esubstring\x3c/code\x3e to display characters from the string \x26quot;\x3ccode\x3eMozilla\x3c/code\x3e\x26quot;:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e// assumes a print function is defined\nvar anyString \x3d \x26quot;Mozilla\x26quot;;\n\n// Displays \x26quot;Moz\x26quot;\nprint(anyString.substring(0,3));\nprint(anyString.substring(3,0));\n\n// Displays \x26quot;lla\x26quot;\nprint(anyString.substring(4,7));\nprint(anyString.substring(7,4));\n\n// Displays \x26quot;Mozill\x26quot;\nprint(anyString.substring(0,6));\n\n// Displays \x26quot;Mozilla\x26quot;\nprint(anyString.substring(0,7));\nprint(anyString.substring(0,10));\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Replacing_a_substring_within_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Replacing a substring within a string\x3c/h4\x3e\n\x3cp\x3eThe following example replaces a substring within a string. It will replace both individual characters and substrings. The function call at the end of the example changes the string \x26quot;\x3ccode\x3eBrave New World\x3c/code\x3e\x26quot; into \x26quot;\x3ccode\x3eBrave New Web\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction replaceString(oldS, newS, fullS) {\n// Replaces oldS with newS in the string fullS\n   for (var i \x3d 0; i \x26lt; fullS.length; i++) {\n      if (fullS.substring(i, i + oldS.length) \x3d\x3d oldS) {\n         fullS \x3d fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);\n      }\n   }\n   return fullS;\n}\n\nreplaceString(\x26quot;World\x26quot;, \x26quot;Web\x26quot;, \x26quot;Brave New World\x26quot;);\x3c/pre\x3e\n\x3cp\x3eNote that this can result in an infinite loop if \x3ccode\x3eoldS\x3c/code\x3e is itself a substring of \x3ccode\x3enewS\x3c/code\x3e -- for example, if you attempted to replace \x26quot;World\x26quot; with \x26quot;OtherWorld\x26quot; here. A better method for replacing strings is as follows:\x3c/p\x3e\n\x3cpre class \x3d "default prettyprint"\x3e\x3ccode\x3e\x3cspan class \x3d "kwd" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3efunction\x3c/span\x3e\x3cspan class \x3d "pln" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e replaceString\x3c/span\x3e\x3cspan class \x3d "pun" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e(\x3c/span\x3e\x3cspan class \x3d "pln" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3eoldS\x3c/span\x3e\x3cspan class \x3d "pun" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e,\x3c/span\x3e\x3cspan class \x3d "pln" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e newS\x3c/span\x3e\x3cspan class \x3d "pun" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e,\x3c/span\x3e\x3cspan class \x3d "kwd" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3efullS\x3c/span\x3e\x3cspan class \x3d "pun" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e){\x3c/span\x3e\x3c/code\x3e\n\x3ccode\x3e\x3cspan class \x3d "pln"\x3e\x26nbsp; \x26nbsp; \x3c/span\x3e\x3cspan class \x3d "kwd"\x3ereturn\x3c/span\x3e\x3cspan class \x3d "pln"\x3e fullS\x3c/span\x3e\x3cspan class \x3d "pun"\x3e.\x3c/span\x3e\x3cspan class \x3d "pln"\x3esplit\x3c/span\x3e\x3cspan class \x3d "pun"\x3e(\x3c/span\x3e\x3cspan class \x3d "pln"\x3eoldS\x3c/span\x3e\x3cspan class \x3d "pun"\x3e).\x3c/span\x3e\x3cspan class \x3d "pln"\x3ejoin\x3c/span\x3e\x3cspan class \x3d "pun"\x3e(\x3c/span\x3e\x3cspan class \x3d "kwd"\x3enewS\x3c/span\x3e\x3cspan class \x3d "pun"\x3e);\x3c/span\x3e\n\x3cspan class \x3d "pun"\x3e}\x3c/span\x3e\n\x3c/code\x3e\x3c/pre\x3e\n\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_substring"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esubstring\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3esubstring\x3c/code\x3e to display characters from the string \x26quot;\x3ccode\x3eMozilla\x3c/code\x3e\x26quot;:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e// assumes a print function is defined\nvar anyString \x3d \x26quot;Mozilla\x26quot;;\n\n// Displays \x26quot;Moz\x26quot;\nprint(anyString.substring(0,3));\nprint(anyString.substring(3,0));\n\n// Displays \x26quot;lla\x26quot;\nprint(anyString.substring(4,7));\nprint(anyString.substring(7,4));\n\n// Displays \x26quot;Mozill\x26quot;\nprint(anyString.substring(0,6));\n\n// Displays \x26quot;Mozilla\x26quot;\nprint(anyString.substring(0,7));\nprint(anyString.substring(0,10));\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Replacing_a_substring_within_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Replacing a substring within a string\x3c/h4\x3e\n\x3cp\x3eThe following example replaces a substring within a string. It will replace both individual characters and substrings. The function call at the end of the example changes the string \x26quot;\x3ccode\x3eBrave New World\x3c/code\x3e\x26quot; into \x26quot;\x3ccode\x3eBrave New Web\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3efunction replaceString(oldS, newS, fullS) {\n// Replaces oldS with newS in the string fullS\n   for (var i \x3d 0; i \x26lt; fullS.length; i++) {\n      if (fullS.substring(i, i + oldS.length) \x3d\x3d oldS) {\n         fullS \x3d fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);\n      }\n   }\n   return fullS;\n}\n\nreplaceString(\x26quot;World\x26quot;, \x26quot;Web\x26quot;, \x26quot;Brave New World\x26quot;);\x3c/pre\x3e\n\x3cp\x3eNote that this can result in an infinite loop if \x3ccode\x3eoldS\x3c/code\x3e is itself a substring of \x3ccode\x3enewS\x3c/code\x3e -- for example, if you attempted to replace \x26quot;World\x26quot; with \x26quot;OtherWorld\x26quot; here. A better method for replacing strings is as follows:\x3c/p\x3e\n\x3cpre class \x3d "default prettyprint"\x3e\x3ccode\x3e\x3cspan class \x3d "kwd" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3efunction\x3c/span\x3e\x3cspan class \x3d "pln" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e replaceString\x3c/span\x3e\x3cspan class \x3d "pun" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e(\x3c/span\x3e\x3cspan class \x3d "pln" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3eoldS\x3c/span\x3e\x3cspan class \x3d "pun" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e,\x3c/span\x3e\x3cspan class \x3d "pln" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e newS\x3c/span\x3e\x3cspan class \x3d "pun" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e,\x3c/span\x3e\x3cspan class \x3d "kwd" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3efullS\x3c/span\x3e\x3cspan class \x3d "pun" style \x3d "font-family: \'Courier New\', \'Andale Mono\', monospace; line-height: normal; white-space: pre; background-color: rgb(246, 246, 242); "\x3e){\x3c/span\x3e\x3c/code\x3e\n\x3ccode\x3e\x3cspan class \x3d "pln"\x3e\x26nbsp; \x26nbsp; \x3c/span\x3e\x3cspan class \x3d "kwd"\x3ereturn\x3c/span\x3e\x3cspan class \x3d "pln"\x3e fullS\x3c/span\x3e\x3cspan class \x3d "pun"\x3e.\x3c/span\x3e\x3cspan class \x3d "pln"\x3esplit\x3c/span\x3e\x3cspan class \x3d "pun"\x3e(\x3c/span\x3e\x3cspan class \x3d "pln"\x3eoldS\x3c/span\x3e\x3cspan class \x3d "pun"\x3e).\x3c/span\x3e\x3cspan class \x3d "pln"\x3ejoin\x3c/span\x3e\x3cspan class \x3d "pun"\x3e(\x3c/span\x3e\x3cspan class \x3d "kwd"\x3enewS\x3c/span\x3e\x3cspan class \x3d "pun"\x3e);\x3c/span\x3e\n\x3cspan class \x3d "pun"\x3e}\x3c/span\x3e\n\x3c/code\x3e\x3c/pre\x3e\n\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/substr" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr"\x3esubstr\x3c/a\x3e, \x3ca class \x3d "internal" title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/String/Slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/slice"\x3eslice\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using substring","Example: Replacing a substring within a string","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr","title":"String.substr","_id":"4eea8561a4c86c4dba000102","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the characters in a string beginning at the specified location through the specified number of characters.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone, although ECMAScript 3rd Edition has a non-normative section suggesting uniform semantics\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.substr(\x3cem\x3estart\x3c/em\x3e[, \x3cem\x3elength\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estart\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eLocation at which to begin extracting characters.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe number of characters to extract.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3estart\x3c/code\x3e is a character index. The index of the first character is 0, and the index of the last character is 1 less than the length of the string. \x3ccode\x3esubstr\x3c/code\x3e begins extracting characters at \x3ccode\x3estart\x3c/code\x3e and collects \x3ccode\x3elength\x3c/code\x3e characters (unless it reaches the end of the string first, in which case it will return fewer).\x3c/p\x3e\n\x3cp\x3eIf \x3ccode\x3estart\x3c/code\x3e is positive and is greater than or equal to the length of the string, \x3ccode\x3esubstr\x3c/code\x3e returns an empty string.\x3c/p\x3e\n\x3cp\x3eIf \x3ccode\x3estart\x3c/code\x3e is negative, \x3ccode\x3esubstr\x3c/code\x3e uses it as a character index from the end of the string. If \x3ccode\x3estart\x3c/code\x3e is negative and \x3ccode\x3eabs(start)\x3c/code\x3e is larger than the length of the string, \x3ccode\x3esubstr\x3c/code\x3e uses 0 as the start index. Note: the described handling of negative values of the \x3ccode\x3estart\x3c/code\x3e argument is not supported by Microsoft JScript \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://msdn2.microsoft.com/en-us/library/0esxc5wy.aspx" title \x3d "http://msdn2.microsoft.com/en-us/library/0esxc5wy.aspx" target \x3d "_blank"\x3e[1]\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eIf \x3ccode\x3elength\x3c/code\x3e is 0 or negative, \x3ccode\x3esubstr\x3c/code\x3e returns an empty string. If \x3ccode\x3elength\x3c/code\x3e is omitted, \x3ccode\x3esubstr\x3c/code\x3e extracts characters to the end of the string.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eCompatibility\x3c/h3\x3e\n\x3cp\x3eMicrosoft\'s JScript does not support negative values for the start index. If you wish to make use of this feature, you can use the following compatibilty code to work around this bug:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// only run when the substr function is broken\nif (\'ab\'.substr(-1) !\x3d \'b\')\n{\n  /**\n   *  Get the substring of a string\n   *  @param  {integer}  start   where to start the substring\n   *  @param  {integer}  length  how many characters to return\n   *  @return {string}\n   */\n  String.prototype.substr \x3d function(substr) {\n    return function(start, length) {\n      // did we get a negative start, calculate how much it is from the beginning of the string\n      if (start \x26lt; 0) start \x3d this.length + start;\n      \n      // call the original function\n      return substr.call(this, start, length);\n    }\n  }(String.prototype.substr);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3eExamples\x3c/p\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_substr"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esubstr\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eConsider the following script:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e// assumes a print function is defined\nvar str \x3d \x26quot;abcdefghij\x26quot;;\nprint(\x26quot;(1,2): \x26quot;    + str.substr(1,2));\nprint(\x26quot;(-3,2): \x26quot;   + str.substr(-3,2));\nprint(\x26quot;(-3): \x26quot;     + str.substr(-3));\nprint(\x26quot;(1): \x26quot;      + str.substr(1));\nprint(\x26quot;(-20, 2): \x26quot; + str.substr(-20,2));\nprint(\x26quot;(20, 2): \x26quot;  + str.substr(20,2));\n\x3c/pre\x3e\n\x3cp\x3eThis script displays:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e(1,2): bc\n(-3,2): hi\n(-3): hij\n(1): bcdefghij\n(-20, 2): ab\n(20, 2):\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_substr"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esubstr\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eConsider the following script:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e// assumes a print function is defined\nvar str \x3d \x26quot;abcdefghij\x26quot;;\nprint(\x26quot;(1,2): \x26quot;    + str.substr(1,2));\nprint(\x26quot;(-3,2): \x26quot;   + str.substr(-3,2));\nprint(\x26quot;(-3): \x26quot;     + str.substr(-3));\nprint(\x26quot;(1): \x26quot;      + str.substr(1));\nprint(\x26quot;(-20, 2): \x26quot; + str.substr(-20,2));\nprint(\x26quot;(20, 2): \x26quot;  + str.substr(20,2));\n\x3c/pre\x3e\n\x3cp\x3eThis script displays:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e(1,2): bc\n(-3,2): hi\n(-3): hij\n(1): bcdefghij\n(-20, 2): ab\n(20, 2):\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca class \x3d "internal" style \x3d "text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default; " title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/String/Slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/slice"\x3eslice\x3c/a\x3e,\x26nbsp;\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/substring" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring"\x3esubstring\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Compatibility","Example: Using substr","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt","title":"String.charAt","_id":"4eea8563a4c86c4dba000103","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the specified character from a string.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.charAt(\x3cem\x3eindex\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eindex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eAn integer between 0 and 1 less than the length of the string.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eCharacters in a string are indexed from left to right. The index of the first character is 0, and the index of the last character in a string called \x3ccode\x3estringName\x3c/code\x3e is \x3ccode\x3estringName.length - 1\x3c/code\x3e. If the \x3ccode\x3eindex\x3c/code\x3e you supply is out of range, JavaScript returns an empty string.\x3c/p\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_5\"\x3e\x3cspan id \x3d \"Examples\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Example:_Displaying_characters_at_different_locations_in_a_string\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: Displaying characters at different locations in a string\x3c/h4\x3e\n\x3cp\x3eThe following example displays characters at different locations in the string \x26quot;\x3ccode\x3eBrave new world\x3c/code\x3e\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar anyString\x3d\x26quot;Brave new world\x26quot;;\n\ndocument.writeln(\x26quot;The character at index 0 is '\x26quot; + anyString.charAt(0) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 1 is '\x26quot; + anyString.charAt(1) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 2 is '\x26quot; + anyString.charAt(2) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 3 is '\x26quot; + anyString.charAt(3) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 4 is '\x26quot; + anyString.charAt(4) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 999 is '\x26quot; + anyString.charAt(999) + \x26quot;'\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eThese lines display the following:\x3c/p\x3e\n\x3cpre\x3e\nThe character at index 0 is 'B'\nThe character at index 1 is 'r'\nThe character at index 2 is 'a'\nThe character at index 3 is 'v'\nThe character at index 4 is 'e'\nThe character at index 999 is ''\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"Example_2:.C2.A0Getting_whole_characters\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample 2:\x26nbsp;Getting whole characters\x3c/h4\x3e\n\x3cp\x3eThe following provides a means of ensuring that going through a string loop always provides a whole character, even if the string contains characters that are not in the Basic Multi-lingual Plane.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar str \x3d 'A\\uD87E\\uDC04Z'; // We could also use a non-BMP character directly\nfor (var i\x3d0, chr; i \x26lt; str.length; i++) {\n    if ((chr \x3d getWholeChar(str, i)) \x3d\x3d\x3d false) {continue;} // Adapt this line at the top of each loop, passing in the whole string and the current iteration and returning a variable to represent the individual character\n    alert(chr);\n}\n\nfunction getWholeChar (str, i) {\n    var code \x3d str.charCodeAt(i);     \n \n    if (isNaN(code)) {\n        return ''; // Position not found\n    }\n    if (code \x26lt; 0xD800 || code \x26gt; 0xDFFF) {\n        return str.charAt(i);\n    }\n    if (0xD800 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDBFF) { // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        if (str.length \x26lt;\x3d (i+1))  {\n            throw 'High surrogate without following low surrogate';\n        }\n        var next \x3d str.charCodeAt(i+1);\n        if (0xDC00 \x26gt; next || next \x26gt; 0xDFFF) {\n            throw 'High surrogate without following low surrogate';\n        }\n        return str.charAt(i)+str.charAt(i+1);\n    }\n    // Low surrogate (0xDC00 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDFFF)\n    if (i \x3d\x3d\x3d 0) {\n        throw 'Low surrogate without preceding high surrogate';\n    }\n    var prev \x3d str.charCodeAt(i-1);\n    if (0xD800 \x26gt; prev || prev \x26gt; 0xDBFF) { // (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        throw 'Low surrogate without preceding high surrogate';\n    }\n    return false; // We can pass over low surrogates now as the second component in a pair which we have already processed\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3eIn an exclusive JavaScript 1.7+\x26nbsp;environment (such as Firefox) which allows destructured assignment, the following is a more succinct and somewhat more flexible alternative in that it does incrementing for an incrementing variable automatically (if the character warrants it in being a surrogate pair).\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar str \x3d 'A\\uD87E\\uDC04Z'; // We could also use a non-BMP character directly\nfor (var i\x3d0, chr; i \x26lt; str.length; i++) {\n    [chr, i] \x3d getWholeCharAndI(str, i); // Adapt this line at the top of each loop, passing in the whole string and the current iteration and returning an array with the individual character and 'i' value (only changed if a surrogate pair)\n    alert(chr);\n}\n\nfunction getWholeCharAndI (str, i) {\n    var code \x3d str.charCodeAt(i);\n    if (isNaN(code)) {\n        return ''; // Position not found\n    }\n    if (code \x26lt; 0xD800 || code \x26gt; 0xDFFF) {\n        return [str.charAt(i), i]; // Normal character, keeping 'i' the same\n    }\n    if (0xD800 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDBFF) { // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        if (str.length \x26lt;\x3d (i+1))  {\n            throw 'High surrogate without following low surrogate';\n        }\n        var next \x3d str.charCodeAt(i+1);\n        if (0xDC00 \x26gt; next || next \x26gt; 0xDFFF) {\n            throw 'High surrogate without following low surrogate';\n        }\n        return [str.charAt(i)+str.charAt(i+1), i+1];\n    }\n    // Low surrogate (0xDC00 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDFFF)\n    if (i \x3d\x3d\x3d 0) {\n        throw 'Low surrogate without preceding high surrogate';\n    }\n    var prev \x3d str.charCodeAt(i-1);\n    if (0xD800 \x26gt; prev || prev \x26gt; 0xDBFF) { // (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        throw 'Low surrogate without preceding high surrogate';\n    }\n    return [str.charAt(i+1), i+1]; // Return the next character instead (and increment)\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d \"section_8\"\x3e\x3cspan id \x3d \"Example_3:.C2.A0Fixing_charAt_to_support_non-Basic-Multilingual-Plane_(BMP).C2.A0characters\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample 3:\x26nbsp;Fixing charAt to support non-Basic-Multilingual-Plane (BMP)\x26nbsp;characters\x3c/h4\x3e\n\x3cp\x3eWhile example 2 may be more frequently useful for those wishing to support non-BMP characters (since the above does not require the caller to know where any non-BMP\x26nbsp;character might appear), in the event that one \x3cem\x3edoes\x3c/em\x3e wish, in choosing a character by index, to treat the surrogate pairs within a string as the single characters they represent, one can use the following:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3efunction fixedCharAt (str, idx) {\n    var ret \x3d '';\n    str +\x3d '';\n    var end \x3d str.length;\n\n    var surrogatePairs \x3d /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n    while ((surrogatePairs.exec(str)) !\x3d null) {\n        var li \x3d surrogatePairs.lastIndex;\n        if (li - 2 \x26lt; idx) {\n            idx++;\n        }\n        else {\n            break;\n        }\n    }\n\n    if (idx \x26gt;\x3d end || idx \x26lt; 0) {\n        return '';\n    }\n\n    ret +\x3d str.charAt(idx);\n\n    if (/[\\uD800-\\uDBFF]/.test(ret) \x26amp;\x26amp; /[\\uDC00-\\uDFFF]/.test(str.charAt(idx+1))) {\n        ret +\x3d str.charAt(idx+1); // Go one further, since one of the \x26quot;characters\x26quot; is part of a surrogate pair\n    }\n    return ret;\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e",
"\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Example:_Displaying_characters_at_different_locations_in_a_string\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: Displaying characters at different locations in a string\x3c/h4\x3e\n\x3cp\x3eThe following example displays characters at different locations in the string \x26quot;\x3ccode\x3eBrave new world\x3c/code\x3e\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar anyString\x3d\x26quot;Brave new world\x26quot;;\n\ndocument.writeln(\x26quot;The character at index 0 is '\x26quot; + anyString.charAt(0) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 1 is '\x26quot; + anyString.charAt(1) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 2 is '\x26quot; + anyString.charAt(2) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 3 is '\x26quot; + anyString.charAt(3) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 4 is '\x26quot; + anyString.charAt(4) + \x26quot;'\x26quot;);\ndocument.writeln(\x26quot;The character at index 999 is '\x26quot; + anyString.charAt(999) + \x26quot;'\x26quot;);\x3c/pre\x3e\r\n        \n\x3cp\x3eThese lines display the following:\x3c/p\x3e\n\x3cpre\x3e\nThe character at index 0 is 'B'\nThe character at index 1 is 'r'\nThe character at index 2 is 'a'\nThe character at index 3 is 'v'\nThe character at index 4 is 'e'\nThe character at index 999 is ''\n\x3c/pre\x3e\n\x3c/div\x3e",
"\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"Example_2:.C2.A0Getting_whole_characters\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample 2:\x26nbsp;Getting whole characters\x3c/h4\x3e\n\x3cp\x3eThe following provides a means of ensuring that going through a string loop always provides a whole character, even if the string contains characters that are not in the Basic Multi-lingual Plane.\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar str \x3d 'A\\uD87E\\uDC04Z'; // We could also use a non-BMP character directly\nfor (var i\x3d0, chr; i \x26lt; str.length; i++) {\n    if ((chr \x3d getWholeChar(str, i)) \x3d\x3d\x3d false) {continue;} // Adapt this line at the top of each loop, passing in the whole string and the current iteration and returning a variable to represent the individual character\n    alert(chr);\n}\n\nfunction getWholeChar (str, i) {\n    var code \x3d str.charCodeAt(i);     \n \n    if (isNaN(code)) {\n        return ''; // Position not found\n    }\n    if (code \x26lt; 0xD800 || code \x26gt; 0xDFFF) {\n        return str.charAt(i);\n    }\n    if (0xD800 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDBFF) { // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        if (str.length \x26lt;\x3d (i+1))  {\n            throw 'High surrogate without following low surrogate';\n        }\n        var next \x3d str.charCodeAt(i+1);\n        if (0xDC00 \x26gt; next || next \x26gt; 0xDFFF) {\n            throw 'High surrogate without following low surrogate';\n        }\n        return str.charAt(i)+str.charAt(i+1);\n    }\n    // Low surrogate (0xDC00 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDFFF)\n    if (i \x3d\x3d\x3d 0) {\n        throw 'Low surrogate without preceding high surrogate';\n    }\n    var prev \x3d str.charCodeAt(i-1);\n    if (0xD800 \x26gt; prev || prev \x26gt; 0xDBFF) { // (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        throw 'Low surrogate without preceding high surrogate';\n    }\n    return false; // We can pass over low surrogates now as the second component in a pair which we have already processed\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3eIn an exclusive JavaScript 1.7+\x26nbsp;environment (such as Firefox) which allows destructured assignment, the following is a more succinct and somewhat more flexible alternative in that it does incrementing for an incrementing variable automatically (if the character warrants it in being a surrogate pair).\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar str \x3d 'A\\uD87E\\uDC04Z'; // We could also use a non-BMP character directly\nfor (var i\x3d0, chr; i \x26lt; str.length; i++) {\n    [chr, i] \x3d getWholeCharAndI(str, i); // Adapt this line at the top of each loop, passing in the whole string and the current iteration and returning an array with the individual character and 'i' value (only changed if a surrogate pair)\n    alert(chr);\n}\n\nfunction getWholeCharAndI (str, i) {\n    var code \x3d str.charCodeAt(i);\n    if (isNaN(code)) {\n        return ''; // Position not found\n    }\n    if (code \x26lt; 0xD800 || code \x26gt; 0xDFFF) {\n        return [str.charAt(i), i]; // Normal character, keeping 'i' the same\n    }\n    if (0xD800 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDBFF) { // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        if (str.length \x26lt;\x3d (i+1))  {\n            throw 'High surrogate without following low surrogate';\n        }\n        var next \x3d str.charCodeAt(i+1);\n        if (0xDC00 \x26gt; next || next \x26gt; 0xDFFF) {\n            throw 'High surrogate without following low surrogate';\n        }\n        return [str.charAt(i)+str.charAt(i+1), i+1];\n    }\n    // Low surrogate (0xDC00 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDFFF)\n    if (i \x3d\x3d\x3d 0) {\n        throw 'Low surrogate without preceding high surrogate';\n    }\n    var prev \x3d str.charCodeAt(i-1);\n    if (0xD800 \x26gt; prev || prev \x26gt; 0xDBFF) { // (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        throw 'Low surrogate without preceding high surrogate';\n    }\n    return [str.charAt(i+1), i+1]; // Return the next character instead (and increment)\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e",
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example_3:.C2.A0Fixing_charAt_to_support_non-Basic-Multilingual-Plane_(BMP).C2.A0characters"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample 3:\x26nbsp;Fixing charAt to support non-Basic-Multilingual-Plane (BMP)\x26nbsp;characters\x3c/h4\x3e\n\x3cp\x3eWhile example 2 may be more frequently useful for those wishing to support non-BMP characters (since the above does not require the caller to know where any non-BMP\x26nbsp;character might appear), in the event that one \x3cem\x3edoes\x3c/em\x3e wish, in choosing a character by index, to treat the surrogate pairs within a string as the single characters they represent, one can use the following:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction fixedCharAt (str, idx) {\n    var ret \x3d \'\';\n    str +\x3d \'\';\n    var end \x3d str.length;\n\n    var surrogatePairs \x3d /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n    while ((surrogatePairs.exec(str)) !\x3d null) {\n        var li \x3d surrogatePairs.lastIndex;\n        if (li - 2 \x26lt; idx) {\n            idx++;\n        }\n        else {\n            break;\n        }\n    }\n\n    if (idx \x26gt;\x3d end || idx \x26lt; 0) {\n        return \'\';\n    }\n\n    ret +\x3d str.charAt(idx);\n\n    if (/[\\uD800-\\uDBFF]/.test(ret) \x26amp;\x26amp; /[\\uDC00-\\uDFFF]/.test(str.charAt(idx+1))) {\n        ret +\x3d str.charAt(idx+1); // Go one further, since one of the \x26quot;characters\x26quot; is part of a surrogate pair\n    }\n    return ret;\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf"\x3eindexOf\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/lastIndexOf"\x3elastIndexOf\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/split" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split"\x3esplit\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/charCodeAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charCodeAt"\x3echarCodeAt\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Displaying characters at different locations in a string","Example 2:\x26nbsp;Getting whole characters","Example 3:\x26nbsp;Fixing charAt to support non-Basic-Multilingual-Plane (BMP)\x26nbsp;characters","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/valueOf","title":"String.valueOf","_id":"4eea8567a4c86c4dba000104","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the primitive value of a String object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.valueOf()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3evalueOf\x3c/code\x3e method of \x3ccode\x3eString\x3c/code\x3e returns the primitive value of a String object as a string data type. This value is equivalent to String.toString.\x3c/p\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_valueOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3evalueOf\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3e\nx \x3d new String(\x26quot;Hello world\x26quot;);\nalert(x.valueOf())          // Displays \x26quot;Hello world\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_valueOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3evalueOf\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3e\nx \x3d new String(\x26quot;Hello world\x26quot;);\nalert(x.valueOf())          // Displays \x26quot;Hello world\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toString"\x3etoString\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3eObject.valueOf\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using valueOf","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/prototype","title":"String.prototype","_id":"4eea8568a4c86c4dba000105","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e prototype object.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eAll \x3ccode\x3eString\x3c/code\x3e instances inherit from \x3ccode\x3eString.prototype\x3c/code\x3e. Changes to the \x3ccode\x3eString\x3c/code\x3e prototype object are propagated to all \x3ccode\x3eString\x3c/code\x3e instances.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/constructor"\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that creates an object\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReflects the length of the string.\x3c/dd\x3e \x3cdt\x3e\x3cem\x3eN\x3c/em\x3e\x3c/dt\x3e \x3cdd\x3eUsed to access the character in the \x3cem\x3eN\x3c/em\x3eth position where \x3cem\x3eN\x3c/em\x3e is a positive integer between 0 and one less than the value of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/length" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/length"\x3e\x3ccode\x3elength\x3c/code\x3e\x3c/a\x3e. These properties are read-only.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eProperties inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Parent" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Parent"\x3e\x3ccode\x3e__parent__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Proto" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Proto"\x3e\x3ccode\x3e__proto__\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n \x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Methods_unrelated_to_HTML"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods unrelated to HTML\x3c/h3\x3e \n\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3e\x3ccode\x3echarAt\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the character at the specified index.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charCodeAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charCodeAt"\x3e\x3ccode\x3echarCodeAt\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a number indicating the Unicode value of the character at the given index.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/concat"\x3e\x3ccode\x3econcat\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCombines the text of two strings and returns a new string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf"\x3e\x3ccode\x3eindexOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the index within the calling String object of the first occurrence of the specified value, or -1 if not found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/lastIndexOf"\x3e\x3ccode\x3elastIndexOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the index within the calling String object of the last occurrence of the specified value, or -1 if not found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/localeCompare" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/localeCompare"\x3e\x3ccode\x3elocaleCompare\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/match" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match"\x3e\x3ccode\x3ematch\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eUsed to match a regular expression against a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/quote" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/quote"\x3e\x3ccode\x3equote\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Wraps the string in double quotes (\x26quot;\x3ccode\x3e\x26quot;\x3c/code\x3e\x26quot;).\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/replace" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace"\x3e\x3ccode\x3ereplace\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eUsed to find a match between a regular expression and a string, and to replace the matched substring with a new substring.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/search" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/search"\x3e\x3ccode\x3esearch\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExecutes the search for a match between a regular expression and a specified string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/slice"\x3e\x3ccode\x3eslice\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExtracts a section of a string and returns a new string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/split" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split"\x3e\x3ccode\x3esplit\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSplits a String object into an array of strings by separating the string into substrings.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substr" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr"\x3e\x3ccode\x3esubstr\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the characters in a string beginning at the specified location through the specified number of characters.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substring" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring"\x3e\x3ccode\x3esubstring\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the characters in a string between two indexes into the string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase"\x3e\x3ccode\x3etoLocaleLowerCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe characters within a string are converted to lower case while respecting the current locale. For most languages, this will return the same as \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3e\x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase"\x3e\x3ccode\x3etoLocaleUpperCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe characters within a string are converted to upper case while respecting the current locale. For most languages, this will return the same as \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3e\x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3e\x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the calling string value converted to lower case.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns an object literal representing the specified object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3e\x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the calling string value converted to uppercase.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trim" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim"\x3e\x3ccode\x3etrim\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Trims whitespace from the beginning and end of the string. Part of the ECMAScript 5 standard.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trimLeft" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimLeft"\x3e\x3ccode\x3etrimLeft\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Trims whitespace from the left side of the string.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trimRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight"\x3e\x3ccode\x3etrimRight\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Trims whitespace from the right side of the string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/valueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3e\x3ccode\x3eObject.prototype.valueOf\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n \x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "HTML_wrapper_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eHTML wrapper methods\x3c/h3\x3e\n\n\n\x3cp\x3e\n\n\x3cdiv style \x3d "overflow:hidden; border: 1px solid #FFB752; background-color: #FEE3BC; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\x3cp style \x3d "margin: 4px 0px 4px 0px;"\x3eNon-standard\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cp\x3e Each of the following methods returns a copy of the string wrapped inside the appropriate HTML tag.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/anchor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/anchor"\x3e\x3ccode\x3eanchor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;a name\x3d\x26quot;\x3cem\x3ename\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/a\x3e (hypertext target)\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/big" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/big"\x3e\x3ccode\x3ebig\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;big\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/blink" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/blink"\x3e\x3ccode\x3eblink\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;blink\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/bold" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/bold"\x3e\x3ccode\x3ebold\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;b\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fixed"\x3e\x3ccode\x3efixed\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;tt\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontcolor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontcolor"\x3e\x3ccode\x3efontcolor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;font color\x3d\x26quot;\x3cem\x3ecolor\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontsize" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontsize"\x3e\x3ccode\x3efontsize\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;font size\x3d\x26quot;\x3cem\x3esize\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/italics" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/italics"\x3e\x3ccode\x3eitalics\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;i\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/link" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/link"\x3e\x3ccode\x3elink\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;a href\x3d\x26quot;\x3cem\x3eurl\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/a\x3e (link to URL)\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/small" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/small"\x3e\x3ccode\x3esmall\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;small\x26gt;\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/strike" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/strike"\x3e\x3ccode\x3estrike\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;strike\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sub" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sub"\x3e\x3ccode\x3esub\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;sub\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sup" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sup"\x3e\x3ccode\x3esup\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;sup\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3eThese methods are of limited use, as they provide only a subset of the available HTML tags and attributes.\x3c/p\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Methods_unrelated_to_HTML"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods unrelated to HTML\x3c/h3\x3e \n\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3e\x3ccode\x3echarAt\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the character at the specified index.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charCodeAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charCodeAt"\x3e\x3ccode\x3echarCodeAt\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a number indicating the Unicode value of the character at the given index.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/concat" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/concat"\x3e\x3ccode\x3econcat\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eCombines the text of two strings and returns a new string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf"\x3e\x3ccode\x3eindexOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the index within the calling String object of the first occurrence of the specified value, or -1 if not found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/lastIndexOf"\x3e\x3ccode\x3elastIndexOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the index within the calling String object of the last occurrence of the specified value, or -1 if not found.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/localeCompare" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/localeCompare"\x3e\x3ccode\x3elocaleCompare\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/match" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match"\x3e\x3ccode\x3ematch\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eUsed to match a regular expression against a string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/quote" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/quote"\x3e\x3ccode\x3equote\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Wraps the string in double quotes (\x26quot;\x3ccode\x3e\x26quot;\x3c/code\x3e\x26quot;).\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/replace" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace"\x3e\x3ccode\x3ereplace\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eUsed to find a match between a regular expression and a string, and to replace the matched substring with a new substring.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/search" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/search"\x3e\x3ccode\x3esearch\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExecutes the search for a match between a regular expression and a specified string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/slice" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/slice"\x3e\x3ccode\x3eslice\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eExtracts a section of a string and returns a new string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/split" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split"\x3e\x3ccode\x3esplit\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSplits a String object into an array of strings by separating the string into substrings.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substr" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr"\x3e\x3ccode\x3esubstr\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the characters in a string beginning at the specified location through the specified number of characters.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/substring" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring"\x3e\x3ccode\x3esubstring\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the characters in a string between two indexes into the string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase"\x3e\x3ccode\x3etoLocaleLowerCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe characters within a string are converted to lower case while respecting the current locale. For most languages, this will return the same as \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3e\x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase"\x3e\x3ccode\x3etoLocaleUpperCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eThe characters within a string are converted to upper case while respecting the current locale. For most languages, this will return the same as \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3e\x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3e\x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the calling string value converted to lower case.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toSource"\x3e\x3ccode\x3etoSource\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Returns an object literal representing the specified object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3e\x3ccode\x3eObject.prototype.toSource\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toString"\x3e\x3ccode\x3etoString\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3e\x3ccode\x3eObject.prototype.toString\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3e\x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the calling string value converted to uppercase.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trim" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim"\x3e\x3ccode\x3etrim\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n\x3cbr/\x3e Trims whitespace from the beginning and end of the string. Part of the ECMAScript 5 standard.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trimLeft" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimLeft"\x3e\x3ccode\x3etrimLeft\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Trims whitespace from the left side of the string.\x3c/dd\x3e \x3cdt\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/String/trimRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight"\x3e\x3ccode\x3etrimRight\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\n\x3cspan style \x3d "border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eRequires \x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8.1"\x3eJavaScript 1.8.1\x3c/a\x3e\x3c/span\x3e\n \x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3cbr/\x3e Trims whitespace from the right side of the string.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/valueOf"\x3e\x3ccode\x3evalueOf\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns the primitive value of the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/valueOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/valueOf"\x3e\x3ccode\x3eObject.prototype.valueOf\x3c/code\x3e\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "HTML_wrapper_methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eHTML wrapper methods\x3c/h3\x3e\n\n\n\x3cp\x3e\n\n\x3cdiv style \x3d "overflow:hidden; border: 1px solid #FFB752; background-color: #FEE3BC; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\x3cp style \x3d "margin: 4px 0px 4px 0px;"\x3eNon-standard\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cp\x3e Each of the following methods returns a copy of the string wrapped inside the appropriate HTML tag.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/anchor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/anchor"\x3e\x3ccode\x3eanchor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;a name\x3d\x26quot;\x3cem\x3ename\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/a\x3e (hypertext target)\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/big" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/big"\x3e\x3ccode\x3ebig\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;big\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/blink" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/blink"\x3e\x3ccode\x3eblink\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;blink\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/bold" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/bold"\x3e\x3ccode\x3ebold\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;b\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fixed" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fixed"\x3e\x3ccode\x3efixed\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;tt\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontcolor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontcolor"\x3e\x3ccode\x3efontcolor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;font color\x3d\x26quot;\x3cem\x3ecolor\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontsize" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontsize"\x3e\x3ccode\x3efontsize\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ccode\x3e\x26lt;font size\x3d\x26quot;\x3cem\x3esize\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/italics" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/italics"\x3e\x3ccode\x3eitalics\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;i\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/link" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/link"\x3e\x3ccode\x3elink\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;a href\x3d\x26quot;\x3cem\x3eurl\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e\x3c/a\x3e (link to URL)\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/small" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/small"\x3e\x3ccode\x3esmall\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;small\x26gt;\x3c/code\x3e\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/strike" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/strike"\x3e\x3ccode\x3estrike\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;strike\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sub" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sub"\x3e\x3ccode\x3esub\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;sub\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sup" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sup"\x3e\x3ccode\x3esup\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" target \x3d "_blank"\x3e\x3ccode\x3e\x26lt;sup\x26gt;\x3c/code\x3e\x3c/a\x3e\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3eThese methods are of limited use, as they provide only a subset of the available HTML tags and attributes.\x3c/p\x3e\n\x3cdiv\x3e\n\x3cdiv style \x3d "border: 1px solid rgb(204, 204, 204); margin: 10px 0px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 0%;"\x3e\n\x3cspan style \x3d "font-weight:bold;"\x3eMethods inherited from  \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e:\x3cbr/\x3e\x3cspan style \x3d "font-size: smaller;"\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineGetter"\x3e\x3ccode\x3e__defineGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/DefineSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/DefineSetter"\x3e\x3ccode\x3e__defineSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty" title \x3d "en/JavaScript/Reference/Global_Objects/Object/HasOwnProperty"\x3e\x3ccode\x3ehasOwnProperty\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf" title \x3d "en/JavaScript/Reference/Global_Objects/Object/IsPrototypeOf"\x3e\x3ccode\x3eisPrototypeOf\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupGetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupGetter"\x3e\x3ccode\x3e__lookupGetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/LookupSetter" title \x3d "en/JavaScript/Reference/Global_Objects/Object/LookupSetter"\x3e\x3ccode\x3e__lookupSetter__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod" title \x3d "en/JavaScript/Reference/Global_Objects/Object/NoSuchMethod"\x3e\x3ccode\x3e__noSuchMethod__\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable" title \x3d "en/JavaScript/Reference/Global_Objects/Object/PropertyIsEnumerable"\x3e\x3ccode\x3epropertyIsEnumerable\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/ToLocaleString" title \x3d "en/JavaScript/Reference/Global_Objects/Object/ToLocaleString"\x3e\x3ccode\x3etoLocaleString\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Unwatch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Unwatch"\x3e\x3ccode\x3eunwatch\x3c/code\x3e\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Watch" title \x3d "en/JavaScript/Reference/Global_Objects/Object/Watch"\x3e\x3ccode\x3ewatch\x3c/code\x3e\x3c/a\x3e\x3c/span\x3e\n\x3c/div\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Extending_string_instances_with_a_repeat_method"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Extending string instances with a \x3ccode\x3erepeat\x3c/code\x3e method\x3c/h3\x3e\n\x3cp\x3eThe following example creates a method, \x3ccode\x3estr_rep\x3c/code\x3e, and uses the statement \x3ccode\x3eString.prototype.repeat \x3d str_rep\x3c/code\x3e to add the method to all \x3ccode\x3eString\x3c/code\x3e objects. All \x3ccode\x3eString\x3c/code\x3e instances then have that method, even objects already created. The example then creates an alternate method and overrides the previous method in one of the \x3ccode\x3eString\x3c/code\x3e objects using the statement \x3ccode\x3es1.repeat \x3d fake_rep\x3c/code\x3e. The \x3ccode\x3estr_rep\x3c/code\x3e method of the remaining \x3ccode\x3eString\x3c/code\x3e objects is not altered.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar s1 \x3d new String(\x26quot;a\x26quot;);\nvar s2 \x3d new String(\x26quot;b\x26quot;);\nvar s3 \x3d new String(\x26quot;c\x26quot;);\n\n// Create a repeat-string-N-times method for all String objects\nfunction str_rep(n) {\n   var s \x3d \x26quot;\x26quot;, t \x3d this.toString();\n   while (--n \x26gt;\x3d 0) {\n     s +\x3d t\n   }\n   return s;\n}\n\nString.prototype.repeat \x3d str_rep;\n\ns1a\x3ds1.repeat(3); // returns \x26quot;aaa\x26quot;\ns2a\x3ds2.repeat(5); // returns \x26quot;bbbbb\x26quot;\ns3a\x3ds3.repeat(2); // returns \x26quot;cc\x26quot;\n\n// Create an alternate method and assign it to only one String variable\nfunction fake_rep(n) {\n   return \x26quot;repeat \x26quot; + this + \x26quot; \x26quot; + n + \x26quot; times.\x26quot;;\n}\n\ns1.repeat \x3d fake_rep\ns1b\x3ds1.repeat(1); // returns \x26quot;repeat a 1 times.\x26quot;\ns2b\x3ds2.repeat(4); // returns \x26quot;bbbb\x26quot;\ns3b\x3ds3.repeat(6); // returns \x26quot;cccccc\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eThe function in this example also works on \x3ccode\x3eString\x3c/code\x3e objects not created with the \x3ccode\x3eString\x3c/code\x3e constructor. The following code returns \x26quot;zzz\x26quot;.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\x26quot;z\x26quot;.repeat(3);\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Extending_string_instances_with_a_repeat_method"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Extending string instances with a \x3ccode\x3erepeat\x3c/code\x3e method\x3c/h3\x3e\n\x3cp\x3eThe following example creates a method, \x3ccode\x3estr_rep\x3c/code\x3e, and uses the statement \x3ccode\x3eString.prototype.repeat \x3d str_rep\x3c/code\x3e to add the method to all \x3ccode\x3eString\x3c/code\x3e objects. All \x3ccode\x3eString\x3c/code\x3e instances then have that method, even objects already created. The example then creates an alternate method and overrides the previous method in one of the \x3ccode\x3eString\x3c/code\x3e objects using the statement \x3ccode\x3es1.repeat \x3d fake_rep\x3c/code\x3e. The \x3ccode\x3estr_rep\x3c/code\x3e method of the remaining \x3ccode\x3eString\x3c/code\x3e objects is not altered.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar s1 \x3d new String(\x26quot;a\x26quot;);\nvar s2 \x3d new String(\x26quot;b\x26quot;);\nvar s3 \x3d new String(\x26quot;c\x26quot;);\n\n// Create a repeat-string-N-times method for all String objects\nfunction str_rep(n) {\n   var s \x3d \x26quot;\x26quot;, t \x3d this.toString();\n   while (--n \x26gt;\x3d 0) {\n     s +\x3d t\n   }\n   return s;\n}\n\nString.prototype.repeat \x3d str_rep;\n\ns1a\x3ds1.repeat(3); // returns \x26quot;aaa\x26quot;\ns2a\x3ds2.repeat(5); // returns \x26quot;bbbbb\x26quot;\ns3a\x3ds3.repeat(2); // returns \x26quot;cc\x26quot;\n\n// Create an alternate method and assign it to only one String variable\nfunction fake_rep(n) {\n   return \x26quot;repeat \x26quot; + this + \x26quot; \x26quot; + n + \x26quot; times.\x26quot;;\n}\n\ns1.repeat \x3d fake_rep\ns1b\x3ds1.repeat(1); // returns \x26quot;repeat a 1 times.\x26quot;\ns2b\x3ds2.repeat(4); // returns \x26quot;bbbb\x26quot;\ns3b\x3ds3.repeat(6); // returns \x26quot;cccccc\x26quot;\x3c/pre\x3e\r\n        \n\x3cp\x3eThe function in this example also works on \x3ccode\x3eString\x3c/code\x3e objects not created with the \x3ccode\x3eString\x3c/code\x3e constructor. The following code returns \x26quot;zzz\x26quot;.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\x26quot;z\x26quot;.repeat(3);\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods","Methods unrelated to HTML","HTML wrapper methods","Examples","Example: Extending string instances with a repeat method"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fromCharCode","title":"String.fromCharCode","_id":"4eea8569a4c86c4dba000106","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eReturns a string created by using the specified sequence of Unicode values.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eStatic Method of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e String.fromCharCode(\x3cem\x3enum1\x3c/em\x3e, \x3cem\x3e...\x3c/em\x3e, \x3cem\x3enumN\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3enum1, ..., num\x3cem\x3eN\x3c/em\x3e\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA sequence of numbers that are Unicode values.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThis method returns a string and not a \x3ccode\x3eString\x3c/code\x3e object.\x3c/p\x3e\n\x3cp\x3eBecause \x3ccode\x3efromCharCode\x3c/code\x3e is a static method of \x3ccode\x3eString\x3c/code\x3e, you always use it as \x3ccode\x3eString.fromCharCode()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eString\x3c/code\x3e object you created.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Getting_it_to_work_with_higher_values"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eGetting it to work with higher values\x3c/h2\x3e\n\x3cp\x3eAlthough most common Unicode values can be represented in a fixed width system/with one number (as expected early on during JavaScript standardization) and \x3ccode\x3efromCharCode()\x3c/code\x3e can be used to return a single character for the most common values (i.e., UCS-2 values which are the subset of UTF-16 with the most common characters), in order to deal with ALL legal Unicode values, \x3ccode\x3efromCharCode()\x3c/code\x3e alone is inadequate. Since the higher code point characters use two (lower value) \x26quot;surrogate\x26quot; numbers to form a single character, \x3ccode\x3efromCharCode()\x3c/code\x3e can be used to return such a pair and thus adequately represent these higher valued characters.\x3c/p\x3e\n\x3cp\x3eBe aware, therefore, that the following utility function to grab the accurate character even for higher value code points, may be returning a value which is rendered as a single character, but which has a string count of two (though usually the count will be one).\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// String.fromCharCode() alone cannot get the character at such a high code point\n// The following, on the other hand, can return a 4-byte character as well as the \n//   usual 2-byte ones (i.e., it can return a single character which actually has \n//   a string length of 2 instead of 1!)\nalert(fixedFromCharCode(0x2F804)); // or 194564 in decimal\n\n\nfunction fixedFromCharCode (codePt) {\n    if (codePt \x26gt; 0xFFFF) {\n        codePt -\x3d 0x10000;\n        return String.fromCharCode(0xD800 + (codePt \x26gt;\x26gt; 10), 0xDC00 +\n(codePt \x26amp; 0x3FF));\n    }\n    else {\n        return String.fromCharCode(codePt);\n    }\n}\x3c/pre\x3e\r\n        \x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_fromCharCode"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3efromCharCode\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following example returns the string \x26quot;ABC\x26quot;.\x3c/p\x3e\n\x3cpre\x3eString.fromCharCode(65,66,67)\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_fromCharCode"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3efromCharCode\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following example returns the string \x26quot;ABC\x26quot;.\x3c/p\x3e\n\x3cpre\x3eString.fromCharCode(65,66,67)\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/charCodeAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/charCodeAt"\x3eString.prototype.charCodeAt\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary",
"Syntax","Parameters","Description","Getting it to work with higher values","Examples","Example: Using fromCharCode","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/localeCompare","title":"String.localeCompare","_id":"4eea856aa4c86c4dba000107","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e localeCompare(compareString) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3ecompareString\x3c/code\x3e - The string against which the referring string is comparing\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eReturns a number indicating whether a reference string comes before or after or is the same as the given string in sort order. Returns -1 if the string occurs earlier in a sort than \x3ccode\x3ecompareString\x3c/code\x3e, returns 1 if the string occurs afterwards in such a sort, and returns 0 if they occur at the same level.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toUpperCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_localeCompare"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3elocaleCompare\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example demonstrates the different potential results for a string occurring before, after, or at the same level as another:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ealert(\'a\'.localeCompare(\'b\')); // -1\nalert(\'b\'.localeCompare(\'a\')); // 1\nalert(\'b\'.localeCompare(\'b\')); // 0\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
"\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Example:_Using_toUpperCase\"\x3e\x3c/span\x3e\x3cspan id \x3d \"Example:_Using_localeCompare\"\x3e\x3c/span\x3e\x3ch4 class \x3d \"editable\"\x3eExample: Using \x3ccode\x3elocaleCompare\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example demonstrates the different potential results for a string occurring before, after, or at the same level as another:\x3c/p\x3e\n\r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3ealert('a'.localeCompare('b')); // -1\nalert('b'.localeCompare('a')); // 1\nalert('b'.localeCompare('b')); // 0\x3c/pre\x3e\r\n        \n\x3c/div\x3e"],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using localeCompare"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/constructor","title":"String.constructor","_id":"4eea856ea4c86c4dba000108","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca title \x3d "En/Core_JavaScript_1.5_Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String"\x3eString\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eSee \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor"\x3econstructor\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Description "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charCodeAt",
"title":"String.charCodeAt","_id":"4eea856fa4c86c4dba000109","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the numeric Unicode value of the character at the given index (except for unicode codepoints \x26gt; 0x10000).\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.charCodeAt(\x3cem\x3eindex\x3c/em\x3e)\x3c/code\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eindex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eAn integer greater than 0 and less than the length of the string; if it is not a number, it defaults to 0.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eUnicode code points range from 0 to 1,114,111. The first 128 Unicode code points are a direct match of the ASCII character encoding. For information on Unicode, see the \x3ca title \x3d "en/Core_JavaScript_1.5_Guide/Unicode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide/Obsolete_Pages/Unicode"\x3eCore JavaScript 1.5 Guide\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3eNote that \x3ccode\x3echarCodeAt\x3c/code\x3e will always return a value that is less than 65,536. This is because the higher code points are represented by a pair of (lower valued)\x26nbsp;\x26quot;surrogate\x26quot; pseudo-characters which are used to comprise the real character. Because of this, in order to examine or reproduce the full character for individual characters of value 65,536 and above, for such characters, it is necessary to retrieve not only \x3ccode\x3echarCodeAt(i)\x3c/code\x3e, but also \x3ccode\x3echarCodeAt(i+1)\x3c/code\x3e (as if examining/reproducing a string with two letters). See \x3ca title \x3d "fckeditor.html?InstanceName\x3deditarea\x26amp;Toolbar\x3dMDC#Example_2.3a.c2.a0Getting_whole_characters" rel \x3d "internal" href \x3d "https://developer.mozilla.org/fckeditor.html?InstanceName\x3deditarea\x26amp;Toolbar\x3dMDC#Example_2.3a.c2.a0Getting_whole_characters" class \x3d "new "\x3eexample 2\x3c/a\x3e and 3 below.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3echarCodeAt\x3c/code\x3e returns \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN"\x3eNaN\x3c/a\x3e\x3c/code\x3e if the given index is not greater than 0 or is greater than the length of the string.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Backward_Compatibility"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eBackward Compatibility\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "JavaScript_1.2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eJavaScript 1.2\x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3echarCodeAt\x3c/code\x3e method returns a number indicating the ISO-Latin-1 codeset value of the character at the given index. The ISO-Latin-1 codeset ranges from 0 to 255. The first 0 to 127 are a direct match of the ASCII character set.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "JavaScript_1.2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eJavaScript 1.2\x3c/h4\x3e\n\x3cp\x3eThe \x3ccode\x3echarCodeAt\x3c/code\x3e method returns a number indicating the ISO-Latin-1 codeset value of the character at the given index. The ISO-Latin-1 codeset ranges from 0 to 255. The first 0 to 127 are a direct match of the ASCII character set.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Using_charCodeAt"\x3e\x3c/span\x3e\x3cspan id \x3d "Example_1:_Using_charCodeAt"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample 1: Using \x3ccode\x3echarCodeAt\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example returns 65, the Unicode value for A.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n\x26quot;ABC\x26quot;.charCodeAt(0) // returns 65\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example_2:_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample 2: Fixing charCodeAt to handle non-Basic-Multilingual-Plane characters if their presence earlier in the string is unknown\x3c/h4\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3eThis version might be used in for loops and the like when it is unknown whether non-BMP\x26nbsp;characters exist before the specified index position.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction fixedCharCodeAt (str, idx) {\n    // ex. fixedCharCodeAt (\'\\uD800\\uDC00\', 0); // 65536\n    // ex. fixedCharCodeAt (\'\\uD800\\uDC00\', 1); // 65536\n    idx \x3d idx || 0;\n    var code \x3d str.charCodeAt(idx);\n    var hi, low;\n    if (0xD800 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDBFF) { // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        hi \x3d code;\n        low \x3d str.charCodeAt(idx+1);\n        if (isNaN(low)) {\n            throw \'High surrogate not followed by low surrogate in fixedCharCodeAt()\';\n        }\n        return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n    }\n    if (0xDC00 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDFFF) { // Low surrogate\n        // We return false to allow loops to skip this iteration since should have already handled high surrogate above in the previous iteration\n        return false;\n        /*hi \x3d str.charCodeAt(idx-1);\n        low \x3d code;\n        return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;*/\n    }\n    return code;\n}\x3c/pre\x3e\r\n        \x3c/div\x3e\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example_3:_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_known"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample 3: Fixing charCodeAt to handle non-Basic-Multilingual-Plane characters if their presence earlier in the string is known\x3c/h4\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction knownCharCodeAt (str, idx) {\n    str +\x3d \'\';\n    var code,\n        end \x3d str.length;\n\n    var surrogatePairs \x3d /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n    while ((surrogatePairs.exec(str)) !\x3d null) {\n        var li \x3d surrogatePairs.lastIndex;\n        if (li - 2 \x26lt; idx) {\n            idx++;\n        }\n        else {\n            break;\n        }\n    }\n\n    if (idx \x26gt;\x3d end || idx \x26lt; 0) {\n        return NaN;\n    }\n\n    code \x3d str.charCodeAt(idx);\n\n    var hi, low;\n    if (0xD800 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDBFF) {\n        hi \x3d code;\n        low \x3d str.charCodeAt(idx+1); // Go one further, since one of the \x26quot;characters\x26quot; is part of a surrogate pair\n        return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n    }\n    return code;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Using_charCodeAt"\x3e\x3c/span\x3e\x3cspan id \x3d "Example_1:_Using_charCodeAt"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample 1: Using \x3ccode\x3echarCodeAt\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example returns 65, the Unicode value for A.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\n\x26quot;ABC\x26quot;.charCodeAt(0) // returns 65\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example_2:_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample 2: Fixing charCodeAt to handle non-Basic-Multilingual-Plane characters if their presence earlier in the string is unknown\x3c/h4\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3eThis version might be used in for loops and the like when it is unknown whether non-BMP\x26nbsp;characters exist before the specified index position.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction fixedCharCodeAt (str, idx) {\n    // ex. fixedCharCodeAt (\'\\uD800\\uDC00\', 0); // 65536\n    // ex. fixedCharCodeAt (\'\\uD800\\uDC00\', 1); // 65536\n    idx \x3d idx || 0;\n    var code \x3d str.charCodeAt(idx);\n    var hi, low;\n    if (0xD800 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDBFF) { // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n        hi \x3d code;\n        low \x3d str.charCodeAt(idx+1);\n        if (isNaN(low)) {\n            throw \'High surrogate not followed by low surrogate in fixedCharCodeAt()\';\n        }\n        return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n    }\n    if (0xDC00 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDFFF) { // Low surrogate\n        // We return false to allow loops to skip this iteration since should have already handled high surrogate above in the previous iteration\n        return false;\n        /*hi \x3d str.charCodeAt(idx-1);\n        low \x3d code;\n        return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;*/\n    }\n    return code;\n}\x3c/pre\x3e\r\n        \x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Example_3:_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_known"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample 3: Fixing charCodeAt to handle non-Basic-Multilingual-Plane characters if their presence earlier in the string is known\x3c/h4\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction knownCharCodeAt (str, idx) {\n    str +\x3d \'\';\n    var code,\n        end \x3d str.length;\n\n    var surrogatePairs \x3d /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n    while ((surrogatePairs.exec(str)) !\x3d null) {\n        var li \x3d surrogatePairs.lastIndex;\n        if (li - 2 \x26lt; idx) {\n            idx++;\n        }\n        else {\n            break;\n        }\n    }\n\n    if (idx \x26gt;\x3d end || idx \x26lt; 0) {\n        return NaN;\n    }\n\n    code \x3d str.charCodeAt(idx);\n\n    var hi, low;\n    if (0xD800 \x26lt;\x3d code \x26amp;\x26amp; code \x26lt;\x3d 0xDBFF) {\n        hi \x3d code;\n        low \x3d str.charCodeAt(idx+1); // Go one further, since one of the \x26quot;characters\x26quot; is part of a surrogate pair\n        return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n    }\n    return code;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/fromCharCode" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fromCharCode"\x3efromCharCode\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3echarAt\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Backward Compatibility","JavaScript 1.2","Examples","Example 1: Using charCodeAt","Example 2: Fixing charCodeAt to handle non-Basic-Multilingual-Plane characters if their presence earlier in the string is unknown","Example 3: Fixing charCodeAt to handle non-Basic-Multilingual-Plane characters if their presence earlier in the string is known","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/concat",
"title":"String.concat","_id":"4eea8570a4c86c4dba00010a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eCombines the text of two or more strings and returns a new string.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.concat(\x3cem\x3estring2\x3c/em\x3e, \x3cem\x3estring3\x3c/em\x3e[, ..., \x3cem\x3estringN\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3estring2...string\x3cem\x3eN\x3c/em\x3e\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eStrings to concatenate to this string.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3econcat\x3c/code\x3e combines the text from one or more strings and returns a new string. Changes to the text in one string do not affect the other string.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_concat"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3econcat\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example combines strings into a new string.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar hello \x3d \x26quot;Hello, \x26quot;;\n0 \x26\x26 console.log(hello.concat(\x26quot;Kevin\x26quot;, \x26quot; have a nice day.\x26quot;)); /* Hello, Kevin have a nice day. */\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_concat"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3econcat\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example combines strings into a new string.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar hello \x3d \x26quot;Hello, \x26quot;;\n0 \x26\x26 console.log(hello.concat(\x26quot;Kevin\x26quot;, \x26quot; have a nice day.\x26quot;)); /* Hello, Kevin have a nice day. */\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using concat"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf","title":"String.indexOf","_id":"4eea8570a4c86c4dba00010b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the index within the calling \x3ccode\x3eString\x3c/code\x3e object of the first occurrence of the specified value, starting the search at \x3ccode\x3efromIndex\x3c/code\x3e,\x3cbr/\x3e returns -1 if the value is not found.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.indexOf(\x3cem\x3esearchValue\x3c/em\x3e[, \x3cem\x3efromIndex\x3c/em\x3e]\x3c/code\x3e)\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esearchValue\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA string representing the value to search for.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efromIndex\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe location within the calling string to start the search from. It can be any integer between 0 and the length of the string. The default value is 0.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eCharacters in a string are indexed from left to right. The index of the first character is 0, and the index of the last character of a string called \x3ccode\x3estringName\x3c/code\x3e is \x3ccode\x3estringName.length - 1\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;Blue\x26quot;)    // returns 0\n\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;Blute\x26quot;)   // returns -1\n\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;Whale\x26quot;,0) // returns 5\n\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;Whale\x26quot;,5) // returns 5\n\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;\x26quot;,9)      // returns 9\n\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;\x26quot;,10)     // returns 10\n\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;\x26quot;,11)     // returns 10\x3c/pre\x3e\r\n        \n\x3cp\x3eThe \x3ccode\x3eindexOf\x3c/code\x3e method is case sensitive. For example, the following expression returns -1:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;blue\x26quot;) // returns -1\x3c/pre\x3e\r\n        \n\x3cp\x3eNote that \'0\' doesn\'t evaluate to \x3ccode\x3etrue\x3c/code\x3e and \'-1\' doesn\'t evaluate to \x3ccode\x3efalse\x3c/code\x3e. Therefore, when checking if a specific string exists within another string the correct way to check would be:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;Blue\x26quot;) !\x3d -1 // true\n\x26quot;Blue Whale\x26quot;.indexOf(\x26quot;Bloe\x26quot;) !\x3d -1 // false\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_indexOf_and_lastIndexOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eindexOf\x3c/code\x3e and \x3ccode\x3elastIndexOf\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eindexOf\x3c/code\x3e and \x3ccode\x3elastIndexOf\x3c/code\x3e to locate values in the string \x26quot;\x3ccode\x3eBrave new world\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar anyString\x3d\x26quot;Brave new world\x26quot;\n\n\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of the first w from the beginning is \x26quot; +\n   anyString.indexOf(\x26quot;w\x26quot;))          // Displays 8\n\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of the first w from the end is \x26quot; +\n   anyString.lastIndexOf(\x26quot;w\x26quot;))      // Displays 10\n\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of \'new\' from the beginning is \x26quot; +\n   anyString.indexOf(\x26quot;new\x26quot;))        // Displays 6\n\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of \'new\' from the end is \x26quot; +\n   anyString.lastIndexOf(\x26quot;new\x26quot;))    // Displays 6\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_indexOf_and_case-sensitivity"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: \x3ccode\x3eindexOf\x3c/code\x3e and case-sensitivity\x3c/h4\x3e\n\x3cp\x3eThe following example defines two string variables. The variables contain the same string except that the second string contains uppercase letters. The first \x3ccode\x3ewriteln\x3c/code\x3e method displays 19. But because the \x3ccode\x3eindexOf\x3c/code\x3e method is case sensitive, the string \x26quot;\x3ccode\x3echeddar\x3c/code\x3e\x26quot; is not found in \x3ccode\x3emyCapString\x3c/code\x3e, so the second \x3ccode\x3ewriteln\x3c/code\x3e method displays -1.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3emyString \x3d \x26quot;brie, pepper jack, cheddar\x26quot;\nmyCapString \x3d \x26quot;Brie, Pepper Jack, Cheddar\x26quot;\ndocument.writeln(\'myString.indexOf(\x26quot;cheddar\x26quot;) is \' +\n   myString.indexOf(\x26quot;cheddar\x26quot;))\ndocument.writeln(\'\x26lt;P\x26gt;myCapString.indexOf(\x26quot;cheddar\x26quot;) is \' +\n   myCapString.indexOf(\x26quot;cheddar\x26quot;))\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Using_indexOf_to_count_occurrences_of_a_letter_in_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eindexOf\x3c/code\x3e to count occurrences of a letter in a string\x3c/h4\x3e\n\x3cp\x3eThe following example sets \x3ccode\x3ecount\x3c/code\x3e to the number of occurrences of the letter \x3ccode\x3ex\x3c/code\x3e in the string \x3ccode\x3estr\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ecount \x3d 0;\npos \x3d str.indexOf(\x26quot;x\x26quot;);\nwhile ( pos !\x3d -1 ) {\n   count++;\n   pos \x3d str.indexOf(\x26quot;x\x26quot;,pos+1);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_indexOf_and_lastIndexOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eindexOf\x3c/code\x3e and \x3ccode\x3elastIndexOf\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eindexOf\x3c/code\x3e and \x3ccode\x3elastIndexOf\x3c/code\x3e to locate values in the string \x26quot;\x3ccode\x3eBrave new world\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar anyString\x3d\x26quot;Brave new world\x26quot;\n\n\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of the first w from the beginning is \x26quot; +\n   anyString.indexOf(\x26quot;w\x26quot;))          // Displays 8\n\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of the first w from the end is \x26quot; +\n   anyString.lastIndexOf(\x26quot;w\x26quot;))      // Displays 10\n\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of \'new\' from the beginning is \x26quot; +\n   anyString.indexOf(\x26quot;new\x26quot;))        // Displays 6\n\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of \'new\' from the end is \x26quot; +\n   anyString.lastIndexOf(\x26quot;new\x26quot;))    // Displays 6\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_indexOf_and_case-sensitivity"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: \x3ccode\x3eindexOf\x3c/code\x3e and case-sensitivity\x3c/h4\x3e\n\x3cp\x3eThe following example defines two string variables. The variables contain the same string except that the second string contains uppercase letters. The first \x3ccode\x3ewriteln\x3c/code\x3e method displays 19. But because the \x3ccode\x3eindexOf\x3c/code\x3e method is case sensitive, the string \x26quot;\x3ccode\x3echeddar\x3c/code\x3e\x26quot; is not found in \x3ccode\x3emyCapString\x3c/code\x3e, so the second \x3ccode\x3ewriteln\x3c/code\x3e method displays -1.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3emyString \x3d \x26quot;brie, pepper jack, cheddar\x26quot;\nmyCapString \x3d \x26quot;Brie, Pepper Jack, Cheddar\x26quot;\ndocument.writeln(\'myString.indexOf(\x26quot;cheddar\x26quot;) is \' +\n   myString.indexOf(\x26quot;cheddar\x26quot;))\ndocument.writeln(\'\x26lt;P\x26gt;myCapString.indexOf(\x26quot;cheddar\x26quot;) is \' +\n   myCapString.indexOf(\x26quot;cheddar\x26quot;))\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Using_indexOf_to_count_occurrences_of_a_letter_in_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eindexOf\x3c/code\x3e to count occurrences of a letter in a string\x3c/h4\x3e\n\x3cp\x3eThe following example sets \x3ccode\x3ecount\x3c/code\x3e to the number of occurrences of the letter \x3ccode\x3ex\x3c/code\x3e in the string \x3ccode\x3estr\x3c/code\x3e:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3ecount \x3d 0;\npos \x3d str.indexOf(\x26quot;x\x26quot;);\nwhile ( pos !\x3d -1 ) {\n   count++;\n   pos \x3d str.indexOf(\x26quot;x\x26quot;,pos+1);\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3echarAt\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/lastIndexOf"\x3elastIndexOf\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/split" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split"\x3esplit\x3c/a\x3e, \x3ca class \x3d "internal" title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Array/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf"\x3eArray.indexOf\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using indexOf and lastIndexOf","Example: indexOf and case-sensitivity","Example: Using indexOf to count occurrences of a letter in a string","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/lastIndexOf","title":"String.lastIndexOf","_id":"4eea8571a4c86c4dba00010c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the index within the calling \x3ccode\x3eString\x3c/code\x3e object of the last occurrence of the specified value, or -1 if not found. The calling string is searched backward, starting at \x3ccode\x3efromIndex\x3c/code\x3e.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.lastIndexOf(\x3cem\x3esearchValue\x3c/em\x3e[, \x3cem\x3efromIndex\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3esearchValue\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA string representing the value to search for.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3efromIndex\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe location within the calling string to start the search from, indexed from left to right. It can be any integer between 0 and the length of the string. The default value is the length of the string.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eCharacters in a string are indexed from left to right. The index of the first character is 0, and the index of the last character is \x3ccode\x3estringName.length - 1\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e\x26quot;canal\x26quot;.lastIndexOf(\x26quot;a\x26quot;)   // returns 3\n\x26quot;canal\x26quot;.lastIndexOf(\x26quot;a\x26quot;,2) // returns 1\n\x26quot;canal\x26quot;.lastIndexOf(\x26quot;a\x26quot;,0) // returns -1\n\x26quot;canal\x26quot;.lastIndexOf(\x26quot;x\x26quot;)   // returns -1\x3c/pre\x3e\r\n        \n\x3cp\x3eThe \x3ccode\x3elastIndexOf\x3c/code\x3e method is case sensitive. For example, the following expression returns -1:\x3c/p\x3e\n\x3cpre\x3e\x26quot;Blue Whale, Killer Whale\x26quot;.lastIndexOf(\x26quot;blue\x26quot;) // returns -1\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_indexOf_and_lastIndexOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eindexOf\x3c/code\x3e and \x3ccode\x3elastIndexOf\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eindexOf\x3c/code\x3e and \x3ccode\x3elastIndexOf\x3c/code\x3e to locate values in the string \x26quot;\x3ccode\x3eBrave new world\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar anyString \x3d \x26quot;Brave new world\x26quot;\n\n// Displays 8\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of the first w from the beginning is \x26quot; +\n   anyString.indexOf(\x26quot;w\x26quot;))\n// Displays 10\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of the first w from the end is \x26quot; +\n   anyString.lastIndexOf(\x26quot;w\x26quot;))\n// Displays 6\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of \'new\' from the beginning is \x26quot; +\n   anyString.indexOf(\x26quot;new\x26quot;))\n// Displays 6\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of \'new\' from the end is \x26quot; +\n   anyString.lastIndexOf(\x26quot;new\x26quot;))\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_indexOf_and_lastIndexOf"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eindexOf\x3c/code\x3e and \x3ccode\x3elastIndexOf\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eindexOf\x3c/code\x3e and \x3ccode\x3elastIndexOf\x3c/code\x3e to locate values in the string \x26quot;\x3ccode\x3eBrave new world\x3c/code\x3e\x26quot;.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar anyString \x3d \x26quot;Brave new world\x26quot;\n\n// Displays 8\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of the first w from the beginning is \x26quot; +\n   anyString.indexOf(\x26quot;w\x26quot;))\n// Displays 10\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of the first w from the end is \x26quot; +\n   anyString.lastIndexOf(\x26quot;w\x26quot;))\n// Displays 6\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of \'new\' from the beginning is \x26quot; +\n   anyString.indexOf(\x26quot;new\x26quot;))\n// Displays 6\ndocument.write(\x26quot;\x26lt;P\x26gt;The index of \'new\' from the end is \x26quot; +\n   anyString.lastIndexOf(\x26quot;new\x26quot;))\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3echarAt\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf"\x3eindexOf\x3c/a\x3e, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/split" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split"\x3esplit\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using indexOf and lastIndexOf","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match","title":"String.match","_id":"4eea8572a4c86c4dba00010d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eUsed to retrieve the matches when matching a\x26nbsp;\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e\x3c/code\x3e\x26nbsp;against a\x26nbsp;\x3cem\x3eregular expression\x3c/em\x3e.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.match(\x3cem\x3eregexp\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eIf the regular expression does not include the \x3ccode\x3eg\x3c/code\x3e flag, returns the same result as \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/exec" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec"\x3e\x3cem\x3eregexp\x3c/em\x3e.exec(\x3cem\x3estring\x3c/em\x3e)\x3c/a\x3e\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eIf the regular expression includes the \x3ccode\x3eg\x3c/code\x3e flag, the method returns an \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e\x3c/code\x3e containing all matches. If there were no matches, the method returns \x3ccode\x3enull\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eThe returned \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array"\x3eArray\x3c/a\x3e\x3c/code\x3e has an extra \x3ccode\x3einput\x3c/code\x3e property, which contains the regexp that generated it as a result. In addition, it has an \x3ccode\x3eindex\x3c/code\x3e property, which represents the zero-based index of the match in the string.\x3c/p\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eregexp\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA \x3ca title \x3d "en/JavaScript/Reference/Global Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3eregular expression\x3c/a\x3e object. If a non-RegExp object \x3ccode\x3eobj\x3c/code\x3e is passed, it is implicitly converted to a RegExp by using \x3ccode\x3enew RegExp(obj)\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "geckoVersionNote"\x3e \x3cp\x3e\n\x3cdiv class \x3d "geckoVersionHeading"\x3eGecko 8.0 note\x3cdiv style \x3d "font-size:9px; position:relative; top:-5px; font-style:italic;"\x3e(Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)\n\x3c/div\x3e\x3c/div\x3e\n\x3c/p\x3e \x3cp\x3ePrior to Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)\n, \x3ccode\x3ematch()\x3c/code\x3e was implemented incorrectly; when it was called with no parameters or with \x3ccode\x3eundefined\x3c/code\x3e, it would match against undefined, instead of always returning an empty string. This is fixed.\x3c/p\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eNotes\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3eIf you need to know if a string matches a regular expression \x3ccode\x3eregexp\x3c/code\x3e, use \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/test" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test"\x3e\x3cem\x3eregexp\x3c/em\x3e.test(\x3cem\x3estring\x3c/em\x3e)\x3c/a\x3e\x3c/code\x3e.\x3c/li\x3e \x3cli\x3eIf you only want the first match found, you might want to use \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/exec" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec"\x3e\x3cem\x3eregexp\x3c/em\x3e.exec(\x3cem\x3estring\x3c/em\x3e)\x3c/a\x3e\x3c/code\x3e instead.\x3c/li\x3e \x3cli\x3eSee \x26sect;15.5.4.10 of the ECMA-262 specification.\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Notes"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eNotes\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3eIf you need to know if a string matches a regular expression \x3ccode\x3eregexp\x3c/code\x3e, use \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/test" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test"\x3e\x3cem\x3eregexp\x3c/em\x3e.test(\x3cem\x3estring\x3c/em\x3e)\x3c/a\x3e\x3c/code\x3e.\x3c/li\x3e \x3cli\x3eIf you only want the first match found, you might want to use \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/exec" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec"\x3e\x3cem\x3eregexp\x3c/em\x3e.exec(\x3cem\x3estring\x3c/em\x3e)\x3c/a\x3e\x3c/code\x3e instead.\x3c/li\x3e \x3cli\x3eSee \x26sect;15.5.4.10 of the ECMA-262 specification.\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_6\"\x3e\x3cspan id \x3d \"Examples\"\x3e\x3c/span\x3e\x3ch2 class \x3d \"editable\"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d \"section_7\"\x3e\x3cspan id \x3d \"Example:_Using_match\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eExample: Using \x3ccode\x3ematch\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3ematch\x3c/code\x3e is used to find \x26quot;\x3ccode\x3eChapter\x3c/code\x3e\x26quot; followed by 1 or more numeric characters followed by a decimal point and numeric character 0 or more times. The regular expression includes the \x3ccode\x3ei\x3c/code\x3e flag so that case will be ignored.\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;script type\x3d\x26quot;text/javascript\x26quot;\x26gt;\nstr \x3d \x26quot;For more information, see Chapter 3.4.5.1\x26quot;;\nre \x3d /(chapter \\d+(\\.\\d)*)/i;\nfound \x3d str.match(re);\nalert(found);\n\x26lt;/script\x26gt;\n\x3c/pre\x3e\n\x3cp\x3eThis returns the array containing Chapter 3.4.5.1,Chapter 3.4.5.1,.1\x3c/p\x3e\n\x3cp\x3e\x26quot;\x3ccode\x3eChapter 3.4.5.1\x3c/code\x3e\x26quot; is the first match and the first value remembered from \x3ccode\x3e(Chapter \\d+(\\.\\d)*)\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3e\x26quot;\x3ccode\x3e.1\x3c/code\x3e\x26quot; is the second value remembered from \x3ccode\x3e(\\.\\d)\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d \"section_8\"\x3e\x3cspan id \x3d \"Example:_Using_global_and_ignore_case_flags_with_match\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eExample: Using global and ignore case flags with \x3ccode\x3ematch\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following example demonstrates the use of the global and ignore case flags with \x3ccode\x3ematch\x3c/code\x3e. All letters A through E and a through e are returned, each its own element in the array\x3c/p\x3e\n\x3cpre\x3e\nvar str \x3d \x26quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\x26quot;;\nvar regexp \x3d /[A-E]/gi;\nvar matches_array \x3d str.match(regexp);\nalert(matches_array);\n\x3c/pre\x3e\n\x3cp\x3e\x3ccode\x3ematches_array\x3c/code\x3e now equals \x3ccode\x3e['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e",
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Using_match"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3ematch\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3ematch\x3c/code\x3e is used to find \x26quot;\x3ccode\x3eChapter\x3c/code\x3e\x26quot; followed by 1 or more numeric characters followed by a decimal point and numeric character 0 or more times. The regular expression includes the \x3ccode\x3ei\x3c/code\x3e flag so that case will be ignored.\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;script type\x3d\x26quot;text/javascript\x26quot;\x26gt;\nstr \x3d \x26quot;For more information, see Chapter 3.4.5.1\x26quot;;\nre \x3d /(chapter \\d+(\\.\\d)*)/i;\nfound \x3d str.match(re);\nalert(found);\n\x26lt;/script\x26gt;\n\x3c/pre\x3e\n\x3cp\x3eThis returns the array containing Chapter 3.4.5.1,Chapter 3.4.5.1,.1\x3c/p\x3e\n\x3cp\x3e\x26quot;\x3ccode\x3eChapter 3.4.5.1\x3c/code\x3e\x26quot; is the first match and the first value remembered from \x3ccode\x3e(Chapter \\d+(\\.\\d)*)\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3e\x26quot;\x3ccode\x3e.1\x3c/code\x3e\x26quot; is the second value remembered from \x3ccode\x3e(\\.\\d)\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_8\"\x3e\x3cspan id \x3d \"Example:_Using_global_and_ignore_case_flags_with_match\"\x3e\x3c/span\x3e\x3ch3 class \x3d \"editable\"\x3eExample: Using global and ignore case flags with \x3ccode\x3ematch\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following example demonstrates the use of the global and ignore case flags with \x3ccode\x3ematch\x3c/code\x3e. All letters A through E and a through e are returned, each its own element in the array\x3c/p\x3e\n\x3cpre\x3e\nvar str \x3d \x26quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\x26quot;;\nvar regexp \x3d /[A-E]/gi;\nvar matches_array \x3d str.match(regexp);\nalert(matches_array);\n\x3c/pre\x3e\n\x3cp\x3e\x3ccode\x3ematches_array\x3c/code\x3e now equals \x3ccode\x3e['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e"],
"sectionNames":["Summary","Syntax","Parameters","Description","Notes","Examples","Example: Using match","Example: Using global and ignore case flags with match"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/quote","title":"String.quote","_id":"4eea8573a4c86c4dba00010e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estr\x3c/em\x3e.quote()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3ctable class \x3d "standard-table" style \x3d "table-layout: fixed; width: 100%;"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" scope \x3d "col"\x3e\x3ccode\x3estr\x3c/code\x3e\x3c/th\x3e \x3cth class \x3d "header" scope \x3d "col"\x3e\x3ccode\x3estr.quote()\x3c/code\x3e\x3c/th\x3e \x3cth class \x3d "header" scope \x3d "col"\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/eval" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval"\x3eeval\x3c/a\x3e(str.quote())\x3c/code\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eHello world!\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot;Hello world!\x26quot;\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eHello world!\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eHello\x3cbr/\x3e \x26nbsp; \x26nbsp; \x26nbsp; \x26nbsp; world!\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot;Hello\\n\\tworld!\x26quot;\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eHello\x3cbr/\x3e \x26nbsp; \x26nbsp; \x26nbsp; \x26nbsp; world!\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x26quot; \\ \x26mdash; \'\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\\\x26quot; \\\\ \\u2014 \'\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x26quot; \\ \x26mdash; \'\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e'],
"sectionNames":["Syntax","Examples"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/search","title":"String.search","_id":"4eea8578a4c86c4dba00010f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eExecutes the search for a match between a regular expression and this \x3ccode\x3eString\x3c/code\x3e object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.search(\x3cem\x3eregexp\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eregexp\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eA \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3e regular expression\x3c/a\x3e object. If a non-RegExp object \x3ccode\x3eobj\x3c/code\x3e is passed, it is implicitly converted to a RegExp by using \x3ccode\x3enew RegExp(obj)\x3c/code\x3e.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf successful, search returns the index of the regular expression inside the string. Otherwise, it returns -1.\x3c/p\x3e\n\x3cp\x3eWhen you want to know whether a pattern is found in a string use \x3ccode\x3esearch\x3c/code\x3e (similar to the regular expression \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/test" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test"\x3etest\x3c/a\x3e\x3c/code\x3e method); for more information (but slower execution) use \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/match" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match"\x3ematch\x3c/a\x3e\x3c/code\x3e (similar to the regular expression \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/exec" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec"\x3eexec\x3c/a\x3e\x3c/code\x3e method).\x3c/p\x3e\n\x3cdiv class \x3d "geckoVersionNote"\x3e \x3cp\x3e\n\x3cdiv class \x3d "geckoVersionHeading"\x3eGecko 8.0 note\x3cdiv style \x3d "font-size:9px; position:relative; top:-5px; font-style:italic;"\x3e(Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)\n\x3c/div\x3e\x3c/div\x3e\n\x3c/p\x3e \x3cp\x3ePrior to Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)\n, \x3ccode\x3esearch()\x3c/code\x3e was implemented incorrectly; when it was called with no parameters or with \x3ccode\x3eundefined\x3c/code\x3e, it would match against the string \x26quot;undefined\x26quot;, instead of matching against the empty string. This is fixed; now \x3ccode\x3e\x26quot;a\x26quot;.search()\x3c/code\x3e and \x3ccode\x3e\x26quot;a\x26quot;.search(undefined)\x3c/code\x3e correctly return 0.\x3c/p\x3e\n\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_search"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esearch\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example prints a message which depends on the success of the test.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction testinput(re, str){\n   if (str.search(re) !\x3d -1){\n      midstring \x3d \x26quot; contains \x26quot;;\n   }\n   else{\n      midstring \x3d \x26quot; does not contain \x26quot;;\n   }\n   document.write (str + midstring + re);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_search"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esearch\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example prints a message which depends on the success of the test.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction testinput(re, str){\n   if (str.search(re) !\x3d -1){\n      midstring \x3d \x26quot; contains \x26quot;;\n   }\n   else{\n      midstring \x3d \x26quot; does not contain \x26quot;;\n   }\n   document.write (str + midstring + re);\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using search"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/slice","title":"String.slice","_id":"4eea8579a4c86c4dba000110","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eExtracts a section of a string and returns a new string.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.slice(\x3cem\x3ebeginslice\x3c/em\x3e[, \x3cem\x3eendSlice\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebeginSlice\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eThe zero-based index at which to begin extraction.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eendSlice\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eThe zero-based index at which to end extraction. If omitted, \x3ccode\x3eslice\x3c/code\x3e extracts to the end of the string.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eslice\x3c/code\x3e extracts the text from one string and returns a new string. Changes to the text in one string do not affect the other string.\x3c/p\x3e\n\x3cp\x3e\x3ccode\x3eslice\x3c/code\x3e extracts up to but not including \x3ccode\x3eendSlice\x3c/code\x3e. \x3ccode\x3estring.slice(1,4)\x3c/code\x3e extracts the second character through the fourth character (characters indexed 1, 2, and 3).\x3c/p\x3e\n\x3cp\x3eAs a negative index, endSlice indicates an offset from the end of the string. string.slice(2,-1) extracts the third character through the second to last character in the string.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_slice_to_create_a_new_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eslice\x3c/code\x3e to create a new string\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eslice\x3c/code\x3e to create a new string.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// assumes a print function is defined\nvar str1 \x3d \x26quot;The morning is upon us.\x26quot;;\nvar str2 \x3d str1.slice(4, -2);\nprint(str2);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis writes:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nmorning is upon u\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_slice_to_create_a_new_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eslice\x3c/code\x3e to create a new string\x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3eslice\x3c/code\x3e to create a new string.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// assumes a print function is defined\nvar str1 \x3d \x26quot;The morning is upon us.\x26quot;;\nvar str2 \x3d str1.slice(4, -2);\nprint(str2);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis writes:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\nmorning is upon u\n\x3c/pre\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using slice to create a new string"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split","title":"String.split","_id":"4eea857ba4c86c4dba000111","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eSplits a \x3ccode\x3eString\x3c/code\x3e object into an array of strings by separating the string into substrings.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 3rd Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.split([\x3cem\x3eseparator\x3c/em\x3e][, \x3cem\x3elimit\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eseparator\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the character to use for separating the string. The \x3ccode\x3eseparator\x3c/code\x3e is treated as a string or a \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp"\x3eregular expression\x3c/a\x3e. If \x3ccode\x3eseparator\x3c/code\x3e is omitted, the array returned contains one element consisting of the entire string.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3elimit\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eInteger specifying a limit on the number of splits to be found. \x26nbsp;The\x26nbsp;\x3ccode\x3esplit\x3c/code\x3e method still splits on every match of\x26nbsp;\x3ccode\x3eseparator\x3c/code\x3e, but it truncates the returned array to at most\x26nbsp;\x3ccode\x3elimit\x3c/code\x3e elements.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3esplit\x3c/code\x3e method returns the new array.\x3c/p\x3e\n\x3cp\x3eWhen found, \x3ccode\x3eseparator\x3c/code\x3e is removed from the string and the substrings are returned in an array. If \x3ccode\x3eseparator\x3c/code\x3e is omitted, the array contains one element consisting of the entire string.\x3c/p\x3e\n\x3cp\x3eIf \x3ccode\x3eseparator\x3c/code\x3e is a regular expression that contains capturing parentheses, then each time separator is matched the results (including any undefined results) of the capturing parentheses are spliced into the output array. However, not all browsers support this capability.\x3c/p\x3e\n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;When the string is empty, \x3ccode\x3esplit\x3c/code\x3e returns an array containing one empty string, rather than an empty array.\x3c/div\x3e\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_split"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esplit\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example defines a function that splits a string into an array of strings using the specified separator. After splitting the string, the function displays messages indicating the original string (before the split), the separator used, the number of elements in the array, and the individual array elements.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction splitString(stringToSplit,separator)\n{\n  var arrayOfStrings \x3d stringToSplit.split(separator);\n  print(\'The original string is: \x26quot;\' + stringToSplit + \'\x26quot;\');\n  print(\'The separator is: \x26quot;\' + separator + \'\x26quot;\');\n  print(\x26quot;The array has \x26quot; + arrayOfStrings.length + \x26quot; elements: \x26quot;);\n\n  for (var i\x3d0; i \x26lt; arrayOfStrings.length; i++)\n    print(arrayOfStrings[i] + \x26quot; / \x26quot;);\n}\n\nvar tempestString \x3d \x26quot;Oh brave new world that has such people in it.\x26quot;;\nvar monthString \x3d \x26quot;Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec\x26quot;;\n\nvar space \x3d \x26quot; \x26quot;;\nvar comma \x3d \x26quot;,\x26quot;;\n\nsplitString(tempestString, space);\nsplitString(tempestString);\nsplitString(monthString, comma);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis example produces the following output:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eThe original string is: \x26quot;Oh brave new world that has such people in it.\x26quot;\nThe separator is: \x26quot; \x26quot;\nThe array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it. /\n\nThe original string is: \x26quot;Oh brave new world that has such people in it.\x26quot;\nThe separator is: \x26quot;undefined\x26quot;\nThe array has 1 elements: Oh brave new world that has such people in it. /\n\nThe original string is: \x26quot;Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec\x26quot;\nThe separator is: \x26quot;,\x26quot;\nThe array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec /\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Removing_spaces_from_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Removing spaces from a string\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3esplit\x3c/code\x3e looks for 0 or more spaces followed by a semicolon followed by 0 or more spaces and, when found, removes the spaces from the string. \x3ccode\x3enameList\x3c/code\x3e is the array returned as a result of \x3ccode\x3esplit\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar names \x3d \x26quot;Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand \x26quot;;\nprint(names);\nvar re \x3d /\\s*;\\s*/;\nvar nameList \x3d names.split(re);\nprint(nameList);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis prints two lines; the first line prints the original string, and the second line prints the resulting array.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eHarry Trump\x26nbsp;;Fred Barney; Helen Rigby\x26nbsp;; Bill Abel\x26nbsp;;Chris Hand\nHarry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Returning_a_limited_number_of_splits"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Returning a limited number of splits\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3esplit\x3c/code\x3e looks for 0 or more spaces in a string and returns the first 3 splits that it finds.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar myString \x3d \x26quot;Hello World. How are you doing?\x26quot;;\nvar splits \x3d myString.split(\x26quot; \x26quot;, 3);\nprint(splits);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eHello,World.,How\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Capturing_parentheses"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Capturing parentheses\x3c/h4\x3e\n\x3cp\x3eIf \x3ccode\x3eseparator\x3c/code\x3e contains capturing parentheses, matched results are returned in the array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar myString \x3d \x26quot;Hello 1 word. Sentence number 2.\x26quot;;\nvar splits \x3d myString.split(/(\\d)/);\nprint(splits);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eHello ,1, word. Sentence number ,2, .\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_split"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3esplit\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example defines a function that splits a string into an array of strings using the specified separator. After splitting the string, the function displays messages indicating the original string (before the split), the separator used, the number of elements in the array, and the individual array elements.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction splitString(stringToSplit,separator)\n{\n  var arrayOfStrings \x3d stringToSplit.split(separator);\n  print(\'The original string is: \x26quot;\' + stringToSplit + \'\x26quot;\');\n  print(\'The separator is: \x26quot;\' + separator + \'\x26quot;\');\n  print(\x26quot;The array has \x26quot; + arrayOfStrings.length + \x26quot; elements: \x26quot;);\n\n  for (var i\x3d0; i \x26lt; arrayOfStrings.length; i++)\n    print(arrayOfStrings[i] + \x26quot; / \x26quot;);\n}\n\nvar tempestString \x3d \x26quot;Oh brave new world that has such people in it.\x26quot;;\nvar monthString \x3d \x26quot;Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec\x26quot;;\n\nvar space \x3d \x26quot; \x26quot;;\nvar comma \x3d \x26quot;,\x26quot;;\n\nsplitString(tempestString, space);\nsplitString(tempestString);\nsplitString(monthString, comma);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis example produces the following output:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eThe original string is: \x26quot;Oh brave new world that has such people in it.\x26quot;\nThe separator is: \x26quot; \x26quot;\nThe array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it. /\n\nThe original string is: \x26quot;Oh brave new world that has such people in it.\x26quot;\nThe separator is: \x26quot;undefined\x26quot;\nThe array has 1 elements: Oh brave new world that has such people in it. /\n\nThe original string is: \x26quot;Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec\x26quot;\nThe separator is: \x26quot;,\x26quot;\nThe array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec /\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Example:_Removing_spaces_from_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Removing spaces from a string\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3esplit\x3c/code\x3e looks for 0 or more spaces followed by a semicolon followed by 0 or more spaces and, when found, removes the spaces from the string. \x3ccode\x3enameList\x3c/code\x3e is the array returned as a result of \x3ccode\x3esplit\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar names \x3d \x26quot;Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand \x26quot;;\nprint(names);\nvar re \x3d /\\s*;\\s*/;\nvar nameList \x3d names.split(re);\nprint(nameList);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis prints two lines; the first line prints the original string, and the second line prints the resulting array.\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eHarry Trump\x26nbsp;;Fred Barney; Helen Rigby\x26nbsp;; Bill Abel\x26nbsp;;Chris Hand\nHarry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Example:_Returning_a_limited_number_of_splits"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Returning a limited number of splits\x3c/h4\x3e\n\x3cp\x3eIn the following example, \x3ccode\x3esplit\x3c/code\x3e looks for 0 or more spaces in a string and returns the first 3 splits that it finds.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar myString \x3d \x26quot;Hello World. How are you doing?\x26quot;;\nvar splits \x3d myString.split(\x26quot; \x26quot;, 3);\nprint(splits);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eHello,World.,How\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Example:_Capturing_parentheses"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Capturing parentheses\x3c/h4\x3e\n\x3cp\x3eIf \x3ccode\x3eseparator\x3c/code\x3e contains capturing parentheses, matched results are returned in the array.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar myString \x3d \x26quot;Hello 1 word. Sentence number 2.\x26quot;;\nvar splits \x3d myString.split(/(\\d)/);\nprint(splits);\x3c/pre\x3e\r\n        \n\x3cp\x3eThis script displays the following:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eHello ,1, word. Sentence number ,2, .\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/charAt" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/charAt"\x3echarAt\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/indexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf"\x3eindexOf\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/lastIndexOf" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/lastIndexOf"\x3elastIndexOf\x3c/a\x3e, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Array/join" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join"\x3eArray:join\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using split","Example: Removing spaces from a string","Example: Returning a limited number of splits","Example: Capturing parentheses","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase","title":"String.toLocaleLowerCase","_id":"4eea857ba4c86c4dba000112","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the calling string value converted to lower case, according to any locale-specific case mappings.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e toLocaleLowerCase() \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoLocaleLowerCase\x3c/code\x3e method returns the value of the string converted to lower case according to any locale-specific case mappings. \x3ccode\x3etoLocaleLowerCase\x3c/code\x3e does not affect the value of the string itself. In most cases, this will produce the same result as \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3etoLowerCase()\x3c/a\x3e, but for some locales, such as Turkish, whose case mappings do not follow the default case mappings in Unicode, there may be a different result.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toUpperCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_toLocaleLowerCase"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoLocaleLowerCase\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the string \x26quot;alphabet\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar upperText\x3d\x26quot;ALPHABET\x26quot;;\ndocument.write(upperText.toLocaleLowerCase());\x3c/pre\x3e\r\n        \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toUpperCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_toLocaleLowerCase"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoLocaleLowerCase\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the string \x26quot;alphabet\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar upperText\x3d\x26quot;ALPHABET\x26quot;;\ndocument.write(upperText.toLocaleLowerCase());\x3c/pre\x3e\r\n        \x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3etoLowerCase()\x3c/a\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using toLocaleLowerCase",
"See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase","title":"String.toLowerCase","_id":"4eea857ca4c86c4dba000113","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the calling string value converted to lowercase.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.toLowerCase()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoLowerCase\x3c/code\x3e method returns the value of the string converted to lowercase. \x3ccode\x3etoLowerCase\x3c/code\x3e does not affect the value of the string itself.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLowerCase"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the lowercase string \x26quot;\x3ccode\x3ealphabet\x3c/code\x3e\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar upperText\x3d\x26quot;ALPHABET\x26quot;;\ndocument.write(upperText.toLowerCase());\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLowerCase"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoLowerCase\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the lowercase string \x26quot;\x3ccode\x3ealphabet\x3c/code\x3e\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar upperText\x3d\x26quot;ALPHABET\x26quot;;\ndocument.write(upperText.toLowerCase());\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/toLocaleLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase"\x3etoLocaleLowerCase\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3etoUpperCase\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using toLowerCase","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase","title":"String.toUpperCase","_id":"4eea857ea4c86c4dba000114","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.toUpperCase()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoUpperCase\x3c/code\x3e method returns the value of the string converted to uppercase. \x3ccode\x3etoUpperCase\x3c/code\x3e does not affect the value of the string itself.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_toUpperCase"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the string \x26quot;\x3ccode\x3eALPHABET\x3c/code\x3e\x26quot;:\x3c/p\x3e\n\x3cpre\x3e\nvar lowerText\x3d\x26quot;alphabet\x26quot;;\ndocument.write(lowerText.toUpperCase());\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_toUpperCase"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoUpperCase\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the string \x26quot;\x3ccode\x3eALPHABET\x3c/code\x3e\x26quot;:\x3c/p\x3e\n\x3cpre\x3e\nvar lowerText\x3d\x26quot;alphabet\x26quot;;\ndocument.write(lowerText.toUpperCase());\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/toLocaleUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase"\x3etoLocaleUpperCase\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/toLowerCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLowerCase"\x3etoLowerCase\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Syntax","Parameters","Description","Examples","Example: Using toUpperCase","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase","title":"String.toLocaleUpperCase","_id":"4eea8582a4c86c4dba000115","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the calling string value converted to upper case, according to any locale-specific case mappings.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.2\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e toLocaleUpperCase() \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoLocaleUpperCase\x3c/code\x3e method returns the value of the string converted to upper case according to any locale-specific case mappings. \x3ccode\x3etoLocaleUpperCase\x3c/code\x3e does not affect the value of the string itself. In most cases, this will produce the same result as \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3etoUpperCase()\x3c/a\x3e, but for some locales, such as Turkish, whose case mappings do not follow the default case mappings in Unicode, there may be a different result.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toUpperCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_toLocaleUpperCase"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoLocaleUpperCase\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the string \x26quot;ALPHABET\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar lowerText\x3d\x26quot;alphabet\x26quot;;\ndocument.write(lowerText.toLocaleUpperCase());\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toUpperCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_toLocaleUpperCase"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoLocaleUpperCase\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the string \x26quot;ALPHABET\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar lowerText\x3d\x26quot;alphabet\x26quot;;\ndocument.write(lowerText.toLocaleUpperCase());\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/String/toUpperCase" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toUpperCase"\x3etoUpperCase()\x3c/a\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using toLocaleUpperCase",
"See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toSource","title":"String.toSource","_id":"4eea8583a4c86c4dba000116","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns a string representing the source code of the object.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.toSource()\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etoSource\x3c/code\x3e method returns the following values:\n\x3c/p\x3e\x3cp\x3e\n\x3c/p\x3e\n\x3cul\x3e\x3cli\x3e For the built-in \x3ccode\x3eString\x3c/code\x3e object, \x3ccode\x3etoSource\x3c/code\x3e returns the following string indicating that the source code is not available:\n\x3c/li\x3e\x3c/ul\x3e\n\x3cpre class \x3d "eval"\x3efunction String() {[native code]}\n\x3c/pre\x3e\n\x3cul\x3e\x3cli\x3e For instances of \x3ccode\x3eString\x3c/code\x3e or string literals, \x3ccode\x3etoSource\x3c/code\x3e returns a string representing the source code.\n\x3c/li\x3e\x3c/ul\x3e\n\x3cp\x3eThis method is usually called internally by JavaScript and not explicitly in code.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.prototype.toSource\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/toString",
"title":"String.toString","_id":"4eea8583a4c86c4dba000117","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the specified object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.toString()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eString\x3c/code\x3e object overrides the \x3ccode\x3etoString\x3c/code\x3e method of the \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e\x3c/code\x3e object; it does not inherit \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\x3c/code\x3e. For \x3ccode\x3eString\x3c/code\x3e objects, the \x3ccode\x3etoString\x3c/code\x3e method returns a string representation of the object.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the string value of a String object:\x3c/p\x3e\n\x3cpre\x3e\nx \x3d new String(\x26quot;Hello world\x26quot;);\nalert(x.toString())      // Displays \x26quot;Hello world\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toString"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etoString\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the string value of a String object:\x3c/p\x3e\n\x3cpre\x3e\nx \x3d new String(\x26quot;Hello world\x26quot;);\nalert(x.toString())      // Displays \x26quot;Hello world\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using toString","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim","title":"String.Trim","_id":"4eea8584a4c86c4dba000118","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRemoves whitespace from both ends of the string.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.trim()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThe \x3ccode\x3etrim\x3c/code\x3e method returns the string stripped of whitespace from both ends. \x3ccode\x3etrim\x3c/code\x3e does not affect the value of the string itself.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLowerCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_trim"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3etrim\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following example displays the lowercase string \x26quot;foo\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar orig \x3d \x26quot;   foo  \x26quot;;\nalert(orig.trim());\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLowerCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_trim"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample: Using \x3ccode\x3etrim\x3c/code\x3e\x3c/h3\x3e\n\x3cp\x3eThe following example displays the lowercase string \x26quot;foo\x26quot;:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar orig \x3d \x26quot;   foo  \x26quot;;\nalert(orig.trim());\x3c/pre\x3e\r\n        \n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee Also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d "internal" title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/String/trimLeft" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimLeft"\x3e\x3ccode\x3etrimLeft()\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d "internal" title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/String/trimRight" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight"\x3e\x3ccode\x3etrimRight()\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3cspan id \x3d "Compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCompatibility\x3c/h2\x3e\n\x3cp\x3eRunning the following code before any other code will create \x3ccode\x3eString.trim\x3c/code\x3e if it\'s not natively available.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eif(!String.prototype.trim) {\n  String.prototype.trim \x3d function () {\n    return this.replace(/^\\s+|\\s+$/g,\'\');\n  };\n}\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eBrowser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat tables\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Please update this with the earliest version of support." style \x3d "color: #888"\x3e(Supported)\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e10.5\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e \x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e \x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using trim","See Also","Compatibility","Browser compatibility"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimLeft","title":"String.TrimLeft","_id":"4eea8587a4c86c4dba000119","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRemoves whitespace from the left end of the string.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.trimLeft()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etrimLeft\x3c/code\x3e method returns the string stripped of whitespace from its left end. \x3ccode\x3etrimLeft\x3c/code\x3e does not affect the value of the string itself.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLowerCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_trimLeft"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etrimLeft\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the lowercase string \x26quot;foo\x26nbsp; \x26quot;:\x3c/p\x3e\n\x3cpre\x3e\nvar orig\x3d\x26quot;   foo  \x26quot;\ndocument.write(orig.trimLeft())\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLowerCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_trimLeft"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etrimLeft\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the lowercase string \x26quot;foo\x26nbsp; \x26quot;:\x3c/p\x3e\n\x3cpre\x3e\nvar orig\x3d\x26quot;   foo  \x26quot;\ndocument.write(orig.trimLeft())\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/String/trim" class \x3d "internal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim"\x3e\x3ccode\x3etrim()\x3c/code\x3e\x3c/a\x3e\x26nbsp;\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/String/trimRight" class \x3d "internal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight"\x3e\x3ccode\x3etrimRight()\x3c/code\x3e\x3c/a\x3e\x26nbsp;\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using trimLeft","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight","title":"String.TrimRight","_id":"4eea8587a4c86c4dba00011a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRemoves whitespace from the right end of the string.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eNone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3estring\x3c/em\x3e.trimRight()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etrimRight\x3c/code\x3e method returns the string stripped of whitespace from its right end. \x3ccode\x3etrimRight\x3c/code\x3e does not affect the value of the string itself.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLowerCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_trimRight"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etrimRight\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the lowercase string \x26quot;\x26nbsp;\x26nbsp; foo\x26quot;:\x3c/p\x3e\n\x3cpre\x3e\nvar orig\x3d\x26quot;   foo  \x26quot;\ndocument.write(orig.trimRight())\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_toLowerCase"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Using_trimRight"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3etrimRight\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following example displays the lowercase string \x26quot;\x26nbsp;\x26nbsp; foo\x26quot;:\x3c/p\x3e\n\x3cpre\x3e\nvar orig\x3d\x26quot;   foo  \x26quot;\ndocument.write(orig.trimRight())\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/String/trim" class \x3d "internal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim"\x3e\x3ccode\x3etrim()\x3c/code\x3e\x3c/a\x3e\x26nbsp;\x3c/li\x3e \x3cli\x3e\x3cstrong\x3e\x3ccode\x3etrimRight()\x3c/code\x3e\x3c/strong\x3e\x26nbsp;\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using trimRight","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/anchor","title":"String.anchor","_id":"4eea8588a4c86c4dba00011b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCreates an \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-name-A" target \x3d "_blank"\x3eHTML anchor\x3c/a\x3e that is used as a hypertext target.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nanchor(\x3cem\x3enameAttribute\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3enameAttribute\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A string.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3eanchor\x3c/code\x3e method with the \x3ccode\x3edocument.write\x3c/code\x3e or \x3ccode\x3edocument.writeln\x3c/code\x3e methods to programmatically create and display an anchor in a document. Create the anchor with the \x3ccode\x3eanchor\x3c/code\x3e method, and then call \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e to display the anchor in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the anchor.\n\x3c/p\x3e\x3cp\x3eIn the syntax, the text string represents the literal text that you want the user to see. The \x3ccode\x3enameAttribute\x3c/code\x3e string represents the \x3ccode\x3eNAME\x3c/code\x3e attribute of the A tag.\n\x3c/p\x3e\x3cp\x3eAnchors created with the \x3ccode\x3eanchor\x3c/code\x3e method become elements in the \x3ccode\x3edocument.anchors\x3c/code\x3e array.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_anchor"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eanchor\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example code within an HTML \x3ccode\x3escript\x3c/code\x3e element:\n\x3c/p\x3e\n\x3cpre\x3e\nvar myString \x3d \x26quot;Table of Contents\x26quot;;\ndocument.writeln(myString.anchor(\x26quot;contents_anchor\x26quot;));\n\x3c/pre\x3e\n\x3cp\x3ewill output the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;A NAME\x3d\x26quot;contents_anchor\x26quot;\x26gt;Table of Contents\x26lt;/A\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_anchor"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eanchor\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example code within an HTML \x3ccode\x3escript\x3c/code\x3e element:\n\x3c/p\x3e\n\x3cpre\x3e\nvar myString \x3d \x26quot;Table of Contents\x26quot;;\ndocument.writeln(myString.anchor(\x26quot;contents_anchor\x26quot;));\n\x3c/pre\x3e\n\x3cp\x3ewill output the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;A NAME\x3d\x26quot;contents_anchor\x26quot;\x26gt;Table of Contents\x26lt;/A\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/link" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/link"\x3elink\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using anchor ",
" See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/big","title":"String.big","_id":"4eea8589a4c86c4dba00011c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be displayed in a big font as if it were in a \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-BIG" target \x3d "_blank"\x3e\x3ccode\x3eBIG\x3c/code\x3e tag\x3c/a\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nbig()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3ebig\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the string.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_big"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3ebig\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the size of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.small())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.big())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontsize(7))\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;SMALL\x26gt;Hello, world\x26lt;/SMALL\x26gt;\n\x26lt;P\x26gt;\x26lt;BIG\x26gt;Hello, world\x26lt;/BIG\x26gt;\n\x26lt;P\x26gt;\x26lt;FONTSIZE\x3d7\x26gt;Hello, world\x26lt;/FONTSIZE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_big"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3ebig\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the size of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.small())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.big())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontsize(7))\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;SMALL\x26gt;Hello, world\x26lt;/SMALL\x26gt;\n\x26lt;P\x26gt;\x26lt;BIG\x26gt;Hello, world\x26lt;/BIG\x26gt;\n\x26lt;P\x26gt;\x26lt;FONTSIZE\x3d7\x26gt;Hello, world\x26lt;/FONTSIZE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontsize" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontsize"\x3efontsize\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/small" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/small"\x3esmall\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using big "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/blink","title":"String.blink","_id":"4eea8589a4c86c4dba00011d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to blink as if it were in a \x3ccode\x3eBLINK\x3c/code\x3e tag.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nblink()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3eblink\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the string.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.blink())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.bold())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.italics())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.strike())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;BLINK\x26gt;Hello, world\x26lt;/BLINK\x26gt;\n\x26lt;P\x26gt;\x26lt;B\x26gt;Hello, world\x26lt;/B\x26gt;\n\x26lt;P\x26gt;\x26lt;I\x26gt;Hello, world\x26lt;/I\x26gt;\n\x26lt;P\x26gt;\x26lt;STRIKE\x26gt;Hello, world\x26lt;/STRIKE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.blink())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.bold())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.italics())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.strike())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;BLINK\x26gt;Hello, world\x26lt;/BLINK\x26gt;\n\x26lt;P\x26gt;\x26lt;B\x26gt;Hello, world\x26lt;/B\x26gt;\n\x26lt;P\x26gt;\x26lt;I\x26gt;Hello, world\x26lt;/I\x26gt;\n\x26lt;P\x26gt;\x26lt;STRIKE\x26gt;Hello, world\x26lt;/STRIKE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/bold" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/bold"\x3ebold\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/italics" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/italics"\x3eitalics\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/strike" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/strike"\x3estrike\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using string methods to change the formatting of a string "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fixed","title":"String.fixed","_id":"4eea858da4c86c4dba00011e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be displayed in fixed-pitch font as if it were in a \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-TT" target \x3d "_blank"\x3e\x3ccode\x3eTT\x3c/code\x3e tag\x3c/a\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nfixed()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3efixed\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the string.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_fixed_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3efixed\x3c/code\x3e to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3efixed\x3c/code\x3e method to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\ndocument.write(worldString.fixed())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;TT\x26gt;Hello, world\x26lt;/TT\x26gt;\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_fixed_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3efixed\x3c/code\x3e to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3efixed\x3c/code\x3e method to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\ndocument.write(worldString.fixed())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;TT\x26gt;Hello, world\x26lt;/TT\x26gt;\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using fixed to change the formatting of a string "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/bold","title":"String.bold","_id":"4eea858da4c86c4dba00011f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be displayed as bold as if it were in a \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-B" target \x3d "_blank"\x3e\x3ccode\x3eB\x3c/code\x3e tag\x3c/a\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nbold()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3ebold\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the string.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.blink())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.bold())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.italics())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.strike())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;BLINK\x26gt;Hello, world\x26lt;/BLINK\x26gt;\n\x26lt;P\x26gt;\x26lt;B\x26gt;Hello, world\x26lt;/B\x26gt;\n\x26lt;P\x26gt;\x26lt;I\x26gt;Hello, world\x26lt;/I\x26gt;\n\x26lt;P\x26gt;\x26lt;STRIKE\x26gt;Hello, world\x26lt;/STRIKE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.blink())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.bold())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.italics())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.strike())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;BLINK\x26gt;Hello, world\x26lt;/BLINK\x26gt;\n\x26lt;P\x26gt;\x26lt;B\x26gt;Hello, world\x26lt;/B\x26gt;\n\x26lt;P\x26gt;\x26lt;I\x26gt;Hello, world\x26lt;/I\x26gt;\n\x26lt;P\x26gt;\x26lt;STRIKE\x26gt;Hello, world\x26lt;/STRIKE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/blink" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/blink"\x3eblink\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/italics" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/italics"\x3eitalics\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/strike" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/strike"\x3estrike\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using string methods to change the formatting of a string "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/italics","title":"String.italics","_id":"4eea858ea4c86c4dba000120","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be italic, as if it were in an \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-I" target \x3d "_blank"\x3e\x3ccode\x3eI\x3c/code\x3e tag\x3c/a\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nitalics()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3eitalics\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the string.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.blink())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.bold())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.italics())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.strike())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;BLINK\x26gt;Hello, world\x26lt;/BLINK\x26gt;\n\x26lt;P\x26gt;\x26lt;B\x26gt;Hello, world\x26lt;/B\x26gt;\n\x26lt;P\x26gt;\x26lt;I\x26gt;Hello, world\x26lt;/I\x26gt;\n\x26lt;P\x26gt;\x26lt;STRIKE\x26gt;Hello, world\x26lt;/STRIKE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.blink())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.bold())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.italics())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.strike())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;BLINK\x26gt;Hello, world\x26lt;/BLINK\x26gt;\n\x26lt;P\x26gt;\x26lt;B\x26gt;Hello, world\x26lt;/B\x26gt;\n\x26lt;P\x26gt;\x26lt;I\x26gt;Hello, world\x26lt;/I\x26gt;\n\x26lt;P\x26gt;\x26lt;STRIKE\x26gt;Hello, world\x26lt;/STRIKE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/blink" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/blink"\x3eblink\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/bold" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/bold"\x3ebold\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/strike" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/strike"\x3estrike\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using string methods to change the formatting of a string "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontcolor","title":"String.fontcolor","_id":"4eea858ea4c86c4dba000121","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be displayed in the specified color as if it were in a \x3ccode\x3e\x26lt;FONT COLOR\x3d\x26quot;\x3cem\x3ecolor\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e tag.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nfontcolor(\x3cem\x3ecolor\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ecolor\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A string expressing the color as a hexadecimal RGB triplet or as a string literal. String literals for color names are listed in the \x3ca title \x3d "en/JavaScript/Guide" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Guide"\x3eCore JavaScript 1.5 Guide\x3c/a\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3efontcolor\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the string.\n\x3c/p\x3e\x3cp\x3eIf you express color as a hexadecimal RGB triplet, you must use the format \x3ccode\x3errggbb\x3c/code\x3e. For example, the hexadecimal RGB values for salmon are red\x3dFA, green\x3d80, and blue\x3d72, so the RGB triplet for salmon is \x26quot;\x3ccode\x3eFA8072\x3c/code\x3e\x26quot;.\n\x3c/p\x3e\x3cp\x3eThe \x3ccode\x3efontcolor\x3c/code\x3e method overrides a value set in the \x3ccode\x3efgColor\x3c/code\x3e property.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_fontcolor"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3efontcolor\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3efontcolor\x3c/code\x3e method to change the color of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.fontcolor(\x26quot;maroon\x26quot;) +\n   \x26quot; is maroon in this line\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;salmon\x26quot;) +\n   \x26quot; is salmon in this line\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;red\x26quot;) +\n   \x26quot; is red in this line\x26quot;)\n\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;8000\x26quot;) +\n   \x26quot; is maroon in hexadecimal in this line\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;FA8072\x26quot;) +\n   \x26quot; is salmon in hexadecimal in this line\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;FF00\x26quot;) +\n   \x26quot; is red in hexadecimal in this line\x26quot;)\n\x3c/pre\x3e\n\x3cp\x3eThe previous example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;FONT COLOR\x3d\x26quot;maroon\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt; is maroon in this line\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;salmon\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt; is salmon in this line\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;red\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt; is red in this line\n\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;8000\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt;\nis maroon in hexadecimal in this line\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;FA8072\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt;\nis salmon in hexadecimal in this line\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;FF00\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt;\nis red in hexadecimal in this line\n\x3c/pre\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_fontcolor"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3efontcolor\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3efontcolor\x3c/code\x3e method to change the color of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.fontcolor(\x26quot;maroon\x26quot;) +\n   \x26quot; is maroon in this line\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;salmon\x26quot;) +\n   \x26quot; is salmon in this line\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;red\x26quot;) +\n   \x26quot; is red in this line\x26quot;)\n\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;8000\x26quot;) +\n   \x26quot; is maroon in hexadecimal in this line\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;FA8072\x26quot;) +\n   \x26quot; is salmon in hexadecimal in this line\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontcolor(\x26quot;FF00\x26quot;) +\n   \x26quot; is red in hexadecimal in this line\x26quot;)\n\x3c/pre\x3e\n\x3cp\x3eThe previous example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;FONT COLOR\x3d\x26quot;maroon\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt; is maroon in this line\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;salmon\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt; is salmon in this line\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;red\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt; is red in this line\n\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;8000\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt;\nis maroon in hexadecimal in this line\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;FA8072\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt;\nis salmon in hexadecimal in this line\n\x26lt;P\x26gt;\x26lt;FONT COLOR\x3d\x26quot;FF00\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt;\nis red in hexadecimal in this line\n\x3c/pre\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using fontcolor "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontsize","title":"String.fontsize","_id":"4eea858fa4c86c4dba000122","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be displayed in the specified font size as if it were in a \x3ccode\x3e\x26lt;FONT SIZE\x3d\x26quot;\x3cem\x3esize\x3c/em\x3e\x26quot;\x26gt;\x3c/code\x3e tag.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nfontsize(\x3cem\x3esize\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3esize\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e An integer between 1 and 7, a string representing a signed integer between 1 and 7.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3efontsize\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the string.\n\x3c/p\x3e\x3cp\x3eWhen you specify size as an integer, you set the size of \x3ccode\x3estringName\x3c/code\x3e to one of the 7 defined sizes. When you specify \x3ccode\x3esize\x3c/code\x3e as a string such as \x26quot;-2\x26quot;, you adjust the font size of \x3ccode\x3estringName\x3c/code\x3e relative to the size set in the \x3ccode\x3eBASEFONT\x3c/code\x3e tag.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_size_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the size of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the size of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.small())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.big())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontsize(7))\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;SMALL\x26gt;Hello, world\x26lt;/SMALL\x26gt;\n\x26lt;P\x26gt;\x26lt;BIG\x26gt;Hello, world\x26lt;/BIG\x26gt;\n\x26lt;P\x26gt;\x26lt;FONT SIZE\x3d\x26quot;7\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_size_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the size of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the size of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.small())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.big())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontsize(7))\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;SMALL\x26gt;Hello, world\x26lt;/SMALL\x26gt;\n\x26lt;P\x26gt;\x26lt;BIG\x26gt;Hello, world\x26lt;/BIG\x26gt;\n\x26lt;P\x26gt;\x26lt;FONT SIZE\x3d\x26quot;7\x26quot;\x26gt;Hello, world\x26lt;/FONT\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/big" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/big"\x3ebig\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/small" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/small"\x3esmall\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using string methods to change the size of a string "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/small","title":"String.small","_id":"4eea8598a4c86c4dba000123","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be displayed in a small font, as if it were in a \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-SMALL" target \x3d "_blank"\x3e\x3ccode\x3eSMALL\x3c/code\x3e tag\x3c/a\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsmall()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3esmall\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the string.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_size_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the size of a string \x3c/h4\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.small())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.big())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontsize(7))\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;SMALL\x26gt;Hello, world\x26lt;/SMALL\x26gt;\n\x26lt;P\x26gt;\x26lt;BIG\x26gt;Hello, world\x26lt;/BIG\x26gt;\n\x26lt;P\x26gt;\x26lt;FONTSIZE\x3d7\x26gt;Hello, world\x26lt;/FONTSIZE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_size_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the size of a string \x3c/h4\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.small())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.big())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.fontsize(7))\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;SMALL\x26gt;Hello, world\x26lt;/SMALL\x26gt;\n\x26lt;P\x26gt;\x26lt;BIG\x26gt;Hello, world\x26lt;/BIG\x26gt;\n\x26lt;P\x26gt;\x26lt;FONTSIZE\x3d7\x26gt;Hello, world\x26lt;/FONTSIZE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/big" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/big"\x3ebig\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/fontsize" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/fontsize"\x3efontsize\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using string methods to change the size of a string "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sub","title":"String.sub","_id":"4eea8599a4c86c4dba000124","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be displayed as a subscript, as if it were in a \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUB" target \x3d "_blank"\x3e\x3ccode\x3eSUB\x3c/code\x3e tag\x3c/a\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsub()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3esub\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to generate the HTML.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_sub_and_sup_methods_to_format_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esub\x3c/code\x3e and \x3ccode\x3esup\x3c/code\x3e methods to format a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3esub\x3c/code\x3e and \x3ccode\x3esup\x3c/code\x3e methods to format a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar superText\x3d\x26quot;superscript\x26quot;\nvar subText\x3d\x26quot;subscript\x26quot;\n\ndocument.write(\x26quot;This is what a \x26quot; + superText.sup() + \x26quot; looks like.\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;This is what a \x26quot; + subText.sub() + \x26quot; looks like.\x26quot;)\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\nThis is what a \x26lt;SUP\x26gt;superscript\x26lt;/SUP\x26gt; looks like.\n\x26lt;P\x26gt;This is what a \x26lt;SUB\x26gt;subscript\x26lt;/SUB\x26gt; looks like.\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_sub_and_sup_methods_to_format_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esub\x3c/code\x3e and \x3ccode\x3esup\x3c/code\x3e methods to format a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3esub\x3c/code\x3e and \x3ccode\x3esup\x3c/code\x3e methods to format a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar superText\x3d\x26quot;superscript\x26quot;\nvar subText\x3d\x26quot;subscript\x26quot;\n\ndocument.write(\x26quot;This is what a \x26quot; + superText.sup() + \x26quot; looks like.\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;This is what a \x26quot; + subText.sub() + \x26quot; looks like.\x26quot;)\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\nThis is what a \x26lt;SUP\x26gt;superscript\x26lt;/SUP\x26gt; looks like.\n\x26lt;P\x26gt;This is what a \x26lt;SUB\x26gt;subscript\x26lt;/SUB\x26gt; looks like.\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sup" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sup"\x3esup\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using sub and sup methods to format a string ",
" See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/link","title":"String.link","_id":"4eea8599a4c86c4dba000125","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCreates an \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" title \x3d "http://www.w3.org/TR/html401/struct/links.html#adef-href" target \x3d "_blank"\x3eHTML hypertext link\x3c/a\x3e that requests another URL.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nlink(\x3cem\x3ehrefAttribute\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ehrefAttribute\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Any string that specifies the \x3ccode\x3eHREF\x3c/code\x3e of the \x3ccode\x3eA\x3c/code\x3e tag; it should be a valid URL (relative or absolute).\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3elink\x3c/code\x3e method to create an HTML snippet for a hypertext link. The returned string can then be added to the document via \x3ccode\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/DOM/document.write"\x3edocument.write\x3c/a\x3e\x3c/code\x3e\n or \x3ccode\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/DOM/element.innerHTML"\x3eelement.innerHTML\x3c/a\x3e\x3c/code\x3e\n.\n\x3c/p\x3e\x3cp\x3eLinks created with the \x3ccode\x3elink\x3c/code\x3e method become elements in the \x3ccode\x3elinks\x3c/code\x3e array of the \x3ccode\x3edocument\x3c/code\x3e object. See \x3ccode\x3e\x3ca rel \x3d "custom" href \x3d "https://developer.mozilla.org/en/DOM/document.links"\x3edocument.links\x3c/a\x3e\x3c/code\x3e\n.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_link"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3elink\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example displays the word \x26quot;Netscape\x26quot; as a hypertext link that returns the user to the Netscape home page:\n\x3c/p\x3e\n\x3cpre\x3e\nvar hotText\x3d\x26quot;Netscape\x26quot;\nvar URL\x3d\x26quot;http://home.netscape.com\x26quot;\n\ndocument.write(\x26quot;Click to return to \x26quot; + hotText.link(URL))\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\nClick to return to \x26lt;A HREF\x3d\x26quot;http://home.netscape.com\x26quot;\x26gt;Netscape\x26lt;/A\x26gt;\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_link"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3elink\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following example displays the word \x26quot;Netscape\x26quot; as a hypertext link that returns the user to the Netscape home page:\n\x3c/p\x3e\n\x3cpre\x3e\nvar hotText\x3d\x26quot;Netscape\x26quot;\nvar URL\x3d\x26quot;http://home.netscape.com\x26quot;\n\ndocument.write(\x26quot;Click to return to \x26quot; + hotText.link(URL))\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\nClick to return to \x26lt;A HREF\x3d\x26quot;http://home.netscape.com\x26quot;\x26gt;Netscape\x26lt;/A\x26gt;\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using link "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/strike","title":"String.strike","_id":"4eea859aa4c86c4dba000126","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be displayed as struck-out text, as if it were in a \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" title \x3d "http://www.w3.org/TR/html401/present/graphics.html#edef-STRIKE" target \x3d "_blank"\x3e\x3ccode\x3eSTRIKE\x3c/code\x3e tag\x3c/a\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nstrike()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3estrike\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to display the string.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.blink())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.bold())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.italics())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.strike())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;BLINK\x26gt;Hello, world\x26lt;/BLINK\x26gt;\n\x26lt;P\x26gt;\x26lt;B\x26gt;Hello, world\x26lt;/B\x26gt;\n\x26lt;P\x26gt;\x26lt;I\x26gt;Hello, world\x26lt;/I\x26gt;\n\x26lt;P\x26gt;\x26lt;STRIKE\x26gt;Hello, world\x26lt;/STRIKE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_string_methods_to_change_the_formatting_of_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses \x3ccode\x3estring\x3c/code\x3e methods to change the formatting of a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar worldString\x3d\x26quot;Hello, world\x26quot;\n\ndocument.write(worldString.blink())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.bold())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.italics())\ndocument.write(\x26quot;\x26lt;P\x26gt;\x26quot; + worldString.strike())\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\n\x26lt;BLINK\x26gt;Hello, world\x26lt;/BLINK\x26gt;\n\x26lt;P\x26gt;\x26lt;B\x26gt;Hello, world\x26lt;/B\x26gt;\n\x26lt;P\x26gt;\x26lt;I\x26gt;Hello, world\x26lt;/I\x26gt;\n\x26lt;P\x26gt;\x26lt;STRIKE\x26gt;Hello, world\x26lt;/STRIKE\x26gt;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/blink" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/blink"\x3eblink\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/bold" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/bold"\x3ebold\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/italics" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/italics"\x3eitalics\x3c/a\x3e\n\x3c/p\x3e\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using string methods to change the formatting of a string "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sup","title":"String.sup","_id":"4eea859fa4c86c4dba000127","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eCauses a string to be displayed as a superscript, as if it were in a \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" title \x3d "http://www.w3.org/TR/html401/struct/text.html#edef-SUP" target \x3d "_blank"\x3e\x3ccode\x3eSUP\x3c/code\x3e tag\x3c/a\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String" title \x3d "en/JavaScript/Reference/Global_Objects/String"\x3e\x3ccode\x3eString\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nsup()\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eUse the \x3ccode\x3esup\x3c/code\x3e method with the \x3ccode\x3ewrite\x3c/code\x3e or \x3ccode\x3ewriteln\x3c/code\x3e methods to format and display a string in a document. In server-side JavaScript, use the \x3ccode\x3ewrite\x3c/code\x3e function to generate the HTML.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_sub_and_sup_methods_to_format_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esub\x3c/code\x3e and \x3ccode\x3esup\x3c/code\x3e methods to format a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3esub\x3c/code\x3e and \x3ccode\x3esup\x3c/code\x3e methods to format a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar superText\x3d\x26quot;superscript\x26quot;\nvar subText\x3d\x26quot;subscript\x26quot;\n\ndocument.write(\x26quot;This is what a \x26quot; + superText.sup() + \x26quot; looks like.\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;This is what a \x26quot; + subText.sub() + \x26quot; looks like.\x26quot;)\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\nThis is what a \x26lt;SUP\x26gt;superscript\x26lt;/SUP\x26gt; looks like.\n\x26lt;P\x26gt;This is what a \x26lt;SUB\x26gt;subscript\x26lt;/SUB\x26gt; looks like.\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_sub_and_sup_methods_to_format_a_string"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3esub\x3c/code\x3e and \x3ccode\x3esup\x3c/code\x3e methods to format a string \x3c/h4\x3e\n\x3cp\x3eThe following example uses the \x3ccode\x3esub\x3c/code\x3e and \x3ccode\x3esup\x3c/code\x3e methods to format a string:\n\x3c/p\x3e\n\x3cpre\x3e\nvar superText\x3d\x26quot;superscript\x26quot;\nvar subText\x3d\x26quot;subscript\x26quot;\n\ndocument.write(\x26quot;This is what a \x26quot; + superText.sup() + \x26quot; looks like.\x26quot;)\ndocument.write(\x26quot;\x26lt;P\x26gt;This is what a \x26quot; + subText.sub() + \x26quot; looks like.\x26quot;)\n\x3c/pre\x3e\n\x3cp\x3eThis example produces the same output as the following HTML:\n\x3c/p\x3e\n\x3cpre\x3e\nThis is what a \x26lt;SUP\x26gt;superscript\x26lt;/SUP\x26gt; looks like.\n\x26lt;P\x26gt;This is what a \x26lt;SUB\x26gt;subscript\x26lt;/SUB\x26gt; looks like.\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/String/sub" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/sub"\x3esub\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using sub and sup methods to format a string ",
" See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView","title":"ArrayBufferView","_id":"4eea85a2a4c86c4dba000128","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Attributes"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3e\x26nbsp;Attributes\x3c/h2\x3e\n\x3ctable class \x3d "standard-table" style \x3d "width: auto;"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eAttribute\x3c/td\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e\x3c/td\x3e \x3ctd\x3eThe buffer this view references. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ebyteLength\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe length, in bytes, of the view. \x3cstrong\x3eRead only.\x3c/strong\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ebyteOffset\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned long\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThe offset, in bytes, to the first byte of the view within the \x3ca title \x3d "en/JavaScript typed arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e.\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Typed_array_subclasses"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eTyped array subclasses\x3c/h2\x3e\n\x3cp\x3eThe following subclasses provide buffer views allowing access to the data in specific data types:\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eType\x3c/td\x3e \x3ctd class \x3d "header"\x3eSize\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3ctd class \x3d "header"\x3eEquivalent C type\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ca title \x3d "en/JavaScript typed arrays/Int8Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array"\x3e\x3ccode\x3eInt8Array\x3c/code\x3e\x3c/a\x3e\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e8-bit twos complement signed integer\x3c/td\x3e \x3ctd\x3e\x3ccode\x3esigned char\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint8Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array"\x3eUint8Array\x3c/a\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e1\x3c/td\x3e \x3ctd\x3e8-bit unsigned integer\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned char\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Int16Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array"\x3eInt16Array\x3c/a\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e2\x3c/td\x3e \x3ctd\x3e16-bit twos complement signed integer\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eshort\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint16Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array"\x3eUint16Array\x3c/a\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e2\x3c/td\x3e \x3ctd\x3e16-bit unsigned integer\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned short\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Int32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array"\x3eInt32Array\x3c/a\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3e32-bit twos complement signed integer\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eint\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Uint32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array"\x3eUint32Array\x3c/a\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3e32-bit unsigned integer\x3c/td\x3e \x3ctd\x3e\x3ccode\x3eunsigned int\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Float32Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array"\x3eFloat32Array\x3c/a\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e4\x3c/td\x3e \x3ctd\x3e32-bit IEEE\x26nbsp;floating point number\x3c/td\x3e \x3ctd\x3e\x3ccode\x3efloat\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript typed arrays/Float64Array" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array"\x3eFloat64Array\x3c/a\x3e\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3ctd\x3e8\x3c/td\x3e \x3ctd\x3e64-bit IEEE floating point number\x3c/td\x3e \x3ctd\x3e\x3ccode\x3edouble\x3cbr/\x3e \x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays/DataView" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/DataView"\x3e\x3ccode\x3eDataView\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" class \x3d " link-https" rel \x3d "external" href \x3d "https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["\x26nbsp;Attributes","Typed array subclasses","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype","title":"Error.prototype","_id":"4eea85a3a4c86c4dba000129","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRepresents the prototype for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\nAll \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3e\x3ccode\x3eError\x3c/code\x3e\x3c/a\x3e instances and instances of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error#Error_types" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types"\x3enon-generic errors\x3c/a\x3e inherit from \x3cstrong\x3e\x3ccode\x3eError.prototype\x3c/code\x3e\x3c/strong\x3e. As with all constructor functions, you can use the prototype of the constructor to add properties or methods to all instances created with that constructor.\n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Standard_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eStandard properties\x3c/h4\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError message.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/name"\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Vendor-specific_extensions"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eVendor-specific extensions\x3c/h4\x3e\n\x3cp\x3e\n\n\x3cdiv style \x3d "overflow:hidden; border: 1px solid #FFB752; background-color: #FEE3BC; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\x3cp style \x3d "margin: 4px 0px 4px 0px;"\x3eNon-standard\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Microsoft"\x3e\x3c/span\x3e\x3ch5 class \x3d "editable"\x3eMicrosoft\x3c/h5\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/description" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/description" class \x3d "new "\x3edescription\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError description. Similar to \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/number" class \x3d "new "\x3enumber\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Mozilla"\x3e\x3c/span\x3e\x3ch5 class \x3d "editable"\x3eMozilla\x3c/h5\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/fileName" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/fileName" class \x3d "new "\x3efileName\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3ePath to file that raised this error.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/lineNumber" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/lineNumber" class \x3d "new "\x3elineNumber\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eLine number in file that raised this error.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/stack" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack"\x3estack\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eStack trace.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Standard_properties"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eStandard properties\x3c/h4\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError message.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/name"\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Vendor-specific_extensions"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eVendor-specific extensions\x3c/h4\x3e\n\x3cp\x3e\n\n\x3cdiv style \x3d "overflow:hidden; border: 1px solid #FFB752; background-color: #FEE3BC; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\x3cp style \x3d "margin: 4px 0px 4px 0px;"\x3eNon-standard\x3c/p\x3e\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Microsoft"\x3e\x3c/span\x3e\x3ch5 class \x3d "editable"\x3eMicrosoft\x3c/h5\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/description" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/description" class \x3d "new "\x3edescription\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError description. Similar to \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/number" class \x3d "new "\x3enumber\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Mozilla"\x3e\x3c/span\x3e\x3ch5 class \x3d "editable"\x3eMozilla\x3c/h5\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/fileName" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/fileName" class \x3d "new "\x3efileName\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3ePath to file that raised this error.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/lineNumber" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/lineNumber" class \x3d "new "\x3elineNumber\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eLine number in file that raised this error.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/stack" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack"\x3estack\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eStack trace.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Microsoft"\x3e\x3c/span\x3e\x3ch5 class \x3d "editable"\x3eMicrosoft\x3c/h5\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/description" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/description" class \x3d "new "\x3edescription\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError description. Similar to \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/number" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/number" class \x3d "new "\x3enumber\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Mozilla"\x3e\x3c/span\x3e\x3ch5 class \x3d "editable"\x3eMozilla\x3c/h5\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/fileName" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/fileName" class \x3d "new "\x3efileName\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3ePath to file that raised this error.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/lineNumber" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/lineNumber" class \x3d "new "\x3elineNumber\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eLine number in file that raised this error.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/stack" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack"\x3estack\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eStack trace.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/toSource"\x3etoSource\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3e\x3cspan class \x3d "lang lang-en"\x3e\x3cspan class \x3d "nonStandardInlineTemplate" style \x3d "border: 1px solid rgb(255, 213, 153); background-color: rgb(255, 239, 217); font-size: x-small; white-space: nowrap; padding: 2px;"\x3eNon-standard\x3c/span\x3e\x3c/span\x3e     \x3c/dd\x3e \x3cdd\x3eReturns a string containing the source of the specified \x3ccode\x3eError\x3c/code\x3e object; you can use this value to create a new object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toSource"\x3eObject.toSource\x3c/a\x3e method.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/toString"\x3etoString\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eReturns a string representing the specified object. Overrides the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString"\x3eObject.toString\x3c/a\x3e method.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3eError\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/prototype"\x3eObject.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Standard properties","Vendor-specific extensions","","","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message","title":"Error.message","_id":"4eea85a4a4c86c4dba00012a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eA human-readable description of the error.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3e\x3ccode\x3eError\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThis property contains a brief description of the error if one is available or has been set. \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e makes extensive use of the \x3ccode\x3emessage\x3c/code\x3e property for exceptions. The \x3ccode\x3emessage\x3c/code\x3e property combined with the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/name"\x3ename\x3c/a\x3e\x3c/code\x3e property is used by the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString"\x3eError.prototype.toString\x3c/a\x3e\x3c/code\x3e method to create a string representation of the Error.\x3c/p\x3e\n\x3cp\x3eBy default, the \x3ccode\x3emessage\x3c/code\x3e property is an empty string, but this behavior can be overridden for an instance by specifying a message as the first argument to the \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error"\x3eError constructor\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Throwing_a_custom_error"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Throwing a custom error\x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3e\nvar e \x3d new Error(\x26quot;Could not parse input\x26quot;); // e.message is \x26quot;Could not parse input\x26quot;\nthrow e;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Throwing_a_custom_error"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Throwing a custom error\x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3e\nvar e \x3d new Error(\x26quot;Could not parse input\x26quot;); // e.message is \x26quot;Could not parse input\x26quot;\nthrow e;\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/name"\x3ename\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Examples","Example: Throwing a custom error","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/name","title":"Error.name","_id":"4eea85a5a4c86c4dba00012b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eA name for the type of error.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3e\x3ccode\x3eError\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eBy default, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error"\x3eError\x3c/a\x3e instances are given the name \x26quot;Error\x26quot;. The \x3ccode\x3ename\x3c/code\x3e property, in addition to the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e\x3c/code\x3e property, is used by the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString"\x3eError.prototype.toString\x3c/a\x3e\x3c/code\x3e method to create a string representation of the error.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Throwing_a_custom_error"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Throwing a custom error\x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3e\nvar e \x3d new Error(\x26quot;Malformed input\x26quot;); // e.name is \x26quot;Error\x26quot;\ne.name \x3d \x26quot;ParseError\x26quot;;                // e.toString() would return\nthrow e;                              // \x26quot;ParseError: Malformed input\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Throwing_a_custom_error"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Throwing a custom error\x3c/h4\x3e\n\x3cpre class \x3d "eval"\x3e\nvar e \x3d new Error(\x26quot;Malformed input\x26quot;); // e.name is \x26quot;Error\x26quot;\ne.name \x3d \x26quot;ParseError\x26quot;;                // e.toString() would return\nthrow e;                              // \x26quot;ParseError: Malformed input\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Examples","Example: Throwing a custom error","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack","title":"Error.Stack","_id":"4eea85a8a4c86c4dba00012c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eThis non-standard property of \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error"\x3eError\x3c/a\x3e objects offers a trace of which functions were called, in what order, from which line and file, and with what arguments. The stack string proceeds from the most recent calls to earlier ones, leading back to the original global scope call.\x3c/p\x3e\n\x3cp\x3eEach step will be separated by a newline, with the first part of the line being the function name (if not a call from the global scope), followed by the argument values converted to string in parentheses, then by an at (@) sign, the file location (except when the function is the error constructor as the error is being thrown), a colon, and, if there is a file location, the line number. (Note the Error object also possesses the fileName and lineNumber properties for retrieving these from the error thrown (but only the error, and not its trace).)\x3c/p\x3e\n\x3cp\x3eWhile an object (or array, etc.) will appear in the converted form \x26quot;[object Object]\x26quot;, and as such cannot be evaluated back into the actual objects, scalar values can be retrieved (though it may be easier to use arguments.callee.caller.arguments, as could the function name be retrieved by arguments.callee.caller.name). \x26quot;undefined\x26quot; is listed as \x26quot;(void 0)\x26quot;. Note that if string arguments are passed in with values such as \x26quot;@\x26quot;, \x26quot;(\x26quot;, \x26quot;)\x26quot; (or if in file names), you cannot easily rely on these for breaking the line into its component parts.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExample\x3c/h2\x3e\n\x3cp\x3eThe following HTML markup demonstrates the use of \x3ccode\x3estack\x3c/code\x3e property.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "xml"\x3e\x26lt;!DOCTYPE HTML PUBLIC \x26quot;-//W3C//DTD HTML 4.01//EN\x26quot; \x26quot;http://www.w3.org/TR/html4/strict.dtd\x26quot;\x26gt;\n\x26lt;meta http-equiv\x3d\x26quot;Content-Type\x26quot; content\x3d\x26quot;text/html; charset\x3dwindows-1251\x26quot;\x26gt;\n\x26lt;meta http-equiv\x3d\x26quot;Content-Script-Type\x26quot; content\x3d\x26quot;text/javascript\x26quot;\x26gt;\n\x26lt;title\x26gt;Stack Trace Example\x26lt;/title\x26gt;\n\x26lt;body\x26gt;\n    \x26lt;script type\x3d\x26quot;text/javascript\x26quot;\x26gt;\n        function trace() {\n            try {\n                throw new Error(\x26quot;myError\x26quot;);\n            }\n            catch(e) {\n                alert(e.stack);\n            }\n        }\n        function b() {\n            trace();\n        }\n        function a() {\n            b(3, 4, \x26quot;\\n\\n\x26quot;, undefined, {});\n        }\n        a(\x26quot;first call, firstarg\x26quot;);\n    \x26lt;/script\x26gt;\x3c/pre\x3e\r\n        \n\x3cp\x3eAssuming the above markup is saved as C:\\example.html on a Windows file system and is open in a browser it produces an alert message box with the following text:\x3c/p\x3e\n\x3cpre\x3e\nError(\x26quot;myError\x26quot;)@:0\ntrace()@file:///C:/example.html:9\nb(3,4,\x26quot;\\n\\n\x26quot;,(void 0),[object Object])@file:///C:/example.html:16\na(\x26quot;first call, firstarg\x26quot;)@file:///C:/example.html:19\n@file:///C:/example.html:21\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cp\x3e\x3ca title \x3d "en/Components.stack" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Components.stack"\x3eComponents.stack\x3c/a\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Description","Example","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/toSource","title":"Error.toSource","_id":"4eea85aaa4c86c4dba00012d",
"sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns code that could eval to the same error.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Date" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"\x3e\x3ccode\x3eDate\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.3\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3enone\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3ci\x3eerror\x3c/i\x3e.toSource()\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cp\x3eNone.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eCalling the \x3ccode\x3etoString\x3c/code\x3e method of an \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error"\x3eError\x3c/a\x3e instance (including \x3ci\x3e\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error#Error_types" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error#Error_types"\x3eNativeErrors\x3c/a\x3e\x3c/i\x3e) will return a string containing the source code of the error. This string can be evaluated to create an (approximately) equal object. Naturally, the string containing the source follows the structure of the \x3ccode\x3eError\x3c/code\x3e constructor. For example:\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e(new \x3ci\x3ename\x3c/i\x3e(\x3ci\x3emessage\x3c/i\x3e, \x3ci\x3efileName\x3c/i\x3e, \x3ci\x3elineNumber\x3c/i\x3e))\n\x3c/pre\x3e\n\x3cp\x3ewhere these attributes correspond to the respective properties of the error instance.\n\x3c/p\x3e\n\x3cdiv class \x3d "note"\x3eBe aware that the properties used by the \x3ccode\x3etoSource\x3c/code\x3e method in the creation of this string are mutable and may not accurately reflect the function used to create an error instance or the filename or line number where the actual error occurred.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See also \x3c/h3\x3e\n\x3cul\x3e\x3cli\x3e \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/fileName" class \x3d "new " title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/fileName"\x3efileName\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/lineNumber" class \x3d "new " title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/lineNumber"\x3elineNumber\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e\n\x3c/li\x3e\x3cli\x3e \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/name" title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/name"\x3ename\x3c/a\x3e\n\x3c/li\x3e\x3c/ul\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary"," Syntax "," Parameters "," Description "," See also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError/prototype","title":"EvalError.prototype","_id":"4eea85aca4c86c4dba00012e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the prototype the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError"\x3e\x3ccode\x3eEvalError\x3c/code\x3e\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eAll \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError"\x3eEvalError\x3c/a\x3e instances inherit from \x3cstrong\x3e\x3ccode\x3eEvalError.prototype\x3c/code\x3e\x3c/strong\x3e. You can use the prototype to add properties or methods to all instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError/constructor" class \x3d "new "\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError/name" class \x3d "new "\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e\x26nbsp;Although ECMA-262 specifies that EvalError should provide its own message property, in SpiderMonkey, it inherits Error.prototype.message.\x3c/div\x3e\n\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eEvalError\x3c/code\x3e prototype object does not contain any methods of its own, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/EvalError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/EvalError"\x3e\x3ccode\x3eEvalError\x3c/code\x3e\x3c/a\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3cbr/\x3e\n\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3e\x3ccode\x3eError.prototype\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3e\x3ccode\x3eFunction.prototype\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/toString","title":"Error.toString","_id":"4eea85ada4c86c4dba00012f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a string representing the specified Error object.\n\x3c/p\x3e\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error"\x3e\x3ccode\x3eError\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3cem\x3eerror\x3c/em\x3e.toString()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eThe \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error"\x3eError\x3c/a\x3e object overrides the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString"\x3eObject.prototype.toString\x3c/a\x3e\x3c/code\x3e method inherited by all objects. According to \x3ca title \x3d "en/ECMAScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e, implementations are free to decide the behavior of this method. \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e joins string representations of the \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/name"\x3ename\x3c/a\x3e\x3c/code\x3e and \x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e\x3c/code\x3e properties with a colon and a space separating the two. If the string representation of either of these two properties is an empty string, this method simply returns the string representation of the property that has a non-zero length. If both properties\' string representations are empty strings, this method returns an empty string.\x3c/p\x3e\n\x3cp\x3eNote that when creating a string representation of the \x3ccode\x3ename\x3c/code\x3e and \x3ccode\x3emessage\x3c/code\x3e properties, this method does not invoke those properties\' \x3ccode\x3etoString\x3c/code\x3e methods. If the value in either of these properties is not already a string, this method will behave as if that property contained an empty string.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExample\x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3e\nvar e \x3d new Error(\x26quot;fatal error\x26quot;);\ne.toString(); // returns \x26quot;Error: fatal error\x26quot;\n\ne.name \x3d undefined;\ne.toString(); // returns \x26quot;fatal error\x26quot;\n\ne.message \x3d undefined;\ne.toString(); // returns \x26quot;\x26quot;\n\ne.name \x3d \x26quot;Error\x26quot;;\ne.toString(); // returns \x26quot;Error\x26quot;\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toSource" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toSource"\x3etoSource\x3c/a\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Example","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError/prototype",
"title":"RangeError.prototype","_id":"4eea85afa4c86c4dba000130","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRepresents the prototype the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eAll \x3ca title \x3d "en/JavaScript/Reference/Global_Functions/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e instances inherit from \x3ccode\x3eRangeError.prototype\x3c/code\x3e. You can use the prototype to add properties or methods to all instances.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError/name" class \x3d "new "\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "note"\x3eAlthough \x3ca title \x3d "en/ECMAScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e specifies that \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e should provide its own \x3ccode\x3emessage\x3c/code\x3e property, in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, it inherits \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3eError.prototype.message\x3c/a\x3e.\x3c/div\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eRangeError\x3c/code\x3e prototype object does not contain any methods of its own, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/RangeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RangeError"\x3eRangeError\x3c/a\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3eError.prototype\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eFunction.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/prototype","title":"ReferenceError.prototype","_id":"4eea85b1a4c86c4dba000131","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the prototype for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError"\x3e\x3ccode\x3eReferenceError\x3c/code\x3e\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eAll \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError"\x3e\x3ccode\x3eReferenceError\x3c/code\x3e\x3c/a\x3e instances inherit from \x3ccode\x3eReferenceError.prototype\x3c/code\x3e. You can use the prototype to add properties or methods to all instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/name"\x3e\x3ccode\x3ename\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eReferenceError\x3c/code\x3e prototype object does not contain any methods of its own, \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/ReferenceError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError"\x3e\x3ccode\x3eReferenceError\x3c/code\x3e\x3c/a\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3e\x3ccode\x3eError.prototype\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3e\x3ccode\x3eFunction.prototype\x3c/code\x3e\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ReferenceError/name","title":"ReferenceError.name","_id":"4eea85b8a4c86c4dba000132","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eA name for the type of error. \x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eBy default, \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/ReferenceError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/ReferenceError"\x3eReferenceError\x3c/a\x3e instances are given the name \x26quot;ReferenceError\x26quot;.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/message"\x3emessage\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/toString"\x3etoString\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Description","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError/prototype","title":"SyntaxError.prototype","_id":"4eea85b9a4c86c4dba000133","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eRepresents the prototype for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError"\x3eSyntaxError\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eAll\x26nbsp;\x3ccode\x3e\x3ca class \x3d "internal" title \x3d "en/JavaScript/Reference/Global Objects/SyntaxError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError"\x3eSyntaxError\x3c/a\x3e\x3c/code\x3e\x26nbsp;instances inherit from\x26nbsp;\x3ccode\x3eSyntaxError.prototype\x3c/code\x3e. You can use the prototype to add properties or methods to all instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProperties\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError/constructor" class \x3d "new "\x3e\x3ccode\x3econstructor\x3c/code\x3e\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError/name" class \x3d "new "\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Although \x3ca title \x3d "en/ECMAScript" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e\x26nbsp; specifies that \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/SyntaxError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError"\x3eSyntaxError\x3c/a\x3e\x3c/code\x3e should provide its own \x3ccode\x3emessage\x3c/code\x3e property, in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, it inherits \x3ca title \x3d "en/JavaScript/Reference/Global Objects/Error/message" rel \x3d "internal" href \x3d "/en/JavaScript/Reference/Global_Objects/Error/message"\x3eError.prototype.message\x3c/a\x3e.\x3c/div\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eSyntaxError\x3c/code\x3e prototype object does not contain any methods of its own, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/SyntaxError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/SyntaxError"\x3eSyntaxError\x3c/a\x3e\x3c/code\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3eError.prototype\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eFunction.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3eError.prototype\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eFunction.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError/prototype","title":"TypeError.prototype","_id":"4eea85bba4c86c4dba000134","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRepresents the prototype for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eAll \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e instances inherit from \x3ccode\x3eTypeError.prototype\x3c/code\x3e. You can use the prototype to add properties or methods to all instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError/name" class \x3d "new "\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Although \x3ca title \x3d "en/ECMA-262" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e specifies that \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e\x3c/code\x3e should provide its own \x3ccode\x3emessage\x3c/code\x3e property, in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, it inherits \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3eError.prototype.message\x3c/a\x3e.\x3c/div\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eTypeError\x3c/code\x3e prototype object does not contain any methods of its own, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3eTypeError\x3c/a\x3e\x3c/code\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3eError.prototype\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eFunction.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError/prototype","title":"URIError.prototype","_id":"4eea85bda4c86c4dba000135","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eRepresents the prototype for the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError"\x3eURIError\x3c/a\x3e constructor.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eAll \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError"\x3e\x3ccode\x3eURIError\x3c/code\x3e\x3c/a\x3e instances inherit from \x3ccode\x3eURIError.prototype\x3c/code\x3e. You can use the prototype to add properties or methods to all instances.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Properties"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eProperties\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError/constructor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError/constructor" class \x3d "new "\x3econstructor\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eSpecifies the function that created an instance\'s prototype.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError/name" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError/name" class \x3d "new "\x3ename\x3c/a\x3e\x3c/dt\x3e \x3cdd\x3eError name.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdiv class \x3d "note"\x3e\x3cstrong\x3eNote:\x3c/strong\x3e Although \x3ca title \x3d "en/ECMA-262" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/ECMAScript"\x3eECMA-262\x3c/a\x3e\x26nbsp;specifies that \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/URIError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError"\x3eURIError\x3c/a\x3e \x3c/code\x3eshould provide its own \x3ccode\x3emessage\x3c/code\x3e property, in \x3ca title \x3d "en/SpiderMonkey" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/SpiderMonkey"\x3eSpiderMonkey\x3c/a\x3e, it inherits \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/message" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/message"\x3eError.prototype.message\x3c/a\x3e\x3c/code\x3e.\x3c/div\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eProperties inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AfileName" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:fileName" class \x3d " new"\x3efileName\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AlineNumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:lineNumber" class \x3d " new"\x3elineNumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Amessage" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:message" class \x3d " new"\x3emessage\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aname" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:name" class \x3d " new"\x3ename\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Anumber" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:number" class \x3d " new"\x3enumber\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Astack" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:stack" class \x3d " new"\x3estack\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eMethods\x3c/h3\x3e\n\x3cp\x3eAlthough the \x3ccode\x3eURIError\x3c/code\x3e prototype object does not contain any methods of its own, \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/URIError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/URIError"\x3eURIError\x3c/a\x3e\x3c/code\x3e instances do inherit some methods through the prototype chain.\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:prototype" class \x3d " new"\x3eError.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoSource" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toSource" class \x3d " new"\x3etoSource\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AError%3AtoString" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Error:toString" class \x3d " new"\x3etoString\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3cp\x3e\x3cspan class \x3d "lang lang-en"\x3e\n\n\x3cdiv style \x3d "border: solid #ccc 1px; background: #eee; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"\x3e\n\x3cp\x3e\x3cstrong\x3eMethods inherited from \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aprototype" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype" class \x3d " new"\x3eObject.prototype\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3e\n\x3csmall\x3e\n\x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineGetter" class \x3d " new"\x3e__defineGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__defineSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__defineSetter" class \x3d " new"\x3e__defineSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AhasOwnProperty" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:hasOwnProperty" class \x3d " new"\x3ehasOwnProperty\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AisPrototypeOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:isPrototypeOf" class \x3d " new"\x3eisPrototypeOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupGetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupGetter" class \x3d " new"\x3e__lookupGetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__lookupSetter" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__lookupSetter" class \x3d " new"\x3e__lookupSetter__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3A__noSuchMethod" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:__noSuchMethod" class \x3d " new"\x3e__noSuchMethod__\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3ApropertyIsEnumerable" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:propertyIsEnumerable" class \x3d " new"\x3epropertyIsEnumerable\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Aunwatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:unwatch" class \x3d " new"\x3eunwatch\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3AvalueOf" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:valueOf" class \x3d " new"\x3evalueOf\x3c/a\x3e, \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/Core_JavaScript_1.5_Reference%3AGlobal_Objects%3AObject%3Awatch" title \x3d "Core_JavaScript_1.5_Reference:Global_Objects:Object:watch" class \x3d " new"\x3ewatch\x3c/a\x3e\x3c/small\x3e\n\x3c/p\x3e\n\x3c/div\x3e \x3c/span\x3e\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Error/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/prototype"\x3eError.prototype\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Function/prototype" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"\x3eFunction.prototype\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\n\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e'],
"sectionNames":["Summary","Description","Properties","Methods","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/Constructor","title":"Object.Constructor","_id":"4eea85bfa4c86c4dba000136","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a reference to the \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3eObject\x3c/a\x3e function that created the instance\'s prototype. Note that the value of this property is a reference to the function itself, not a string containing the function\'s name, but it isn\'t read only (except for primitive Boolean, Number or String values: 1, true, \x26quot;read-only\x26quot;).\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object" title \x3d "en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eAll objects inherit a \x3ccode\x3econstructor\x3c/code\x3e property from their \x3ccode\x3eprototype\x3c/code\x3e:\x3c/p\x3e\n\x3cpre\x3e\no \x3d new Object // or o \x3d {} in JavaScript 1.2\no.constructor \x3d\x3d Object\na \x3d new Array // or a \x3d [] in JavaScript 1.2\na.constructor \x3d\x3d Array\nn \x3d new Number(3)\nn.constructor \x3d\x3d Number\n\x3c/pre\x3e\n\x3cp\x3eEven though you cannot construct most HTML objects, you can do comparisons. For example,\x3c/p\x3e\n\x3cpre\x3e\ndocument.constructor \x3d\x3d Document\ndocument.form3.constructor \x3d\x3d Form\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Displaying_the_constructor_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Displaying the constructor of an object\x3c/h4\x3e\n\x3cp\x3eThe following example creates a prototype, \x3ccode\x3eTree\x3c/code\x3e, and an object of that type, \x3ccode\x3etheTree\x3c/code\x3e. The example then displays the \x3ccode\x3econstructor\x3c/code\x3e property for the object \x3ccode\x3etheTree\x3c/code\x3e.\x3c/p\x3e\n\x3cpre\x3e\nfunction Tree(name) {\n   this.name \x3d name;\n}\ntheTree \x3d new Tree(\x26quot;Redwood\x26quot;);\n0 \x26\x26 console.log(\x26quot;theTree.constructor is \x26quot; + theTree.constructor);\n\x3c/pre\x3e\n\x3cp\x3eThis example displays the following output:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheTree.constructor is function Tree(name) {\n    this.name \x3d name;\n}\n\x3c/pre\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Changing_the_constructor_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Changing the constructor of an object\x3c/h4\x3e\n\x3cp\x3eThe following example shows how to modify constructor value of generic objects. Only true, 1 and \x26quot;test\x26quot; variable constructors will not be changed. This example explains that is not always so safe to believe in constructor function.\x3c/p\x3e\n\x3cpre\x3e\nfunction Type(){};\nvar\ttypes \x3d [\n\tnew Array,\t[],\n\tnew Boolean,\ttrue,\n\tnew Date,\n\tnew Error,\n\tnew Function,\tfunction(){},\n\tMath,\t\n\tnew Number,\t1,\n\tnew Object,\t{},\n\tnew RegExp,\t/(?:)/,\n\tnew String,\t\x26quot;test\x26quot;\n];\nfor(var i \x3d 0; i \x26lt; types.length; i++){\n\ttypes[i].constructor \x3d Type;\n\ttypes[i] \x3d [types[i].constructor, types[i] instanceof Type, types[i].toString()];\n};\nalert(types.join(\x26quot;\\n\x26quot;));\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Displaying_the_constructor_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Displaying the constructor of an object\x3c/h4\x3e\n\x3cp\x3eThe following example creates a prototype, \x3ccode\x3eTree\x3c/code\x3e, and an object of that type, \x3ccode\x3etheTree\x3c/code\x3e. The example then displays the \x3ccode\x3econstructor\x3c/code\x3e property for the object \x3ccode\x3etheTree\x3c/code\x3e.\x3c/p\x3e\n\x3cpre\x3e\nfunction Tree(name) {\n   this.name \x3d name;\n}\ntheTree \x3d new Tree(\x26quot;Redwood\x26quot;);\n0 \x26\x26 console.log(\x26quot;theTree.constructor is \x26quot; + theTree.constructor);\n\x3c/pre\x3e\n\x3cp\x3eThis example displays the following output:\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3e\ntheTree.constructor is function Tree(name) {\n    this.name \x3d name;\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Changing_the_constructor_of_an_object"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Changing the constructor of an object\x3c/h4\x3e\n\x3cp\x3eThe following example shows how to modify constructor value of generic objects. Only true, 1 and \x26quot;test\x26quot; variable constructors will not be changed. This example explains that is not always so safe to believe in constructor function.\x3c/p\x3e\n\x3cpre\x3e\nfunction Type(){};\nvar\ttypes \x3d [\n\tnew Array,\t[],\n\tnew Boolean,\ttrue,\n\tnew Date,\n\tnew Error,\n\tnew Function,\tfunction(){},\n\tMath,\t\n\tnew Number,\t1,\n\tnew Object,\t{},\n\tnew RegExp,\t/(?:)/,\n\tnew String,\t\x26quot;test\x26quot;\n];\nfor(var i \x3d 0; i \x26lt; types.length; i++){\n\ttypes[i].constructor \x3d Type;\n\ttypes[i] \x3d [types[i].constructor, types[i] instanceof Type, types[i].toString()];\n};\nalert(types.join(\x26quot;\\n\x26quot;));\n\x3c/pre\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Description","Examples","Example: Displaying the constructor of an object","Example: Changing the constructor of an object"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/parse","title":"JSON.parse","_id":"4eea85bfa4c86c4dba000137","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eParse a string as JSON, optionally transforming the value produced by parsing.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/JSON" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON"\x3e\x3ccode\x3eJSON\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.7\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eJSON.parse(\x3cem\x3etext\x3c/em\x3e[, \x3cem\x3ereviver\x3c/em\x3e])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3etext\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eThe string to parse as JSON. \x26nbsp;See the \x3ca title \x3d "en/JavaScript/Reference/Global Objects/JSON" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON"\x3eJSON\x3c/a\x3e object for a description of JSON syntax.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ereviver\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eIf a function, prescribes how the value originally produced by parsing is transformed, before being returned.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3eJSON.parse parses a string as JSON and returns the parsed value.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eJSON.parse(\'{}\'); // {}\nJSON.parse(\'true\'); // true\nJSON.parse(\'\x26quot;foo\x26quot;\'); // \x26quot;foo\x26quot;\nJSON.parse(\'[1, 5, \x26quot;false\x26quot;]\'); // [1, 5, \x26quot;false\x26quot;]\nJSON.parse(\'null\'); // null\x3c/pre\x3e\r\n        \n\x3cp\x3eIf a reviver is specified, the value computed by parsing is \x3cem\x3etransformed\x3c/em\x3e before being returned. Specifically, the computed value, and all its properties (beginning with the most nested properties and proceeding to the original value itself), are individually run through the reviver, which is called with the object containing the property being processed as \x3ccode\x3ethis\x3c/code\x3e and with the property name as a string and the property value as arguments. If the reviver function returns \x3ccode\x3eundefined\x26nbsp;\x3c/code\x3e(or returns no value, e.g. if execution falls off the end of the function), the property is deleted from the object. Otherwise the property is redefined to be the return value.\x3c/p\x3e\n\x3cp\x3eThe reviver is ultimately called with the empty string and the topmost value to permit transformation of the topmost value. \x26nbsp;Be certain to handle this case properly, usually by returning the provided value, or\x26nbsp;\x3ccode\x3eJSON.parse\x3c/code\x3e\x26nbsp;will return \x3ccode\x3eundefined\x3c/code\x3e.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar transformed \x3d\n  JSON.parse(\'{\x26quot;p\x26quot;: 5}\', function(k, v) { if (k \x3d\x3d\x3d \x26quot;\x26quot;) return v; return v * 2; });\n// transformed is { p: 10 }\x3c/pre\x3e\r\n        \n\x3cp\x3eIf the string to parse is not valid JSON, a SyntaxError exception is thrown.\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/stringify","title":"JSON.stringify","_id":"4eea85c1a4c86c4dba000138","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eConvert a value to JSON, optionally replacing values if a replacer function is specified, or optionally including only the specified properties if a replacer array is specified.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/JSON" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON"\x3e\x3ccode\x3eJSON\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.7\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eJSON.stringify(\x3cem\x3evalue\x3c/em\x3e[, \x3cem\x3ereplacer\x3c/em\x3e [, \x3cem\x3espace\x3c/em\x3e]])\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evalue\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe value to convert to a JSON string.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ereplacer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eIf a function, transforms values and properties encountered while stringifying; if an array, specifies the set of properties included in objects in the final string.\x3cbr/\x3e A detailed description of the \x3ccode\x3ereplacer\x3c/code\x3e function is provided in \x3ca title \x3d "en/Using native JSON#The_replacer_parameter" rel \x3d "internal" href \x3d "https://developer.mozilla.org/En/Using_native_JSON#The_replacer_parameter"\x3eUsing native JSON#The_replacer_parameter\x3c/a\x3e.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3espace\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eCauses the resulting string to be pretty-printed.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eJSON.stringify\x3c/code\x3e converts an object to JSON notation representing it.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eassert(JSON.stringify({}) \x3d\x3d\x3d \'{}\');\nassert(JSON.stringify(true) \x3d\x3d\x3d \'true\');\nassert(JSON.stringify(\x26quot;foo\x26quot;) \x3d\x3d\x3d \'\x26quot;foo\x26quot;\');\nassert(JSON.stringify([1, \x26quot;false\x26quot;, false]) \x3d\x3d\x3d \'[1,\x26quot;false\x26quot;,false]\');\nassert(JSON.stringify({ x: 5 }) \x3d\x3d\x3d \'{\x26quot;x\x26quot;:5}\');\nJSON.stringify({x: 5, y: 6}); // \'{\x26quot;x\x26quot;:5,\x26quot;y\x26quot;:6}\' or \'{\x26quot;y\x26quot;:6,\x26quot;x\x26quot;:5}\'\x3c/pre\x3e\r\n        \n\x3cp\x3eProperties of non-array objects are not guaranteed to be stringified in any particular order. Do not rely on ordering of properties within the same object within the stringification.\x3c/p\x3e\n\x3cp\x3eBoolean, Number, and String objects are converted to the corresponding primitive values during stringification, in accord with the traditional conversion semantics.\x3c/p\x3e\n\x3cp\x3eIf \x3ccode\x3eundefined\x3c/code\x3e, a function, or an XML value is encountered during conversion it is either omitted (when it is found in an object) or censored to null (when it is found in an array).\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "space_argument"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3ccode\x3espace\x3c/code\x3e argument\x3c/h4\x3e\n\x3cp\x3eThe space argument may be used to control spacing in the final string. If it is a number, successive levels in the stringification will each be indented by this many space characters (up to 10). If it is a string, successive levels will indented by this string (or the first ten characters of it).\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eJSON.stringify({ a: 2 }, null, \x26quot; \x26quot;);   // \'{\\n \x26quot;a\x26quot;: 2\\n}\'\x3c/pre\x3e\r\n        \n\x3cp\x3eUsing a tab character mimics standard pretty-print appearance:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eJSON.stringify({ uno: 1, dos : 2 }, null, \'\\t\')\n// returns the string:\n// \'{            \\\n//     \x26quot;uno\x26quot;: 1, \\\n//     \x26quot;dos\x26quot;: 2  \\\n// }\'\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "toJSON_behavior"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3etoJSON behavior\x3c/h4\x3e\n\x3cp\x3eIf an object being stringified has a property named \x3ccode\x3etoJSON\x3c/code\x3e whose value is a function, then the \x3ccode\x3etoJSON\x3c/code\x3e method customizes JSON stringification behavior: instead of the object being serialized, the value returned by the \x3ccode\x3etoJSON\x3c/code\x3e method when called will be serialized. For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x \x3d {\n  foo: \'foo\',\n  toJSON: function () {\n    return \'bar\';\n  }\n};\nvar json \x3d JSON.stringify({x: x});\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3ccode\x3ejson\x3c/code\x3e will be the string \x3ccode\x3e\'{\x26quot;x\x26quot;:\x26quot;bar\x26quot;}\'\x3c/code\x3e.\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "space_argument"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e\x3ccode\x3espace\x3c/code\x3e argument\x3c/h4\x3e\n\x3cp\x3eThe space argument may be used to control spacing in the final string. If it is a number, successive levels in the stringification will each be indented by this many space characters (up to 10). If it is a string, successive levels will indented by this string (or the first ten characters of it).\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eJSON.stringify({ a: 2 }, null, \x26quot; \x26quot;);   // \'{\\n \x26quot;a\x26quot;: 2\\n}\'\x3c/pre\x3e\r\n        \n\x3cp\x3eUsing a tab character mimics standard pretty-print appearance:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3eJSON.stringify({ uno: 1, dos : 2 }, null, \'\\t\')\n// returns the string:\n// \'{            \\\n//     \x26quot;uno\x26quot;: 1, \\\n//     \x26quot;dos\x26quot;: 2  \\\n// }\'\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "toJSON_behavior"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3etoJSON behavior\x3c/h4\x3e\n\x3cp\x3eIf an object being stringified has a property named \x3ccode\x3etoJSON\x3c/code\x3e whose value is a function, then the \x3ccode\x3etoJSON\x3c/code\x3e method customizes JSON stringification behavior: instead of the object being serialized, the value returned by the \x3ccode\x3etoJSON\x3c/code\x3e method when called will be serialized. For example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar x \x3d {\n  foo: \'foo\',\n  toJSON: function () {\n    return \'bar\';\n  }\n};\nvar json \x3d JSON.stringify({x: x});\x3c/pre\x3e\r\n        \n\x3cp\x3e\x3ccode\x3ejson\x3c/code\x3e will be the string \x3ccode\x3e\'{\x26quot;x\x26quot;:\x26quot;bar\x26quot;}\'\x3c/code\x3e.\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","space argument","toJSON behavior"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/LN2","title":"Math.LN2","_id":"4eea85c1a4c86c4dba000139","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eThe natural logarithm of 2, approximately 0.693.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3eLN2\x3c/code\x3e is a static property of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.LN2\x3c/code\x3e, rather than as a property of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.LN2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.LN2\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the natural log of 2:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getNatLog2() {\n   return Math.LN2\n}\n\x3c/pre\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.LN2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.LN2\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the natural log of 2:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getNatLog2() {\n   return Math.LN2\n}\n\x3c/pre\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Description "," Examples "," Example: Using Math.LN2 "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/E",
"title":"Math.E","_id":"4eea85c2a4c86c4dba00013a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eThe base of natural logarithms, e, approximately 2.718.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3eE\x3c/code\x3e is a static property of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.E\x3c/code\x3e, rather than as a property of a \x3ccode\x3eMath\x3c/code\x3e object you created.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.E"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.E\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following function returns e:\x3c/p\x3e\n\x3cpre\x3e\nfunction getNapier() {\n   return Math.E\n}\n\x3c/pre\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.E"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.E\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following function returns e:\x3c/p\x3e\n\x3cpre\x3e\nfunction getNapier() {\n   return Math.E\n}\n\x3c/pre\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Description","Examples","Example: Using Math.E"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/LN10",
"title":"Math.LN10","_id":"4eea85c3a4c86c4dba00013b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eThe natural logarithm of 10, approximately 2.302.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3eLN10\x3c/code\x3e is a static property of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.LN10\x3c/code\x3e, rather than as a property of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.LN10"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.LN10\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the natural log of 10:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getNatLog10() {\n   return Math.LN10\n}\n\x3c/pre\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.LN10"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.LN10\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the natural log of 10:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getNatLog10() {\n   return Math.LN10\n}\n\x3c/pre\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Description "," Examples "," Example: Using Math.LN10 "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/LOG2E",
"title":"Math.LOG2E","_id":"4eea85c4a4c86c4dba00013c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eThe base 2 logarithm of E (approximately 1.442).\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth colspan \x3d "2" class \x3d "header"\x3eProperty of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3eLOG2E\x3c/code\x3e is a static property of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.LOG2E\x3c/code\x3e, rather than as a property of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.LOG2E"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.LOG2E\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the base 2 logarithm of \x3ccode\x3eE\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getLog2e() {\n   return Math.LOG2E\n}\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.LOG2E"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.LOG2E\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the base 2 logarithm of \x3ccode\x3eE\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getLog2e() {\n   return Math.LOG2E\n}\n\x3c/pre\x3e\n\x3cp\x3e\x3cbr/\x3e\n\x3c/p\x3e \x3c/div\x3e'],"sectionNames":["Summary"," Description "," Examples "," Example: Using Math.LOG2E "]},
{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/LOG10E","title":"Math.LOG10E","_id":"4eea85c9a4c86c4dba00013d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eThe base 10 logarithm of E (approximately 0.434).\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3eLOG10E\x3c/code\x3e is a static property of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.LOG10E\x3c/code\x3e, rather than as a property of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.LOG10E"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.LOG10E\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the base 10 logarithm of \x3ccode\x3eE\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getLog10e() {\n   return Math.LOG10E\n} \n\x3c/pre\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.LOG10E"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.LOG10E\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the base 10 logarithm of \x3ccode\x3eE\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getLog10e() {\n   return Math.LOG10E\n} \n\x3c/pre\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Description "," Examples "," Example: Using Math.LOG10E "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/PI",
"title":"Math.PI","_id":"4eea85caa4c86c4dba00013e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eThe ratio of the circumference of a circle to its diameter, approximately 3.14159.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3ePI\x3c/code\x3e is a static property of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.PI\x3c/code\x3e, rather than as a property of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_PI"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3ePI\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the value of pi:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getPi() {\n   return Math.PI\n}\n\x3c/pre\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_PI"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3ePI\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the value of pi:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getPi() {\n   return Math.PI\n}\n\x3c/pre\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Description "," Examples "," Example: Using PI "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/SQRT1_2","title":"Math.SQRT1_2",
"_id":"4eea85cba4c86c4dba00013f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eThe square root of 1/2; equivalently, 1 over the square root of 2, approximately 0.707.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3eSQRT1_2\x3c/code\x3e is a static property of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.SQRT1_2\x3c/code\x3e, rather than as a property of a \x3ccode\x3eMath\x3c/code\x3e object you created.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_SQRT1_2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eSQRT1_2\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following function returns 1 over the square root of 2:\x3c/p\x3e\n\x3cpre\x3e\nfunction getRoot1_2() {\n   return Math.SQRT1_2\n}\n\x3c/pre\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_SQRT1_2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eSQRT1_2\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThe following function returns 1 over the square root of 2:\x3c/p\x3e\n\x3cpre\x3e\nfunction getRoot1_2() {\n   return Math.SQRT1_2\n}\n\x3c/pre\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Description","Examples","Example: Using SQRT1_2"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/SQRT2",
"title":"Math.SQRT2","_id":"4eea85cba4c86c4dba000140","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eThe square root of 2, approximately 1.414.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eProperty of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3eSQRT2\x3c/code\x3e is a static property of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.SQRT2\x3c/code\x3e, rather than as a property of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.SQRT2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.SQRT2\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the square root of 2:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getRoot2() {\n   return Math.SQRT2\n}\n\x3c/pre\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Example:_Using_Math.SQRT2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.SQRT2\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the square root of 2:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getRoot2() {\n   return Math.SQRT2\n}\n\x3c/pre\x3e \x3c/div\x3e'],"sectionNames":[" Summary "," Description "," Examples "," Example: Using Math.SQRT2 "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/abs",
"title":"Math.abs","_id":"4eea85cea4c86c4dba000141","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the absolute value of a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cpre class \x3d "eval"\x3evar abs \x3d Math.abs(\x3cem\x3ex\x3c/em\x3e);\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eabs\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, so you always use it as \x3ccode\x3eMath.abs()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Math.abs_behavior"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: \x3ccode\x3eMath.abs\x3c/code\x3e behavior \x3c/h4\x3e\n\x3cp\x3ePassing a non-numeric string or undefined/empty variable returns NaN. Passing null returns 0.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eMath.abs(\'-1\');     // 1\nMath.abs(-2);       // 2\nMath.abs(null);     // 0\nMath.abs(\x26quot;string\x26quot;); // NaN\nMath.abs();         // NaN\n\x3c/pre\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Math.abs_behavior"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: \x3ccode\x3eMath.abs\x3c/code\x3e behavior \x3c/h4\x3e\n\x3cp\x3ePassing a non-numeric string or undefined/empty variable returns NaN. Passing null returns 0.\n\x3c/p\x3e\n\x3cpre class \x3d "eval"\x3eMath.abs(\'-1\');     // 1\nMath.abs(-2);       // 2\nMath.abs(null);     // 0\nMath.abs(\x26quot;string\x26quot;); // NaN\nMath.abs();         // NaN\n\x3c/pre\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Math.abs behavior "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/acos","title":"Math.acos","_id":"4eea85d0a4c86c4dba000142","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the arccosine (in radians) of a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.acos(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eacos\x3c/code\x3e method returns a numeric value between 0 and pi radians for x between -1 and 1. If the value of \x3ccode\x3enumber\x3c/code\x3e is outside this range, it returns \x3ccode\x3eNaN\x3c/code\x3e.\n\x3c/p\x3e\x3cp\x3e\x3ccode\x3eacos\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, so you always use it as \x3ccode\x3eMath.acos()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.acos"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.acos\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the arccosine of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getAcos(x) {\n   return Math.acos(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass -1 to \x3ccode\x3egetAcos\x3c/code\x3e, it returns 3.141592653589793; if you pass 2, it returns \x3ccode\x3eNaN\x3c/code\x3e because 2 is out of range.\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.acos"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.acos\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the arccosine of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getAcos(x) {\n   return Math.acos(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass -1 to \x3ccode\x3egetAcos\x3c/code\x3e, it returns 3.141592653589793; if you pass 2, it returns \x3ccode\x3eNaN\x3c/code\x3e because 2 is out of range.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/asin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/asin"\x3easin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan"\x3eatan\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan2"\x3eatan2\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/cos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/cos"\x3ecos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/sin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sin"\x3esin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/tan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/tan"\x3etan\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.acos "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/asin","title":"Math.asin","_id":"4eea85d1a4c86c4dba000143","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the arcsine (in radians) of a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.asin(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3easin\x3c/code\x3e method returns a numeric value between -pi/2 and pi/2 radians for x between -1 and 1. If the value of \x3ccode\x3enumber\x3c/code\x3e is outside this range, it returns \x3ccode\x3eNaN\x3c/code\x3e.\n\x3c/p\x3e\x3cp\x3e\x3ccode\x3easin\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, so you always use it as \x3ccode\x3eMath.asin()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.asin"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.asin\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the arcsine of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getAsin(x) {\n   return Math.asin(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetAsin\x3c/code\x3e the value 1, it returns 1.570796326794897 (pi/2); if you pass it the value 2, it returns \x3ccode\x3eNaN\x3c/code\x3e because 2 is out of range.\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.asin"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.asin\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the arcsine of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getAsin(x) {\n   return Math.asin(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetAsin\x3c/code\x3e the value 1, it returns 1.570796326794897 (pi/2); if you pass it the value 2, it returns \x3ccode\x3eNaN\x3c/code\x3e because 2 is out of range.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/acos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/acos"\x3eacos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan"\x3eatan\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan2"\x3eatan2\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/cos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/cos"\x3ecos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/sin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sin"\x3esin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/tan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/tan"\x3etan\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.asin "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan","title":"Math.atan","_id":"4eea85d2a4c86c4dba000144","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the arctangent (in radians) of a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.atan(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eatan\x3c/code\x3e method returns a numeric value between -pi/2 and pi/2 radians.\n\x3c/p\x3e\x3cp\x3e\x3ccode\x3eatan\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, so you always use it as \x3ccode\x3eMath.atan()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created. \x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.atan"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.atan\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the arctangent of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getAtan(x) {\n   return Math.atan(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetAtan\x3c/code\x3e the value 1, it returns 0.7853981633974483; if you pass it the value .5, it returns 0.4636476090008061. \x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.atan"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.atan\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the arctangent of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getAtan(x) {\n   return Math.atan(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetAtan\x3c/code\x3e the value 1, it returns 0.7853981633974483; if you pass it the value .5, it returns 0.4636476090008061. \x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/acos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/acos"\x3eacos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/asin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/asin"\x3easin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan2"\x3eatan2\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/cos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/cos"\x3ecos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/sin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sin"\x3esin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/tan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/tan"\x3etan\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.atan "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan2","title":"Math.atan2","_id":"4eea85d2a4c86c4dba000145","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the arctangent of the quotient of its arguments.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.atan2(\x3cem\x3ey\x3c/em\x3e, \x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ey, x\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e Numbers.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3eatan2\x3c/code\x3e method returns a numeric value between -pi and pi representing the angle theta of an (x,y) point. This is the counterclockwise angle, measured in radians, between the positive X axis, and the point (\x3ccode\x3ex,y\x3c/code\x3e). Note that the arguments to this function pass the y-coordinate first and the x-coordinate second.\n\x3c/p\x3e\x3cp\x3e\x3ccode\x3eatan2\x3c/code\x3e is passed separate \x3ccode\x3ex\x3c/code\x3e and \x3ccode\x3ey\x3c/code\x3e arguments, and \x3ccode\x3eatan\x3c/code\x3e is passed the ratio of those two arguments.\n\x3c/p\x3e\x3cp\x3eBecause \x3ccode\x3eatan2\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.atan2()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.atan2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.atan2\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the angle of the polar coordinate:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getAtan2(y,x) {\n   return Math.atan2(y,x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetAtan2\x3c/code\x3e the values (90,15), it returns 1.4056476493802699; if you pass it the values (15,90), it returns 0.16514867741462683.\n\x3c/p\x3e\x3cp\x3e\x3ccode\x3eMath.atan2( \x26plusmn;0, -0 )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI\x3c/code\x3e.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;0, +0 )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;0\x3c/code\x3e.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;0, -x )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI\x3c/code\x3e for x \x26lt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;0, x )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;0\x3c/code\x3e for x \x26gt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( y, \x26plusmn;0 )\x3c/code\x3e returns \x3ccode\x3e-PI/2\x3c/code\x3e for y \x26gt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;y, -Infinity )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI\x3c/code\x3e for finite y \x26gt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;y, +Infinity )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;0\x3c/code\x3e for finite y \x26gt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;Infinity, +x )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI/2\x3c/code\x3e for finite x.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;Infinity, -Infinity )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;3*PI/4\x3c/code\x3e.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;Infinity, +Infinity )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI/4\x3c/code\x3e.\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.atan2"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.atan2\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the angle of the polar coordinate:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getAtan2(y,x) {\n   return Math.atan2(y,x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetAtan2\x3c/code\x3e the values (90,15), it returns 1.4056476493802699; if you pass it the values (15,90), it returns 0.16514867741462683.\n\x3c/p\x3e\x3cp\x3e\x3ccode\x3eMath.atan2( \x26plusmn;0, -0 )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI\x3c/code\x3e.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;0, +0 )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;0\x3c/code\x3e.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;0, -x )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI\x3c/code\x3e for x \x26lt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;0, x )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;0\x3c/code\x3e for x \x26gt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( y, \x26plusmn;0 )\x3c/code\x3e returns \x3ccode\x3e-PI/2\x3c/code\x3e for y \x26gt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;y, -Infinity )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI\x3c/code\x3e for finite y \x26gt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;y, +Infinity )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;0\x3c/code\x3e for finite y \x26gt; 0.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;Infinity, +x )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI/2\x3c/code\x3e for finite x.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;Infinity, -Infinity )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;3*PI/4\x3c/code\x3e.\x3cbr/\x3e\n\x3ccode\x3eMath.atan2( \x26plusmn;Infinity, +Infinity )\x3c/code\x3e returns \x3ccode\x3e\x26plusmn;PI/4\x3c/code\x3e.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/acos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/acos"\x3eacos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/asin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/asin"\x3easin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan"\x3eatan\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/cos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/cos"\x3ecos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/sin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sin"\x3esin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/tan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/tan"\x3etan\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.atan2 "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/ceil","title":"Math.ceil","_id":"4eea85d4a4c86c4dba000146","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the smallest integer greater than or equal to a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.ceil(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3eceil\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.ceil()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.ceil"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.ceil\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the ceil value of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getCeil(x) {\n   return Math.ceil(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass 45.95 to \x3ccode\x3egetCeil\x3c/code\x3e, it returns 46; if you pass -45.95, it returns -45.\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.ceil"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.ceil\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the ceil value of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getCeil(x) {\n   return Math.ceil(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass 45.95 to \x3ccode\x3egetCeil\x3c/code\x3e, it returns 46; if you pass -45.95, it returns -45.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/floor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/floor"\x3efloor\x3c/a\x3e, \x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Math/round" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/round"\x3eround\x3c/a\x3e\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.ceil ","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/cos","title":"Math.cos","_id":"4eea85d6a4c86c4dba000147","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the cosine of a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.cos(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3ecos\x3c/code\x3e method returns a numeric value between -1 and 1, which represents the cosine of the angle.\n\x3c/p\x3e\x3cp\x3eBecause \x3ccode\x3ecos\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.cos()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.cos"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.cos\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the cosine of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getCos(x) {\n   return Math.cos(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf \x3ccode\x3ex\x3c/code\x3e equals 2*\x3ccode\x3eMath.PI\x3c/code\x3e, \x3ccode\x3egetCos\x3c/code\x3e returns 1; if \x3ccode\x3ex\x3c/code\x3e equals \x3ccode\x3eMath.PI\x3c/code\x3e, the \x3ccode\x3egetCos\x3c/code\x3e method returns -1. \x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.cos"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.cos\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the cosine of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getCos(x) {\n   return Math.cos(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf \x3ccode\x3ex\x3c/code\x3e equals 2*\x3ccode\x3eMath.PI\x3c/code\x3e, \x3ccode\x3egetCos\x3c/code\x3e returns 1; if \x3ccode\x3ex\x3c/code\x3e equals \x3ccode\x3eMath.PI\x3c/code\x3e, the \x3ccode\x3egetCos\x3c/code\x3e method returns -1. \x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/acos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/acos"\x3eacos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/asin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/asin"\x3easin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan"\x3eatan\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan2"\x3eatan2\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/sin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sin"\x3esin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/tan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/tan"\x3etan\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.cos "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/floor","title":"Math.floor","_id":"4eea85d6a4c86c4dba000148","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the largest integer less than or equal to a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.floor(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3efloor\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.floor()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.floor"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.floor\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the floor value of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getFloor(x) {\n   return Math.floor(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass 45.95 to \x3ccode\x3egetFloor\x3c/code\x3e, it returns 45; if you pass -45.95, it returns -46.\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.floor"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.floor\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the floor value of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getFloor(x) {\n   return Math.floor(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass 45.95 to \x3ccode\x3egetFloor\x3c/code\x3e, it returns 45; if you pass -45.95, it returns -46.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/ceil" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/ceil"\x3eceil\x3c/a\x3e,\x26nbsp;\x3ca title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Math/round" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/round"\x3eround\x3c/a\x3e\x3c/p\x3e \x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.floor ","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/log","title":"Math.log","_id":"4eea85dca4c86c4dba000149","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the natural logarithm (base \x3ccode\x3eE\x3c/code\x3e) of a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.log(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf the value of \x3ccode\x3enumber\x3c/code\x3e is negative, the return value is always \x3ccode\x3eNaN\x3c/code\x3e.\n\x3c/p\x3e\x3cp\x3eBecause \x3ccode\x3elog\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.log()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created. \x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.log"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.log\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the natural log of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getLog(x) {\n   return Math.log(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetLog\x3c/code\x3e the value 10, it returns 2.302585092994046; if you pass it the value 0, it returns \x3ccode\x3e-Infinity\x3c/code\x3e; if you pass it the value -1, it returns \x3ccode\x3eNaN\x3c/code\x3e because -1 is out of range.\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.log"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.log\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the natural log of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getLog(x) {\n   return Math.log(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetLog\x3c/code\x3e the value 10, it returns 2.302585092994046; if you pass it the value 0, it returns \x3ccode\x3e-Infinity\x3c/code\x3e; if you pass it the value -1, it returns \x3ccode\x3eNaN\x3c/code\x3e because -1 is out of range.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/exp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/exp"\x3eexp\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/pow" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/pow"\x3epow\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.log "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/exp","title":"Math.exp","_id":"4eea85dca4c86c4dba00014a","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns \x3ccode\x3eE\x3csup\x3ex\x3c/sup\x3e\x3c/code\x3e, where \x3ccode\x3ex\x3c/code\x3e is the argument, and \x3ccode\x3eE\x3c/code\x3e is Euler\'s constant, the base of the natural logarithms.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.exp(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3eexp\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.exp()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.exp"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.exp\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the exponential value of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getExp(x) {\n   return Math.exp(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetExp\x3c/code\x3e the value 1, it returns 2.718281828459045.\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.exp"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.exp\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the exponential value of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getExp(x) {\n   return Math.exp(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetExp\x3c/code\x3e the value 1, it returns 2.718281828459045.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/E" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/E"\x3eE\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/log" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/log"\x3elog\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/pow" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/pow"\x3epow\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.exp "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/max","title":"Math.max","_id":"4eea85dda4c86c4dba00014b","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the largest of zero or more numbers.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e Math.max([\x3cem\x3evalue1\x3c/em\x3e[,\x3cem\x3evalue2\x3c/em\x3e[, ...]]]) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evalue1, value2, ...\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eNumbers.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3emax\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.max()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\x3c/p\x3e\n\x3cp\x3eIf no arguments are given, the results is \x3ccode\x3e-\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3eInfinity\x3c/a\x3e\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3eIf at least one of arguments cannot be converted to a number, the result is \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Properties/NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN"\x3eNaN\x3c/a\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.max"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.max\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3eMath.max(10, 20)\x3c/code\x3e returns 20. \x3ccode\x3eMath.max(-10, -20)\x3c/code\x3e returns -10. \x3ccode\x3eMath.max(-10, 20)\x3c/code\x3e returns 20.\x3c/p\x3e\n\x3cpre\x3e\nfunction getMaxOfArray(numArray) {\n  return Math.max.apply(null, numArray);\n}\n\x3c/pre\x3e\n\x3cp\x3eThis function uses \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3e\x3ccode\x3eapply\x3c/code\x3e\x3c/a\x3e to find the maximum element in a numeric array. \x3ccode\x3egetMaxOfArray([1,2,3])\x3c/code\x3e is equivalent to \x3ccode\x3eMath.max(1, 2, 3)\x3c/code\x3e, but you can use \x3ccode\x3egetMaxOfArray\x3c/code\x3e on programmatically constructed arrays of any size.\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.max"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.max\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3e\x3ccode\x3eMath.max(10, 20)\x3c/code\x3e returns 20. \x3ccode\x3eMath.max(-10, -20)\x3c/code\x3e returns -10. \x3ccode\x3eMath.max(-10, 20)\x3c/code\x3e returns 20.\x3c/p\x3e\n\x3cpre\x3e\nfunction getMaxOfArray(numArray) {\n  return Math.max.apply(null, numArray);\n}\n\x3c/pre\x3e\n\x3cp\x3eThis function uses \x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/apply" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply"\x3e\x3ccode\x3eapply\x3c/code\x3e\x3c/a\x3e to find the maximum element in a numeric array. \x3ccode\x3egetMaxOfArray([1,2,3])\x3c/code\x3e is equivalent to \x3ccode\x3eMath.max(1, 2, 3)\x3c/code\x3e, but you can use \x3ccode\x3egetMaxOfArray\x3c/code\x3e on programmatically constructed arrays of any size.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee also\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/min" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/min"\x3eMath.min\x3c/a\x3e\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters",
"Description","Examples","Example: Using Math.max","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/pow","title":"Math.pow","_id":"4eea85dfa4c86c4dba00014c","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns \x3ccode\x3ebase\x3c/code\x3e to the \x3ccode\x3eexponent\x3c/code\x3e power, that is, \x3ccode\x3ebase\x3csup\x3eexponent\x3c/sup\x3e\x3c/code\x3e.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.pow(\x3cem\x3ebase\x3c/em\x3e,\x3cem\x3eexponent\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ebase\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e The base number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3eexponents\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e The exponent to which to raise \x3ccode\x3ebase\x3c/code\x3e.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3epow\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.pow()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.pow"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.pow\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\nfunction raisePower(x,y) {\n   return Math.pow(x,y)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf \x3ccode\x3ex\x3c/code\x3e is 7 and \x3ccode\x3ey\x3c/code\x3e is 2, raisePower returns 49 (7 to the power of 2).\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.pow"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.pow\x3c/code\x3e \x3c/h4\x3e\n\x3cpre\x3e\nfunction raisePower(x,y) {\n   return Math.pow(x,y)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf \x3ccode\x3ex\x3c/code\x3e is 7 and \x3ccode\x3ey\x3c/code\x3e is 2, raisePower returns 49 (7 to the power of 2).\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/exp" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/exp"\x3eexp\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/log" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/log"\x3elog\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.pow "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/min","title":"Math.min","_id":"4eea85e0a4c86c4dba00014d","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the smallest of zero or more numbers.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eMath.min([\x3cem\x3evalue1\x3c/em\x3e[,\x3cem\x3evalue2\x3c/em\x3e[, ...]]]) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3evalue1, value2, ...\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eNumbers.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eBecause \x3ccode\x3emin\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.min()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\x3c/p\x3e\n\x3cp\x3eIf no arguments are given, the result is \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Infinity" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Infinity"\x3eInfinity\x3c/a\x3e\x3c/code\x3e.\x3c/p\x3e\n\x3cp\x3eIf at least one of arguments cannot be converted to a number, the result is \x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/NaN" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/NaN"\x3eNaN\x3c/a\x3e\x3c/code\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.min"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.min\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThis finds the min of x and y and assigns it to z:\x3c/p\x3e\n\x3cpre\x3evar x \x3d 10, y \x3d -20;\nvar z \x3d Math.min(x, y);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Clipping_a_value_with_Math.min"\x3e\x3c/span\x3e\x3ch5 class \x3d "editable"\x3eExample: Clipping a value with \x3ccode\x3eMath.min\x3c/code\x3e\x3c/h5\x3e\n\x3cp\x3e\x3ccode\x3eMath.min\x3c/code\x3e is often used to clip a value so that it is always less than or equal to a boundary. For instance, this\x3c/p\x3e\n\x3cpre\x3evar x \x3d f(foo);\nif (x \x26gt; boundary)\n    x \x3d boundary;\n\x3c/pre\x3e\n\x3cp\x3emay be written as this\x3c/p\x3e\n\x3cpre\x3evar x \x3d Math.min(f(foo), boundary);\n\x3c/pre\x3e\n\x3cdiv\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/max" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/max"\x3eMath.max\x3c/a\x3e\x3c/code\x3e can be used in a similar way to clip a value at the other end.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.min"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.min\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eThis finds the min of x and y and assigns it to z:\x3c/p\x3e\n\x3cpre\x3evar x \x3d 10, y \x3d -20;\nvar z \x3d Math.min(x, y);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Clipping_a_value_with_Math.min"\x3e\x3c/span\x3e\x3ch5 class \x3d "editable"\x3eExample: Clipping a value with \x3ccode\x3eMath.min\x3c/code\x3e\x3c/h5\x3e\n\x3cp\x3e\x3ccode\x3eMath.min\x3c/code\x3e is often used to clip a value so that it is always less than or equal to a boundary. For instance, this\x3c/p\x3e\n\x3cpre\x3evar x \x3d f(foo);\nif (x \x26gt; boundary)\n    x \x3d boundary;\n\x3c/pre\x3e\n\x3cp\x3emay be written as this\x3c/p\x3e\n\x3cpre\x3evar x \x3d Math.min(f(foo), boundary);\n\x3c/pre\x3e\n\x3cdiv\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/max" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/max"\x3eMath.max\x3c/a\x3e\x3c/code\x3e can be used in a similar way to clip a value at the other end.\x3c/div\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3cspan id \x3d "Example:_Clipping_a_value_with_Math.min"\x3e\x3c/span\x3e\x3ch5 class \x3d "editable"\x3eExample: Clipping a value with \x3ccode\x3eMath.min\x3c/code\x3e\x3c/h5\x3e\n\x3cp\x3e\x3ccode\x3eMath.min\x3c/code\x3e is often used to clip a value so that it is always less than or equal to a boundary. For instance, this\x3c/p\x3e\n\x3cpre\x3evar x \x3d f(foo);\nif (x \x26gt; boundary)\n    x \x3d boundary;\n\x3c/pre\x3e\n\x3cp\x3emay be written as this\x3c/p\x3e\n\x3cpre\x3evar x \x3d Math.min(f(foo), boundary);\n\x3c/pre\x3e\n\x3cdiv\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/max" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/max"\x3eMath.max\x3c/a\x3e\x3c/code\x3e can be used in a similar way to clip a value at the other end.\x3c/div\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/max" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/max"\x3eMath.max\x3c/a\x3e\x3c/code\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using Math.min",
"","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random","title":"Math.random","_id":"4eea85e1a4c86c4dba00014e","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns a floating-point, pseudo-random number in the range \x3ccode\x3e[0, 1)\x3c/code\x3e that is, from 0 (inclusive) up to but not including 1 (exclusive), which you can then scale to your desired range.\x3c/p\x3e\n\x3cp\x3eThe random number generator is seeded from the current time, as in Java.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript ?\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript ?\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3eMath.random()\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cp\x3eNone.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_Math.random"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.random\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eNote that as numbers in JavaScript are IEEE 754 floating point numbers with round-to-nearest-even behavior, these ranges, excluding the one for \x3ccode\x3eMath.random()\x3c/code\x3e itself, aren\'t exact, and depending on the bounds it\'s possible in extremely rare cases (on the order of 1 in 2\x3csup\x3e62\x3c/sup\x3e) to calculate the usually-excluded upper bound.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns a random number between 0 (inclusive) and 1 (exclusive)\nfunction getRandom()\n{\n  return Math.random();\n}\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns a random number between min and max\nfunction getRandomArbitary(min, max)\n{\n  return Math.random() * (max - min) + min;\n}\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns a random integer between min and max\n// Using Math.round() will give you a non-uniform distribution!\nfunction getRandomInt(min, max)\n{\n  return Math.floor(Math.random() * (max - min + 1)) + min;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Example:_Using_Math.random"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.random\x3c/code\x3e\x3c/h4\x3e\n\x3cp\x3eNote that as numbers in JavaScript are IEEE 754 floating point numbers with round-to-nearest-even behavior, these ranges, excluding the one for \x3ccode\x3eMath.random()\x3c/code\x3e itself, aren\'t exact, and depending on the bounds it\'s possible in extremely rare cases (on the order of 1 in 2\x3csup\x3e62\x3c/sup\x3e) to calculate the usually-excluded upper bound.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns a random number between 0 (inclusive) and 1 (exclusive)\nfunction getRandom()\n{\n  return Math.random();\n}\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns a random number between min and max\nfunction getRandomArbitary(min, max)\n{\n  return Math.random() * (max - min) + min;\n}\x3c/pre\x3e\r\n        \n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3e// Returns a random integer between min and max\n// Using Math.round() will give you a non-uniform distribution!\nfunction getRandomInt(min, max)\n{\n  return Math.floor(Math.random() * (max - min + 1)) + min;\n}\x3c/pre\x3e\r\n        \n\x3cp\x3e\x26nbsp;\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Examples","Example: Using Math.random"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sin","title":"Math.sin","_id":"4eea85e1a4c86c4dba00014f","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the sine of a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.sin(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3esin\x3c/code\x3e method returns a numeric value between -1 and 1, which represents the sine of the argument.\n\x3c/p\x3e\x3cp\x3eBecause \x3ccode\x3esin\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.sin()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.sin"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.sin\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the sine of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getSine(x) {\n   return Math.sin(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetSine\x3c/code\x3e the value \x3ccode\x3eMath.PI/2\x3c/code\x3e, it returns 1.\n\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.sin"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.sin\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the sine of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getSine(x) {\n   return Math.sin(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetSine\x3c/code\x3e the value \x3ccode\x3eMath.PI/2\x3c/code\x3e, it returns 1.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/acos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/acos"\x3eacos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/asin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/asin"\x3easin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan"\x3eatan\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan2"\x3eatan2\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/cos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/cos"\x3ecos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/tan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/tan"\x3etan\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.sin "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/round","title":"Math.round","_id":"4eea85e1a4c86c4dba000150","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSummary\x3c/h3\x3e\n\x3cp\x3eReturns the value of a number rounded to the nearest integer.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSyntax\x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e Math.round(\x3cem\x3ex\x3c/em\x3e) \x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eParameters\x3c/h3\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e \x3cdd\x3eA number.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eDescription\x3c/h3\x3e\n\x3cp\x3eIf the fractional portion of \x3ccode\x3enumber\x3c/code\x3e is .5 or greater, the argument is rounded to the next higher integer. If the fractional portion of \x3ccode\x3enumber\x3c/code\x3e is less than .5, the argument is rounded to the next lower integer.\x3c/p\x3e\n\x3cp\x3eBecause \x3ccode\x3eround\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.round()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eExamples\x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.round"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.round\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3e\n//Returns the value 20\nx\x3dMath.round(20.49)\n\n//Returns the value 21\nx\x3dMath.round(20.5)\n\n//Returns the value -20\nx\x3dMath.round(-20.5)\n\n//Returns the value -21\nx\x3dMath.round(-20.51)\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.round"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eExample: Using \x3ccode\x3eMath.round\x3c/code\x3e\x3c/h4\x3e\n\x3cpre\x3e\n//Returns the value 20\nx\x3dMath.round(20.49)\n\n//Returns the value 21\nx\x3dMath.round(20.5)\n\n//Returns the value -20\nx\x3dMath.round(-20.5)\n\n//Returns the value -21\nx\x3dMath.round(-20.51)\n\x3c/pre\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eSee Also\x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/Core_JavaScript_1.5_Reference/Global_Objects/Math/ceil" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/ceil"\x3eceil\x3c/a\x3e, \x3ca style \x3d "" title \x3d "en/Core JavaScript 1.5 Reference/Global Objects/Math/floor" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/floor"\x3efloor\x3c/a\x3e\x3c/p\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Examples","Example: Using Math.round","See Also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sqrt","title":"Math.sqrt","_id":"4eea85e3a4c86c4dba000151","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the square root of a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.sqrt(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eIf the value of \x3ccode\x3enumber\x3c/code\x3e is negative, \x3ccode\x3esqrt\x3c/code\x3e returns \x3ccode\x3eNaN\x3c/code\x3e.\n\x3c/p\x3e\x3cp\x3eBecause \x3ccode\x3esqrt\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.sqrt()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.sqrt"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.sqrt\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the square root of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getRoot(x) {\n   return Math.sqrt(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetRoot\x3c/code\x3e the value 9, it returns 3; if you pass it the value 2, it returns 1.414213562373095.\n\x3c/p\x3e \x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.sqrt"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.sqrt\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the square root of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getRoot(x) {\n   return Math.sqrt(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eIf you pass \x3ccode\x3egetRoot\x3c/code\x3e the value 9, it returns 3; if you pass it the value 2, it returns 1.414213562373095.\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.sqrt "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/tan","title":"Math.tan","_id":"4eea85e4a4c86c4dba000152","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Summary \x3c/h3\x3e\n\x3cp\x3eReturns the tangent of a number.\n\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math" title \x3d "en/JavaScript/Reference/Global_Objects/Math"\x3e\x3ccode\x3eMath\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.0\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 1st Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e \x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Syntax \x3c/h3\x3e\n\x3cp\x3e\x3ccode\x3e\nMath.tan(\x3cem\x3ex\x3c/em\x3e)\n\x3c/code\x3e\n\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Parameters \x3c/h3\x3e\n\x3cdl\x3e\x3cdt\x3e \x3ccode\x3ex\x3c/code\x3e\x26nbsp;\x3c/dt\x3e\x3cdd\x3e A number representing an angle in radians.\n\x3c/dd\x3e\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Description \x3c/h3\x3e\n\x3cp\x3eThe \x3ccode\x3etan\x3c/code\x3e method returns a numeric value that represents the tangent of the angle.\n\x3c/p\x3e\x3cp\x3eBecause \x3ccode\x3etan\x3c/code\x3e is a static method of \x3ccode\x3eMath\x3c/code\x3e, you always use it as \x3ccode\x3eMath.tan()\x3c/code\x3e, rather than as a method of a \x3ccode\x3eMath\x3c/code\x3e object you created.\n\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e Examples \x3c/h3\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.tan"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.tan\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the tangent of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getTan(x) {\n   return Math.tan(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eBecause the \x3ccode\x3eMath.tan()\x3c/code\x3e function accepts radians, but it is often easier to work with degrees, the following function accepts a value in degrees, converts it to radians and returns the tangent.\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getTanDeg(deg) {\n   var rad \x3d deg * Math.PI/180;\n   return Math.tan(rad)\n}\n\x3c/pre\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Example:_Using_Math.tan"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3e Example: Using \x3ccode\x3eMath.tan\x3c/code\x3e \x3c/h4\x3e\n\x3cp\x3eThe following function returns the tangent of the variable \x3ccode\x3ex\x3c/code\x3e:\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getTan(x) {\n   return Math.tan(x)\n}\n\x3c/pre\x3e\n\x3cp\x3eBecause the \x3ccode\x3eMath.tan()\x3c/code\x3e function accepts radians, but it is often easier to work with degrees, the following function accepts a value in degrees, converts it to radians and returns the tangent.\n\x3c/p\x3e\n\x3cpre\x3e\nfunction getTanDeg(deg) {\n   var rad \x3d deg * Math.PI/180;\n   return Math.tan(rad)\n}\n\x3c/pre\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "See_Also"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3e See Also \x3c/h3\x3e\n\x3cp\x3e\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/acos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/acos"\x3eacos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/asin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/asin"\x3easin\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan"\x3eatan\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/atan2" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/atan2"\x3eatan2\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/cos" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/cos"\x3ecos\x3c/a\x3e,\n\x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Math/sin" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/sin"\x3esin\x3c/a\x3e\n\x3c/p\x3e \x3c/div\x3e'],
"sectionNames":[" Summary "," Syntax "," Parameters "," Description "," Examples "," Example: Using Math.tan "," See Also "]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getPrototypeOf","title":"Object.getPrototypeOf","_id":"4eea85f3a4c86c4dba000154","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Summary"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSummary\x3c/h2\x3e\n\x3cp\x3eReturns the prototype of the specified object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3cthead\x3e \x3ctr\x3e \x3cth class \x3d "header" colspan \x3d "2"\x3eMethod of \x3ca title \x3d "en/JavaScript/Reference/Global_Objects/Object" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object"\x3e\x3ccode\x3eObject\x3c/code\x3e\x3c/a\x3e\x3c/th\x3e \x3c/tr\x3e \x3c/thead\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3eImplemented in\x3c/td\x3e \x3ctd\x3eJavaScript 1.8.1\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eECMAScript Edition\x3c/td\x3e \x3ctd\x3eECMAScript 5th Edition\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Syntax"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSyntax\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3eObject.getPrototypeOf(\x3cem\x3eobject\x3c/em\x3e)\x3c/code\x3e\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eParameters\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3eobject\x3c/dt\x3e \x3cdd\x3eThe object whose prototype is to be returned.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Description"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eDescription\x3c/h2\x3e\n\x3cp\x3e\x3ccode\x3e\x3cspan style \x3d "font-family: Verdana,Tahoma,sans-serif;"\x3eThrows a \x3c/span\x3e\x3ca title \x3d "en/JavaScript/Reference/Global Objects/TypeError" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/TypeError"\x3e\x3cspan style \x3d "font-family: Courier New;"\x3eTypeError\x3c/span\x3e\x3c/a\x3e\x3c/code\x3e\x3ccode\x3e\x3cspan style \x3d "font-family: Verdana,Tahoma,sans-serif;"\x3e exception if the object parameter isn\'t an \x3c/span\x3e\x3c/code\x3e\x3cspan style \x3d "font-family: Courier New;"\x3eObject\x3c/span\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Cross-browser_compatibility"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eCross-browser compatibility\x3c/h2\x3e\n\x3cp\x3eBased on \x3ca class \x3d " external" rel \x3d "external" href \x3d "http://kangax.github.com/es5-compat-table/" title \x3d "http://kangax.github.com/es5-compat-table/" target \x3d "_blank"\x3eKangax\'s compat table\x3c/a\x3e.\x3c/p\x3e\n\x3cp\x3e\n\n\x3cdiv class \x3d "htab"\x3e\x3ca name \x3d "AutoCompatibilityTable"\x3e\x3c/a\x3e\n\x3cul\x3e \x3cli class \x3d "selected"\x3eDesktop\x3c/li\x3e \x3cli\x3eMobile\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e\x3c/p\x3e\n\x3cdiv id \x3d "compat-desktop"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox (Gecko)\x3c/th\x3e \x3cth\x3eChrome\x3c/th\x3e \x3cth\x3eInternet Explorer\x3c/th\x3e \x3cth\x3eOpera\x3c/th\x3e \x3cth\x3eSafari\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e3.5\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3ctd\x3e9\x3c/td\x3e \x3ctd\x3e\x3cspan style \x3d "color: rgb(255, 0, 0);" title \x3d "Not supported."\x3e--\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e5\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cdiv id \x3d "compat-mobile"\x3e\n\x3ctable class \x3d "compat-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3cth\x3eFeature\x3c/th\x3e \x3cth\x3eFirefox Mobile (Gecko)\x3c/th\x3e \x3cth\x3eAndroid\x3c/th\x3e \x3cth\x3eIE Mobile\x3c/th\x3e \x3cth\x3eOpera Mobile\x3c/th\x3e \x3cth\x3eSafari Mobile\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3eBasic support\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3ctd\x3e\x3cspan title \x3d "Compatibility unknown; please update this." style \x3d "color: rgb(255, 153, 0);"\x3e?\x3c/span\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\n\x3cp\x3eEven if Opera does not support \x3ccode\x3eObject.getPrototypeOf()\x3c/code\x3e yet, it does support the non-standard \x3ccode\x3e__proto__\x3c/code\x3e property since Opera 10.50.\x3c/p\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca title \x3d "En/Core JavaScript 1.5 Reference/Global Objects/Object/IsPrototypeOf" class \x3d "internal" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf"\x3eisPrototypeOf\x3c/a\x3e\x26nbsp;\x3c/li\x3e \x3cli\x3eJohn\x26nbsp;Resig\'s post on \x3ca class \x3d "external" title \x3d "http://ejohn.org/blog/objectgetprototypeof/" rel \x3d "external" href \x3d "http://ejohn.org/blog/objectgetprototypeof/" target \x3d "_blank"\x3egetPrototypeOf\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3cp\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Summary","Syntax","Parameters","Description","Cross-browser compatibility","See also"]},{"url":"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Proxy","title":"Proxy","_id":"4eea85f4a4c86c4dba000155","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Introduction"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eIntroduction\x3c/h2\x3e\n\x3cp\x3eProxies are objects for which the programmer has to define the semantics in JavaScript. The default object semantics are implemented in the JavaScript engine, often written in lower-level languages like C++. Proxies let the programmer define most of the behavior of an object in JavaScript. They are said to provide a \x3cstrong\x3emeta-programming API\x3c/strong\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Terminology"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eTerminology\x3c/h2\x3e\n\x3cdl\x3e \x3cdt\x3ecatch-all mechanism (or \x26quot;intercession API\x26quot;)\x3c/dt\x3e \x3cdd\x3eThe technical term for this feature.\x3c/dd\x3e \x3cdt\x3ehandler\x3c/dt\x3e \x3cdd\x3eThe object that intercepts properties.\x3c/dd\x3e \x3cdt\x3eproxy\x3c/dt\x3e \x3cdd\x3eThe object whose properties are being intercepted.\x3c/dd\x3e \x3cdt\x3eproxy factory\x3c/dt\x3e \x3cdd\x3eThe object or method that creates intercessive proxies.\x3c/dd\x3e \x3cdt\x3etraps\x3c/dt\x3e \x3cdd\x3eThe methods that provide property access. This is analogous to the concept of traps in operating systems.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cp\x3eProxies can be either be \x3cstrong\x3etrapping\x3c/strong\x3e or \x3cstrong\x3efixed\x3c/strong\x3e.\x3c/p\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Proxy_API"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eProxy API\x3c/h2\x3e\n\x3cp\x3eCatch-alls can be defined only on distinct proxy objects, controlled by a handler object. There are two kinds of proxies:\x3c/p\x3e\n\x3cp\x3eobject proxies\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar proxy \x3d Proxy.create(handler, proto);\x3c/pre\x3e\r\n        \n\x3cp\x3eand function proxies :\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar proxy \x3d Proxy.createFunction(handler, callTrap, constructTrap);\x3c/pre\x3e\r\n        \n\x3cp\x3eWhere:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3ccode\x3eproto\x3c/code\x3e is an optional object representing the proxy\x26rsquo;s prototype (defaults to \x3ccode\x3enull\x3c/code\x3e if none is provided).\x3c/li\x3e \x3cli\x3e\x3ccode\x3ecallTrap\x3c/code\x3e is a variable-argument\x26nbsp;\x3ccode\x3efunction(args) { return any; }\x3c/code\x3e that reifies \x26ldquo;\x3ccode\x3eproxy(args)\x3c/code\x3e\x26rdquo;. Note: The this-binding of the \x3ccode\x3ecallTrap\x3c/code\x3e function is the this-binding of the call-site.\x3c/li\x3e \x3cli\x3e\x3ccode\x3econstructTrap\x3c/code\x3e is an optional variable-argument\x26nbsp;\x3ccode\x3efunction(args) { return any-object; }\x3c/code\x3e that reifies \x26ldquo;\x3ccode\x3enew proxy(args)\x3c/code\x3e\x26rdquo;. The this-binding of the \x3ccode\x3econstructTrap\x3c/code\x3e is either \x3ccode\x3eundefined\x3c/code\x3e (in strict mode) or the global object (in non-strict mode). If no \x3ccode\x3econstructTrap\x3c/code\x3e is provided, performing\x26nbsp;\x3ccode\x3enew proxy(...args)\x3c/code\x3e calls the proxy\x26rsquo;s \x3ccode\x3ecallTrap\x3c/code\x3e with \x3ccode\x3ethis\x3c/code\x3e bound to a new object delegating to the proxy\'s prototype.\x3c/li\x3e \x3cli\x3e\x3ccode\x3ehandler\x3c/code\x3e is an object that implements the handler API.\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Handler_API"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eHandler API\x3c/h2\x3e\n\x3cp\x3eThere are two kinds of traps: \x3cstrong\x3efundamental\x3c/strong\x3e and \x3cstrong\x3ederived\x3c/strong\x3e traps. If one of the fundamental traps isn\'t implemented and the proxy is used in a way that expects the fundamental trap to be defined, then an error is thrown. If a derived trap is implemented, then that trap\'s code is called whenever the corresponding behavior happens on the proxy. If the derived trap is undefined, a default implementation using the fundamental traps is used. In other words: fundamental traps are required, derived traps are optional.\x3c/p\x3e\n\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Fundamental_traps"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eFundamental traps\x3c/h4\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eEmulated JavaScript code\x3c/td\x3e \x3ctd class \x3d "header"\x3eHandler method\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.getOwnPropertyDescriptor(proxy, name)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3egetOwnPropertyDescriptor:\x3c/strong\x3e function(name) -\x26gt; PropertyDescriptor | undefined\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eShould return a valid property descriptor object, or \x3ccode\x3eundefined\x3c/code\x3e to indicate that no property with \x3ccode\x3ename\x3c/code\x3e exists in the emulated object.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.getPropertyDescriptor(proxy, name)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3egetPropertyDescriptor:\x3c/strong\x3e function(name) -\x26gt; PropertyDescriptor | undefined\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThis function doesn\'t exist in ECMAScript 5. Like \x3ccode\x3egetOwnPropertyDescriptor\x3c/code\x3e, but should also search the prototype chain.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.getOwnPropertyNames(proxy)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3egetOwnPropertyNames:\x3c/strong\x3e function() -\x26gt; Strings Array\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eReturn an array of all own (non-inherited) property names of the emulated object.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.getPropertyNames(proxy)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3egetPropertyNames:\x3c/strong\x3e function() -\x26gt; Strings Array\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThis function doesn\'t exist in ECMAScript 5. Like \x3ccode\x3egetOwnPropertyNames\x3c/code\x3e, but should also return non-overridden inherited properties.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.defineProperty(proxy,name,pd)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3edefineProperty:\x3c/strong\x3e function(name, propertyDescriptor) -\x26gt; any\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eDefine a new property whose attributes are determined by the given \x3ccode\x3epropertyDescriptor\x3c/code\x3e. The return value of this method is ignored.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3edelete proxy.name\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3edelete:\x3c/strong\x3e function(name) -\x26gt; boolean\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eDelete the named property from the proxy. The boolean return value of this method should indicate whether or not the \x3ccode\x3ename\x3c/code\x3e property was successfully deleted.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3eObject.freeze(proxy)\x3c/code\x3e\x3c/p\x3e \x3cp\x3e\x3ccode\x3eObject.seal(proxy)\x3c/code\x3e\x3c/p\x3e \x3cp\x3e\x3ccode\x3eObject.preventExtensions(proxy)\x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3efix:\x3c/strong\x3e function() -\x26gt; PropertyDescriptor map (indexed on property names) | undefined\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eShould return an object that maps property names to property descriptors. After a call to \x3ccode\x3efix()\x3c/code\x3e, the proxy becomes a regular (non-proxy) object with the properties listed in the return value. The handler is no longer used. Moreover, the respective method (\x3ccode\x3efreeze()\x3c/code\x3e, \x3ccode\x3eseal()\x3c/code\x3e, or \x3ccode\x3epreventExtension()\x3c/code\x3e) is immediately called on the fixed object. Note: the fixed object has the same object identity as the proxy object.\x3c/p\x3e \x3cp\x3eIf \x3ccode\x3efix()\x3c/code\x3e returns \x3ccode\x3eundefined\x3c/code\x3e, the call throws a \x3ccode\x3eTypeError\x3c/code\x3e exception.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Derived_traps"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eDerived traps\x3c/h4\x3e\n\x3cp\x3eDefault implementation refers to the code that is called for that trap when the trap isn\'t explicitly defined. In these functions, \x3ccode\x3ethis\x3c/code\x3e refers to the handler object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eEmulated JavaScript code\x3c/td\x3e \x3ctd class \x3d "header"\x3eHandler method\x3c/td\x3e \x3ctd class \x3d "header"\x3eDefault implementation\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ename in proxy\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3ehas:\x3c/strong\x3e function(name) -\x26gt; boolean\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction(name) { \n  return !!this.getPropertyDescriptor(name);\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.prototype.hasOwnProperty.call(proxy, name)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3ehasOwn: \x3c/strong\x3efunction(name) -\x26gt; boolean\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction(name) { \n  return !!this.getOwnPropertyDescriptor(name); \n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3eproxy.name\x3c/code\x3e (in the context of \x26quot;getting the value\x26quot;)\x3c/p\x3e \x3cp\x3e\x3ccode\x3ereceiver.name\x3c/code\x3e (if \x3ccode\x3ereceiver\x3c/code\x3e inherits from a proxy and does not override \x3ccode\x3ename\x3c/code\x3e)\x3c/p\x3e \x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3eget:\x3c/strong\x3e function(receiver, name) -\x26gt; any\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction(receiver, name) {\n  var desc \x3d this.getPropertyDescriptor(name);\n  if (desc \x3d\x3d\x3d undefined) {\n    return undefined;\n  }\n  if (\'value\' in desc) {\n    return desc.value;\n  } else {\n    if (desc.get \x3d\x3d\x3d undefined) {\n      return undefined;\n    }\n    return desc.get.call(receiver);\n  }\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3ccode\x3ereceiver\x3c/code\x3e is either the proxy or an object that inherits from the proxy.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3eproxy.name \x3d val\x3c/code\x3e (in the context of \x26quot;setting the value\x26quot;)\x3c/p\x3e \x3cp\x3e\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3ereceiver.name \x3d val\x3c/code\x3e\x26nbsp;(if \x3ccode\x3ereceiver\x3c/code\x3e inherits from a proxy and does not override\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3ename\x3c/code\x3e)\x3c/p\x3e \x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3eset:\x3c/strong\x3e function(receiver, name, val) -\x26gt; boolean\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction(receiver, name, val) {\n  var desc \x3d this.getOwnPropertyDescriptor(name);\n  if (desc) {\n    if (\'writable\' in desc) {\n      if (desc.writable) {\n        desc.value \x3d val;\n        this.defineProperty(name, desc);\n        return true;\n      } else {\n        return false;\n      }\n    } else { // accessor\n      if (desc.set) {\n        desc.set.call(receiver, val);\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }\n  desc \x3d this.getPropertyDescriptor(name);\n  if (desc) {\n    if (\'writable\' in desc) {\n      if (desc.writable) {\n        // fall through\n      } else {\n        return false;\n      }\n    } else { // accessor\n      if (desc.set) {\n        desc.set.call(receiver, val);\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }\n  this.defineProperty(name, {\n    value: val, \n    writable: true, \n    enumerable: true, \n    configurable: true});\n  return true;\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3ereceiver\x3c/code\x3e\x26nbsp;is either the proxy or an object that inherits from the proxy.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3efor(prop in proxy){...}\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3eenumerate:\x3c/strong\x3e function() -\x26gt; String Array\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction() {\n  return this.getPropertyNames().filter(\n    function (name) {\n      return this.getPropertyDescriptor(name).enumerable\n    }\n  );\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3eFrom the proxy user point of view, properties appear in the for..in loop in the same order as they are in the returned array.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.keys(proxy)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3ekeys:\x3c/strong\x3e function() -\x26gt; String Array\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction() {\n  return this.getOwnPropertyNames().filter(\n    function (name) {\n      return this.getOwnPropertyDescriptor(name).enumerable\n    }\n  );\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Fundamental_traps"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eFundamental traps\x3c/h4\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eEmulated JavaScript code\x3c/td\x3e \x3ctd class \x3d "header"\x3eHandler method\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.getOwnPropertyDescriptor(proxy, name)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3egetOwnPropertyDescriptor:\x3c/strong\x3e function(name) -\x26gt; PropertyDescriptor | undefined\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eShould return a valid property descriptor object, or \x3ccode\x3eundefined\x3c/code\x3e to indicate that no property with \x3ccode\x3ename\x3c/code\x3e exists in the emulated object.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.getPropertyDescriptor(proxy, name)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3egetPropertyDescriptor:\x3c/strong\x3e function(name) -\x26gt; PropertyDescriptor | undefined\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThis function doesn\'t exist in ECMAScript 5. Like \x3ccode\x3egetOwnPropertyDescriptor\x3c/code\x3e, but should also search the prototype chain.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.getOwnPropertyNames(proxy)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3egetOwnPropertyNames:\x3c/strong\x3e function() -\x26gt; Strings Array\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eReturn an array of all own (non-inherited) property names of the emulated object.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.getPropertyNames(proxy)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3egetPropertyNames:\x3c/strong\x3e function() -\x26gt; Strings Array\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eThis function doesn\'t exist in ECMAScript 5. Like \x3ccode\x3egetOwnPropertyNames\x3c/code\x3e, but should also return non-overridden inherited properties.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.defineProperty(proxy,name,pd)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3edefineProperty:\x3c/strong\x3e function(name, propertyDescriptor) -\x26gt; any\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eDefine a new property whose attributes are determined by the given \x3ccode\x3epropertyDescriptor\x3c/code\x3e. The return value of this method is ignored.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3edelete proxy.name\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3edelete:\x3c/strong\x3e function(name) -\x26gt; boolean\x3c/code\x3e\x3c/td\x3e \x3ctd\x3eDelete the named property from the proxy. The boolean return value of this method should indicate whether or not the \x3ccode\x3ename\x3c/code\x3e property was successfully deleted.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3eObject.freeze(proxy)\x3c/code\x3e\x3c/p\x3e \x3cp\x3e\x3ccode\x3eObject.seal(proxy)\x3c/code\x3e\x3c/p\x3e \x3cp\x3e\x3ccode\x3eObject.preventExtensions(proxy)\x3c/code\x3e\x3c/p\x3e \x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3efix:\x3c/strong\x3e function() -\x26gt; PropertyDescriptor map (indexed on property names) | undefined\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \x3cp\x3eShould return an object that maps property names to property descriptors. After a call to \x3ccode\x3efix()\x3c/code\x3e, the proxy becomes a regular (non-proxy) object with the properties listed in the return value. The handler is no longer used. Moreover, the respective method (\x3ccode\x3efreeze()\x3c/code\x3e, \x3ccode\x3eseal()\x3c/code\x3e, or \x3ccode\x3epreventExtension()\x3c/code\x3e) is immediately called on the fixed object. Note: the fixed object has the same object identity as the proxy object.\x3c/p\x3e \x3cp\x3eIf \x3ccode\x3efix()\x3c/code\x3e returns \x3ccode\x3eundefined\x3c/code\x3e, the call throws a \x3ccode\x3eTypeError\x3c/code\x3e exception.\x3c/p\x3e \x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Derived_traps"\x3e\x3c/span\x3e\x3ch4 class \x3d "editable"\x3eDerived traps\x3c/h4\x3e\n\x3cp\x3eDefault implementation refers to the code that is called for that trap when the trap isn\'t explicitly defined. In these functions, \x3ccode\x3ethis\x3c/code\x3e refers to the handler object.\x3c/p\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd class \x3d "header"\x3eEmulated JavaScript code\x3c/td\x3e \x3ctd class \x3d "header"\x3eHandler method\x3c/td\x3e \x3ctd class \x3d "header"\x3eDefault implementation\x3c/td\x3e \x3ctd class \x3d "header"\x3eDescription\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ename in proxy\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3ehas:\x3c/strong\x3e function(name) -\x26gt; boolean\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction(name) { \n  return !!this.getPropertyDescriptor(name);\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.prototype.hasOwnProperty.call(proxy, name)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3ehasOwn: \x3c/strong\x3efunction(name) -\x26gt; boolean\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction(name) { \n  return !!this.getOwnPropertyDescriptor(name); \n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3eproxy.name\x3c/code\x3e (in the context of \x26quot;getting the value\x26quot;)\x3c/p\x3e \x3cp\x3e\x3ccode\x3ereceiver.name\x3c/code\x3e (if \x3ccode\x3ereceiver\x3c/code\x3e inherits from a proxy and does not override \x3ccode\x3ename\x3c/code\x3e)\x3c/p\x3e \x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3eget:\x3c/strong\x3e function(receiver, name) -\x26gt; any\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction(receiver, name) {\n  var desc \x3d this.getPropertyDescriptor(name);\n  if (desc \x3d\x3d\x3d undefined) {\n    return undefined;\n  }\n  if (\'value\' in desc) {\n    return desc.value;\n  } else {\n    if (desc.get \x3d\x3d\x3d undefined) {\n      return undefined;\n    }\n    return desc.get.call(receiver);\n  }\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3ccode\x3ereceiver\x3c/code\x3e is either the proxy or an object that inherits from the proxy.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e \x3cp\x3e\x3ccode\x3eproxy.name \x3d val\x3c/code\x3e (in the context of \x26quot;setting the value\x26quot;)\x3c/p\x3e \x3cp\x3e\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3ereceiver.name \x3d val\x3c/code\x3e\x26nbsp;(if \x3ccode\x3ereceiver\x3c/code\x3e inherits from a proxy and does not override\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3ename\x3c/code\x3e)\x3c/p\x3e \x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3eset:\x3c/strong\x3e function(receiver, name, val) -\x26gt; boolean\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction(receiver, name, val) {\n  var desc \x3d this.getOwnPropertyDescriptor(name);\n  if (desc) {\n    if (\'writable\' in desc) {\n      if (desc.writable) {\n        desc.value \x3d val;\n        this.defineProperty(name, desc);\n        return true;\n      } else {\n        return false;\n      }\n    } else { // accessor\n      if (desc.set) {\n        desc.set.call(receiver, val);\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }\n  desc \x3d this.getPropertyDescriptor(name);\n  if (desc) {\n    if (\'writable\' in desc) {\n      if (desc.writable) {\n        // fall through\n      } else {\n        return false;\n      }\n    } else { // accessor\n      if (desc.set) {\n        desc.set.call(receiver, val);\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }\n  this.defineProperty(name, {\n    value: val, \n    writable: true, \n    enumerable: true, \n    configurable: true});\n  return true;\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3ccode style \x3d "font: normal normal normal 100%/normal \'Courier New\', \'Andale Mono\', monospace; color: inherit; font-weight: inherit; "\x3ereceiver\x3c/code\x3e\x26nbsp;is either the proxy or an object that inherits from the proxy.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3efor(prop in proxy){...}\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3eenumerate:\x3c/strong\x3e function() -\x26gt; String Array\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction() {\n  return this.getPropertyNames().filter(\n    function (name) {\n      return this.getPropertyDescriptor(name).enumerable\n    }\n  );\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3eFrom the proxy user point of view, properties appear in the for..in loop in the same order as they are in the returned array.\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eObject.keys(proxy)\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e\x3ccode\x3e\x3cstrong\x3ekeys:\x3c/strong\x3e function() -\x26gt; String Array\x3c/code\x3e\x3c/td\x3e \x3ctd\x3e \r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction() {\n  return this.getOwnPropertyNames().filter(\n    function (name) {\n      return this.getOwnPropertyDescriptor(name).enumerable\n    }\n  );\n}\x3c/pre\x3e\r\n         \x3c/td\x3e \x3ctd\x3e\x26nbsp;\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Invariants"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eInvariants\x3c/h2\x3e\n\x3cp\x3eEven though proxies provide a lot of power to users, some operations that are not trapped in order to keep the language consistency:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3eThe triple equal (\x3ccode\x3e\x3d\x3d\x3d\x3c/code\x3e) operator isn\'t trapped. \x3ccode\x3ep1 \x3d\x3d\x3d p2\x3c/code\x3e if and only if \x3ccode\x3ep1\x3c/code\x3e and \x3ccode\x3ep2\x3c/code\x3e refer to the same proxy. Fixing a proxy does not alter its object identity (the object \x26ldquo;generated\x26rdquo; by the handler during fixing does not have its own object identity, it retains the object identity of the proxy, upholding the illusion that the proxy \x26ldquo;becomes\x26rdquo; the object).\x3c/li\x3e \x3cli\x3e\x3ccode\x3eObject.getPrototypeOf(proxy)\x3c/code\x3e returns the prototype \x3ccode\x3eproxy\x3c/code\x3e has been initialized with for an object proxy and \x3ccode\x3eFunction.prototype\x3c/code\x3e for a function proxy.\x3c/li\x3e \x3cli\x3etypeof \x3cul\x3e \x3cli\x3e\x3ccode\x3etypeof anObjectProxy \x3d\x3d\x3d \x26ldquo;object\x26rdquo;\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3etypeof aFunctionProxy \x3d\x3d\x3d \x26ldquo;function\x26rdquo;\x3c/code\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/li\x3e \x3cli\x3einstanceof \x3cul\x3e \x3cli\x3e\x3ccode\x3eanObjectProxy instanceof C\x3c/code\x3e if and only if the prototype \x3ccode\x3eanObjectProxy\x3c/code\x3e has been initialized with equals or inherits from \x3ccode\x3eC.prototype\x3c/code\x3e\x3c/li\x3e \x3cli\x3e\x3ccode\x3eaFunctionProxy instanceof Function \x3d\x3d\x3d true\x3c/code\x3e\x3c/li\x3e \x3c/ul\x3e \x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
"\x3cdiv id \x3d \"section_8\"\x3e\x3cspan id \x3d \"Common_mistakes_and_misunderstanding\"\x3e\x3c/span\x3e\x3ch2 class \x3d \"editable\"\x3eCommon mistakes and misunderstanding\x3c/h2\x3e\n\x3cp\x3eWhen starting using proxies, there are often a few beginners mistakes and misunderstandings:\x3c/p\x3e\n\x3cul\x3e \x3cli\x3e\x3cstrong\x3eNot implementing all traps.\x3c/strong\x3e Proxies are, by default, \x26quot;semanticless\x26quot; objects. If a trap isn't implemented, then if it's a derived trap, the default implementation is used. However if a fundamental trap is unimplemented, then a call to this trap will throw a TypeError. To make sure no error is thrown when your object is used, you have to implement \x3cu\x3e\x3cstrong\x3eat least all fundamental traps\x3c/strong\x3e\x3c/u\x3e.\x3c/li\x3e \x3cli\x3e\x3cstrong\x3eUnwanted recursion.\x3c/strong\x3e Be careful of how you use the \x3ccode\x3ereceiver\x3c/code\x3e argument in 'get' and 'set' traps. \r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar p \x3d Proxy.create({get: function(receiver, name) {\n  print(receiver); // looks for receiver's toString method. receiver turns out to be the proxy, so calling print results in calling the get trap.\n  return \x26quot;something\x26quot;;\n} });\n\nvar q \x3d p.azerty; // infinite loop\x3c/pre\x3e\r\n         \x3c/li\x3e \x3cli\x3e\x3cstrong\x3eThe \x3ccode\x3ereceiver\x3c/code\x3e argument in 'get' and 'set' traps may not be the proxy itself\x3c/strong\x3e: \r\n          \x3cpre name \x3d \"code\" class \x3d \"js\"\x3evar proxy;\n\nvar handler \x3d {\n    has: function (name) {\n        return name \x3d\x3d 'foo';\n    },\n    get: function (rcvr, name) {\n        if (name !\x3d 'foo')\n            return undefined;\n        print(proxy !\x3d\x3d rcvr);\n        return \x26quot;bye\x26quot;;\n    },\n};\n\nproxy \x3d Proxy.create(handler);\n\nvar c \x3d Object.create(proxy);\n\nprint(c.foo); // prints: 'true' (from \x26quot;proxy !\x3d\x3d rcvr\x26quot;) and 'bye' (from \x26quot;c.foo\x26quot;).\n// In this example, the get trap rcvr argument is the c object while proxy is its prototype\x3c/pre\x3e\r\n         \x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e",
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Examples"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eExamples\x3c/h2\x3e\n\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Very_simple_example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eVery simple example\x3c/h3\x3e\n\x3cp\x3eA trap is called almost each time something happens to your proxy (that is used like an object). Here is an example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar incompleteHandler \x3d {get:function(myProxy, name){\n                               alert(\'Property \' + name + \' accessed.\'); \n                               return 1;\n                             }\n                        };\nvar p \x3d Proxy.create(incompleteHandler);\nvar q \x3d p.blabla; // alerts \'Property blabla accessed\' and 1 is assigned to q\np.azerty \x3d \x26quot;Trying to set a property\x26quot;; // throws an error since neither the set trap or the fundamental trap used in the set trap are implemented\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "No-op_forwarding_proxy"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eNo-op forwarding proxy\x3c/h3\x3e\n\x3cp\x3eIn this example, we are using a native JavaScript object to which our proxy will forward all operations that are applied to it.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction handlerMaker(obj) {\n  return {\n    // Fundamental traps\n    getOwnPropertyDescriptor: function(name) {\n      var desc \x3d Object.getOwnPropertyDescriptor(obj, name);\n      // a trapping proxy\'s properties must always be configurable\n      if (desc !\x3d\x3d undefined) { desc.configurable \x3d true; }\n      return desc;\n    },\n    getPropertyDescriptor:  function(name) {\n      var desc \x3d Object.getPropertyDescriptor(obj, name); // not in ES5\n      // a trapping proxy\'s properties must always be configurable\n      if (desc !\x3d\x3d undefined) { desc.configurable \x3d true; }\n      return desc;\n    },\n    getOwnPropertyNames: function() {\n      return Object.getOwnPropertyNames(obj);\n    },\n    getPropertyNames: function() {\n      return Object.getPropertyNames(obj);                // not in ES5\n    },\n    defineProperty: function(name, desc) {\n      Object.defineProperty(obj, name, desc);\n    },\n    delete:       function(name) { return delete obj[name]; },   \n    fix:          function() {\n      if (Object.isFrozen(obj)) {\n        return Object.getOwnPropertyNames(obj).map(function(name) {\n          return Object.getOwnPropertyDescriptor(obj, name);\n        });\n      }\n      // As long as obj is not frozen, the proxy won\'t allow itself to be fixed\n      return undefined; // will cause a TypeError to be thrown\n    },\n   \n    // derived traps\n    has:          function(name) { return name in obj; },\n    hasOwn:       function(name) { return Object.prototype.hasOwnProperty.call(obj, name); },\n    get:          function(receiver, name) { return obj[name]; },\n    set:          function(receiver, name, val) { obj[name] \x3d val; return true; }, // bad behavior when set fails in non-strict mode\n    enumerate:    function() {\n      var result \x3d [];\n      for (name in obj) { result.push(name); };\n      return result;\n    },\n    keys: function() { return Object.keys(obj) }\n  };\n}\n\n// ...\n\nvar o \x3d Object.create({});\nvar proxy \x3d Proxy.create(handlerMaker(o));\n\nproxy.blabla \x3d 12; // Thanks to the forwarding, o now has a \'blabla\' property which value is 12\no.blabla++; // just incrementing o.blabla\n\nalert(proxy.blabla); // alerts 13: the getting operation is forwarded to o which returns 13.\x3c/pre\x3e\r\n        \n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "Very_simple_example"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eVery simple example\x3c/h3\x3e\n\x3cp\x3eA trap is called almost each time something happens to your proxy (that is used like an object). Here is an example:\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3evar incompleteHandler \x3d {get:function(myProxy, name){\n                               alert(\'Property \' + name + \' accessed.\'); \n                               return 1;\n                             }\n                        };\nvar p \x3d Proxy.create(incompleteHandler);\nvar q \x3d p.blabla; // alerts \'Property blabla accessed\' and 1 is assigned to q\np.azerty \x3d \x26quot;Trying to set a property\x26quot;; // throws an error since neither the set trap or the fundamental trap used in the set trap are implemented\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "No-op_forwarding_proxy"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eNo-op forwarding proxy\x3c/h3\x3e\n\x3cp\x3eIn this example, we are using a native JavaScript object to which our proxy will forward all operations that are applied to it.\x3c/p\x3e\n\r\n          \x3cpre name \x3d "code" class \x3d "js"\x3efunction handlerMaker(obj) {\n  return {\n    // Fundamental traps\n    getOwnPropertyDescriptor: function(name) {\n      var desc \x3d Object.getOwnPropertyDescriptor(obj, name);\n      // a trapping proxy\'s properties must always be configurable\n      if (desc !\x3d\x3d undefined) { desc.configurable \x3d true; }\n      return desc;\n    },\n    getPropertyDescriptor:  function(name) {\n      var desc \x3d Object.getPropertyDescriptor(obj, name); // not in ES5\n      // a trapping proxy\'s properties must always be configurable\n      if (desc !\x3d\x3d undefined) { desc.configurable \x3d true; }\n      return desc;\n    },\n    getOwnPropertyNames: function() {\n      return Object.getOwnPropertyNames(obj);\n    },\n    getPropertyNames: function() {\n      return Object.getPropertyNames(obj);                // not in ES5\n    },\n    defineProperty: function(name, desc) {\n      Object.defineProperty(obj, name, desc);\n    },\n    delete:       function(name) { return delete obj[name]; },   \n    fix:          function() {\n      if (Object.isFrozen(obj)) {\n        return Object.getOwnPropertyNames(obj).map(function(name) {\n          return Object.getOwnPropertyDescriptor(obj, name);\n        });\n      }\n      // As long as obj is not frozen, the proxy won\'t allow itself to be fixed\n      return undefined; // will cause a TypeError to be thrown\n    },\n   \n    // derived traps\n    has:          function(name) { return name in obj; },\n    hasOwn:       function(name) { return Object.prototype.hasOwnProperty.call(obj, name); },\n    get:          function(receiver, name) { return obj[name]; },\n    set:          function(receiver, name, val) { obj[name] \x3d val; return true; }, // bad behavior when set fails in non-strict mode\n    enumerate:    function() {\n      var result \x3d [];\n      for (name in obj) { result.push(name); };\n      return result;\n    },\n    keys: function() { return Object.keys(obj) }\n  };\n}\n\n// ...\n\nvar o \x3d Object.create({});\nvar proxy \x3d Proxy.create(handlerMaker(o));\n\nproxy.blabla \x3d 12; // Thanks to the forwarding, o now has a \'blabla\' property which value is 12\no.blabla++; // just incrementing o.blabla\n\nalert(proxy.blabla); // alerts 13: the getting operation is forwarded to o which returns 13.\x3c/pre\x3e\r\n        \n\x3c/div\x3e',
'\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://jsconf.eu/2010/speaker/be_proxy_objects.html" title \x3d "http://jsconf.eu/2010/speaker/be_proxy_objects.html" target \x3d "_blank"\x3e\x26quot;Proxies are awesome\x26quot; Brendan Eich presentation at JSConf\x3c/a\x3e (\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://www.slideshare.net/BrendanEich/metaprog-5303821" title \x3d "http://www.slideshare.net/BrendanEich/metaprog-5303821" target \x3d "_blank"\x3eslides\x3c/a\x3e)\x3c/li\x3e \x3cli\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://wiki.ecmascript.org/doku.php?id\x3dharmony:proxies" title \x3d "http://wiki.ecmascript.org/doku.php?id\x3dharmony:proxies" target \x3d "_blank"\x3eECMAScript Harmony Proxy proposal page\x3c/a\x3e and \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://wiki.ecmascript.org/doku.php?id\x3dharmony:proxies_semantics" title \x3d "http://wiki.ecmascript.org/doku.php?id\x3dharmony:proxies_semantics" target \x3d "_blank"\x3eECMAScript Harmony proxy semantics page\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d "external" rel \x3d "external" href \x3d "http://soft.vub.ac.be/~tvcutsem/proxies/" title \x3d "http://soft.vub.ac.be/~tvcutsem/proxies/" target \x3d "_blank"\x3eTutorial on proxies\x3c/a\x3e\x3c/li\x3e\n\x3c/ul\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "Licensing_note"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eLicensing note\x3c/h2\x3e\n\x3cp\x3eSome content (text, examples) in this page has been copied or adapted from the \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://wiki.ecmascript.org/doku.php" title \x3d "http://wiki.ecmascript.org/doku.php" target \x3d "_blank"\x3eECMAScript wiki\x3c/a\x3e which content is licensed \x3ca class \x3d "external" rel \x3d "external" href \x3d "http://creativecommons.org/licenses/by-nc-sa/2.0/" title \x3d "http://creativecommons.org/licenses/by-nc-sa/2.0/" target \x3d "_blank"\x3eCC 2.0 BY-NC-SA\x3c/a\x3e\x3c/p\x3e\x3c/div\x3e'],
"sectionNames":["Introduction","Terminology","Proxy API","Handler API","Fundamental traps","Derived traps","Invariants","Common mistakes and misunderstanding","Examples","Very simple example","No-op forwarding proxy","See also","Licensing note"]},{"url":"https://developer.mozilla.org/en/JavaScript_typed_arrays/DataView","title":"DataView","_id":"4eea85f4a4c86c4dba000157","sectionHTMLs":['\x3cdiv id \x3d "section_1"\x3e\x3cspan id \x3d "Constructors"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructors\x3c/h2\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eDataView DataView(\x3ca title \x3d "en/JavaScript_typed_arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e buffer, optional unsigned long byteOffset, optional unsigned long byteLength);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_2"\x3e\x3cspan id \x3d "Method_overview"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethod overview\x3c/h2\x3e\n\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Read"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eRead\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ebyte \x3ca href \x3d "#getInt8"\x3egetInt8\x3c/a\x3e(unsigned long byteOffset);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eunsigned byte \x3ca href \x3d "#getUint8"\x3egetUint8\x3c/a\x3e(unsigned long byteOffset);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eshort \x3ca href \x3d "#getInt8"\x3egetInt16\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eunsigned short \x3ca href \x3d "#getUint16"\x3egetUint16\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elong \x3ca href \x3d "#getInt32"\x3egetInt32\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eunsigned long \x3ca href \x3d "#getUint32"\x3egetUint32\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3efloat \x3ca href \x3d "#getFloat32"\x3egetFloat32\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3edouble \x3ca href \x3d "#getFloat64"\x3egetFloat64\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Write"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eWrite\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setInt8"\x3esetInt8\x3c/a\x3e(unsigned long byteOffset, byte value);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setUint8"\x3esetUint8\x3c/a\x3e(unsigned long byteOffset, unsigned byte value);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setInt16"\x3esetInt16\x3c/a\x3e(unsigned long byteOffset, short value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setUint16"\x3esetUint16\x3c/a\x3e(unsigned long byteOffset, unsigned short value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setInt32"\x3esetInt32\x3c/a\x3e(unsigned long byteOffset, long value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setUint32"\x3esetUint32\x3c/a\x3e(unsigned long byteOffset, unsigned long value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setFloat32"\x3esetFloat32\x3c/a\x3e(unsigned long byteOffset, float value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setFloat64"\x3esetFloat64\x3c/a\x3e(unsigned long byteOffset, double value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_3"\x3e\x3cspan id \x3d "Read"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eRead\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3ebyte \x3ca href \x3d "#getInt8"\x3egetInt8\x3c/a\x3e(unsigned long byteOffset);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eunsigned byte \x3ca href \x3d "#getUint8"\x3egetUint8\x3c/a\x3e(unsigned long byteOffset);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eshort \x3ca href \x3d "#getInt8"\x3egetInt16\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eunsigned short \x3ca href \x3d "#getUint16"\x3egetUint16\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3elong \x3ca href \x3d "#getInt32"\x3egetInt32\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3eunsigned long \x3ca href \x3d "#getUint32"\x3egetUint32\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3efloat \x3ca href \x3d "#getFloat32"\x3egetFloat32\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3edouble \x3ca href \x3d "#getFloat64"\x3egetFloat64\x3c/a\x3e(unsigned long byteOffset, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_4"\x3e\x3cspan id \x3d "Write"\x3e\x3c/span\x3e\x3ch3 class \x3d "editable"\x3eWrite\x3c/h3\x3e\n\x3ctable class \x3d "standard-table"\x3e \x3ctbody\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setInt8"\x3esetInt8\x3c/a\x3e(unsigned long byteOffset, byte value);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setUint8"\x3esetUint8\x3c/a\x3e(unsigned long byteOffset, unsigned byte value);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setInt16"\x3esetInt16\x3c/a\x3e(unsigned long byteOffset, short value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setUint16"\x3esetUint16\x3c/a\x3e(unsigned long byteOffset, unsigned short value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setInt32"\x3esetInt32\x3c/a\x3e(unsigned long byteOffset, long value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setUint32"\x3esetUint32\x3c/a\x3e(unsigned long byteOffset, unsigned long value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setFloat32"\x3esetFloat32\x3c/a\x3e(unsigned long byteOffset, float value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3ctr\x3e \x3ctd\x3e\x3ccode\x3evoid \x3ca href \x3d "#setFloat64"\x3esetFloat64\x3c/a\x3e(unsigned long byteOffset, double value, optional boolean littleEndian);\x3c/code\x3e\x3c/td\x3e \x3c/tr\x3e \x3c/tbody\x3e\n\x3c/table\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_5"\x3e\x3cspan id \x3d "Constructor"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eConstructor\x3c/h2\x3e\n\x3cp\x3eReturns a new \x3ccode\x3eDataView\x3c/code\x3e object using the passed \x3ca title \x3d "en/JavaScript_typed_arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3eArrayBuffer\x3c/a\x3e for its storage.\x3c/p\x3e\n\x3cpre\x3e\nDataView DataView(\n\x26nbsp; ArrayBuffer buffer,\n\x26nbsp; optional unsigned long byteOffset,\n\x26nbsp; optional unsigned long byteLength\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript_typed_arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eDataView\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the view of the buffer will start with the first byte.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteLength\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the view will match the buffer\'s length.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eDataView\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3ebyteLength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_6"\x3e\x3cspan id \x3d "Parameters"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3ebuffer\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eAn existing \x3ca title \x3d "en/JavaScript_typed_arrays/ArrayBuffer" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer"\x3e\x3ccode\x3eArrayBuffer\x3c/code\x3e\x3c/a\x3e to use as the storage for the new \x3ccode\x3eDataView\x3c/code\x3e object.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteOffset\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the view of the buffer will start with the first byte.\x3c/dd\x3e \x3cdt\x3e\x3ccode\x3ebyteLength\x3c/code\x3e \n\x3cspan style \x3d "border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;" title \x3d ""\x3eOptional\x3c/span\x3e\n\x3c/dt\x3e \x3cdd\x3eThe number of elements in the byte array. If unspecified, length of the view will match the buffer\'s length.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_7"\x3e\x3cspan id \x3d "Return_value"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eReturn value\x3c/h6\x3e\n\x3cp\x3eA new \x3ccode\x3eDataView\x3c/code\x3e object representing the specified data buffer.\x3c/p\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_8"\x3e\x3cspan id \x3d "Exceptions_thrown"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe \x3ccode\x3ebyteOffset\x3c/code\x3e and \x3ccode\x3ebyteLength\x3c/code\x3e result in the specified view extending past the end of the buffer.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_9"\x3e\x3cspan id \x3d "Methods"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eMethods\x3c/h2\x3e\n\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "getInt8()"\x3e\x3c/span\x3e\x3ch3 id \x3d "getInt8" class \x3d "editable"\x3egetInt8()\x3c/h3\x3e\n\x3cp\x3eGets a signed 8-bit integer at the specified byte offset from the start of the view.\x3c/p\x3e\n\x3cpre\x3e\nbyte getInt8(\n  unsigned long byteOffset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eoffset\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in byte, from the start of the view where to read the data.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Exceptions_thrown_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe \x3ccode\x3ebyteOffset\x3c/code\x3e is set such as it would read beyond the end of the view\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "getUint8()"\x3e\x3c/span\x3e\x3ch3 id \x3d "getUint8" class \x3d "editable"\x3egetUint8()\x3c/h3\x3e\n\x3cp\x3eGets an unsigned 8-bit integer at the specified byte offset from the start of the view.\x3c/p\x3e\n\x3cpre\x3e\nbyte getUint8(\n  unsigned long byteOffset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eoffset\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in byte, from the start of the view where to read the data.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe \x3ccode\x3ebyteOffset\x3c/code\x3e is set such as it would read beyond the end of the view\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_10"\x3e\x3cspan id \x3d "getInt8()"\x3e\x3c/span\x3e\x3ch3 id \x3d "getInt8" class \x3d "editable"\x3egetInt8()\x3c/h3\x3e\n\x3cp\x3eGets a signed 8-bit integer at the specified byte offset from the start of the view.\x3c/p\x3e\n\x3cpre\x3e\nbyte getInt8(\n  unsigned long byteOffset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eoffset\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in byte, from the start of the view where to read the data.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Exceptions_thrown_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe \x3ccode\x3ebyteOffset\x3c/code\x3e is set such as it would read beyond the end of the view\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_11"\x3e\x3cspan id \x3d "Parameters_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eoffset\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in byte, from the start of the view where to read the data.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e','\x3cdiv id \x3d "section_12"\x3e\x3cspan id \x3d "Exceptions_thrown_2"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eExceptions thrown\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe \x3ccode\x3ebyteOffset\x3c/code\x3e is set such as it would read beyond the end of the view\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_13"\x3e\x3cspan id \x3d "getUint8()"\x3e\x3c/span\x3e\x3ch3 id \x3d "getUint8" class \x3d "editable"\x3egetUint8()\x3c/h3\x3e\n\x3cp\x3eGets an unsigned 8-bit integer at the specified byte offset from the start of the view.\x3c/p\x3e\n\x3cpre\x3e\nbyte getUint8(\n  unsigned long byteOffset\n);\n\x3c/pre\x3e\n\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eoffset\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in byte, from the start of the view where to read the data.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe \x3ccode\x3ebyteOffset\x3c/code\x3e is set such as it would read beyond the end of the view\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e\x3c/div\x3e',
'\x3cdiv id \x3d "section_14"\x3e\x3cspan id \x3d "Parameters_3"\x3e\x3c/span\x3e\x3ch6 class \x3d "editable"\x3eParameters\x3c/h6\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eoffset\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe offset, in byte, from the start of the view where to read the data.\x3c/dd\x3e\n\x3c/dl\x3e\n\x3cdl\x3e \x3cdt\x3e\x3ccode\x3eINDEX_SIZE_ERR\x3c/code\x3e\x3c/dt\x3e \x3cdd\x3eThe \x3ccode\x3ebyteOffset\x3c/code\x3e is set such as it would read beyond the end of the view\x3c/dd\x3e\n\x3c/dl\x3e\n\x3c/div\x3e',
'\x3cdiv id \x3d "section_15"\x3e\x3cspan id \x3d "See_also"\x3e\x3c/span\x3e\x3ch2 class \x3d "editable"\x3eSee also\x3c/h2\x3e\n\x3cul\x3e \x3cli\x3e\x3ca class \x3d " external" rel \x3d "external" href \x3d "http://www.khronos.org/registry/typedarray/specs/latest/#8" title \x3d "http://www.khronos.org/registry/typedarray/specs/latest/#8" target \x3d "_blank"\x3eDataView Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d " external" rel \x3d "external" href \x3d "http://www.khronos.org/registry/typedarray/specs/latest/" title \x3d "http://www.khronos.org/registry/typedarray/specs/latest/" target \x3d "_blank"\x3eTyped Array Specification\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca title \x3d "en/JavaScript typed arrays" rel \x3d "internal" href \x3d "https://developer.mozilla.org/en/JavaScript_typed_arrays"\x3eJavaScript typed arrays\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class \x3d " link-https" rel \x3d "external" href \x3d "https://github.com/vjeux/jsDataView" title \x3d "https://github.com/vjeux/jsDataView" target \x3d "_blank"\x3ejDataView\x3c/a\x3e: a Javascript library that provides the DataView API to all browsers.\x3c/li\x3e\n\x3c/ul\x3e\x3c/div\x3e'],
"sectionNames":["Constructors","Method overview","Read","Write","Constructor","","","","Methods","getInt8()","","","getUint8()","","See also"]}]})})},"dojox/grid/_Layout":function(){define("dojox/grid/_Layout",["dojo/_base/kernel","../main","dojo/_base/declare","dojo/_base/array","dojo/_base/lang","dojo/dom-geometry","./cells","./_RowSelector"],function(dojo,dojox,declare,array,lang,domGeometry){return declare("dojox.grid._Layout",null,{constructor:function(inGrid){this.grid=inGrid},cells:[],structure:null,
defaultWidth:"6em",moveColumn:function(sourceViewIndex,destViewIndex,cellIndex,targetIndex,before){var source_cells=this.structure[sourceViewIndex].cells[0];var dest_cells=this.structure[destViewIndex].cells[0];var cell=null;var cell_ri=0;var target_ri=0;for(var i=0,c;c=source_cells[i];i++)if(c.index==cellIndex){cell_ri=i;break}cell=source_cells.splice(cell_ri,1)[0];cell.view=this.grid.views.views[destViewIndex];for(i=0,c=null;c=dest_cells[i];i++)if(c.index==targetIndex){target_ri=i;break}if(!before)target_ri+=
1;dest_cells.splice(target_ri,0,cell);var sortedCell=this.grid.getCell(this.grid.getSortIndex());if(sortedCell)sortedCell._currentlySorted=this.grid.getSortAsc();this.cells=[];cellIndex=0;var v;for(i=0;v=this.structure[i];i++)for(var j=0,cs;cs=v.cells[j];j++)for(var k=0;c=cs[k];k++){c.index=cellIndex;this.cells.push(c);if("_currentlySorted"in c){var si=cellIndex+1;si*=c._currentlySorted?1:-1;this.grid.sortInfo=si;delete c._currentlySorted}cellIndex++}array.forEach(this.cells,function(c){var marks=
c.markup[2].split(" ");var oldIdx=parseInt(marks[1].substring(5));if(oldIdx!=c.index){marks[1]='idx\x3d"'+c.index+'"';c.markup[2]=marks.join(" ")}});this.grid.setupHeaderMenu()},setColumnVisibility:function(columnIndex,visible){var cell=this.cells[columnIndex];if(cell.hidden==visible){cell.hidden=!visible;var v=cell.view,w=v.viewWidth;if(w&&w!="auto")v._togglingColumn=domGeometry.getMarginBox(cell.getHeaderNode()).w||0;v.update();return true}else return false},addCellDef:function(inRowIndex,inCellIndex,
inDef){var self=this;var getCellWidth=function(inDef){var w=0;if(inDef.colSpan>1)w=0;else{w=inDef.width||self._defaultCellProps.width||self.defaultWidth;if(!isNaN(w))w=w+"em"}return w};var props={grid:this.grid,subrow:inRowIndex,layoutIndex:inCellIndex,index:this.cells.length};if(inDef&&inDef instanceof dojox.grid.cells._Base){var new_cell=lang.clone(inDef);props.unitWidth=getCellWidth(new_cell._props);new_cell=lang.mixin(new_cell,this._defaultCellProps,inDef._props,props);return new_cell}var cell_type=
inDef.type||inDef.cellType||this._defaultCellProps.type||this._defaultCellProps.cellType||dojox.grid.cells.Cell;if(lang.isString(cell_type))cell_type=lang.getObject(cell_type);props.unitWidth=getCellWidth(inDef);return new cell_type(lang.mixin({},this._defaultCellProps,inDef,props))},addRowDef:function(inRowIndex,inDef){var result=[];var relSum=0,pctSum=0,doRel=true;for(var i=0,def,cell;def=inDef[i];i++){cell=this.addCellDef(inRowIndex,i,def);result.push(cell);this.cells.push(cell);if(doRel&&cell.relWidth)relSum+=
cell.relWidth;else if(cell.width){var w=cell.width;if(typeof w=="string"&&w.slice(-1)=="%")pctSum+=window.parseInt(w,10);else if(w=="auto")doRel=false}}if(relSum&&doRel)array.forEach(result,function(cell){if(cell.relWidth)cell.width=cell.unitWidth=cell.relWidth/relSum*(100-pctSum)+"%"});return result},addRowsDef:function(inDef){var result=[];if(lang.isArray(inDef))if(lang.isArray(inDef[0]))for(var i=0,row;inDef&&(row=inDef[i]);i++)result.push(this.addRowDef(i,row));else result.push(this.addRowDef(0,
inDef));return result},addViewDef:function(inDef){this._defaultCellProps=inDef.defaultCell||{};if(inDef.width&&inDef.width=="auto")delete inDef.width;return lang.mixin({},inDef,{cells:this.addRowsDef(inDef.rows||inDef.cells)})},setStructure:function(inStructure){this.fieldIndex=0;this.cells=[];var s=this.structure=[];if(this.grid.rowSelector){var sel={type:dojox._scopeName+".grid._RowSelector"};if(lang.isString(this.grid.rowSelector)){var width=this.grid.rowSelector;if(width=="false")sel=null;else if(width!=
"true")sel["width"]=width}else if(!this.grid.rowSelector)sel=null;if(sel)s.push(this.addViewDef(sel))}var isCell=function(def){return"name"in def||"field"in def||"get"in def};var isRowDef=function(def){if(lang.isArray(def))if(lang.isArray(def[0])||isCell(def[0]))return true;return false};var isView=function(def){return def!==null&&lang.isObject(def)&&("cells"in def||"rows"in def||"type"in def&&!isCell(def))};if(lang.isArray(inStructure)){var hasViews=false;for(var i=0,st;st=inStructure[i];i++)if(isView(st)){hasViews=
true;break}if(!hasViews)s.push(this.addViewDef({cells:inStructure}));else for(i=0;st=inStructure[i];i++)if(isRowDef(st))s.push(this.addViewDef({cells:st}));else if(isView(st))s.push(this.addViewDef(st))}else if(isView(inStructure))s.push(this.addViewDef(inStructure));this.cellCount=this.cells.length;this.grid.setupHeaderMenu()}})})},"dojo/_base/fx":function(){define(["./kernel","./config","./lang","../Evented","./Color","../aspect","../sniff","../dom","../dom-style"],function(dojo,config,lang,Evented,
Color,aspect,has,dom,style){var _mixin=lang.mixin;var basefx={};var _Line=basefx._Line=function(start,end){this.start=start;this.end=end};_Line.prototype.getValue=function(n){return(this.end-this.start)*n+this.start};var Animation=basefx.Animation=function(args){_mixin(this,args);if(lang.isArray(this.curve))this.curve=new _Line(this.curve[0],this.curve[1])};Animation.prototype=new Evented;lang.extend(Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _p=
this._percent,_e=this.easing;return _e?_e(_p):_p},_fire:function(evt,args){var a=args||[];if(this[evt])if(config.debugAtAllCosts)this[evt].apply(this,a);else try{this[evt].apply(this,a)}catch(e){console.error("exception in animation handler for:",evt);console.error(e)}return this},play:function(delay,gotoStart){var _t=this;if(_t._delayTimer)_t._clearTimer();if(gotoStart){_t._stopTimer();_t._active=_t._paused=false;_t._percent=0}else if(_t._active&&!_t._paused)return _t;_t._fire("beforeBegin",[_t.node]);
var de=delay||_t.delay,_p=lang.hitch(_t,"_play",gotoStart);if(de>0){_t._delayTimer=setTimeout(_p,de);return _t}_p();return _t},_play:function(gotoStart){var _t=this;if(_t._delayTimer)_t._clearTimer();_t._startTime=(new Date).valueOf();if(_t._paused)_t._startTime-=_t.duration*_t._percent;_t._active=true;_t._paused=false;var value=_t.curve.getValue(_t._getStep());if(!_t._percent){if(!_t._startRepeatCount)_t._startRepeatCount=_t.repeat;_t._fire("onBegin",[value])}_t._fire("onPlay",[value]);_t._cycle();
return _t},pause:function(){var _t=this;if(_t._delayTimer)_t._clearTimer();_t._stopTimer();if(!_t._active)return _t;_t._paused=true;_t._fire("onPause",[_t.curve.getValue(_t._getStep())]);return _t},gotoPercent:function(percent,andPlay){var _t=this;_t._stopTimer();_t._active=_t._paused=true;_t._percent=percent;if(andPlay)_t.play();return _t},stop:function(gotoEnd){var _t=this;if(_t._delayTimer)_t._clearTimer();if(!_t._timer)return _t;_t._stopTimer();if(gotoEnd)_t._percent=1;_t._fire("onStop",[_t.curve.getValue(_t._getStep())]);
_t._active=_t._paused=false;return _t},status:function(){if(this._active)return this._paused?"paused":"playing";return"stopped"},_cycle:function(){var _t=this;if(_t._active){var curr=(new Date).valueOf();var step=_t.duration===0?1:(curr-_t._startTime)/_t.duration;if(step>=1)step=1;_t._percent=step;if(_t.easing)step=_t.easing(step);_t._fire("onAnimate",[_t.curve.getValue(step)]);if(_t._percent<1)_t._startTimer();else{_t._active=false;if(_t.repeat>0){_t.repeat--;_t.play(null,true)}else if(_t.repeat==
-1)_t.play(null,true);else if(_t._startRepeatCount){_t.repeat=_t._startRepeatCount;_t._startRepeatCount=0}_t._percent=0;_t._fire("onEnd",[_t.node]);!_t.repeat&&_t._stopTimer()}}return _t},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer}});var ctr=0,timer=null,runner={run:function(){}};lang.extend(Animation,{_startTimer:function(){if(!this._timer){this._timer=aspect.after(runner,"run",lang.hitch(this,"_cycle"),true);ctr++}if(!timer)timer=setInterval(lang.hitch(runner,
"run"),this.rate)},_stopTimer:function(){if(this._timer){this._timer.remove();this._timer=null;ctr--}if(ctr<=0){clearInterval(timer);timer=null;ctr=0}}});var _makeFadeable=has("ie")?function(node){var ns=node.style;if(!ns.width.length&&style.get(node,"width")=="auto")ns.width="auto"}:function(){};basefx._fade=function(args){args.node=dom.byId(args.node);var fArgs=_mixin({properties:{}},args),props=fArgs.properties.opacity={};props.start=!("start"in fArgs)?function(){return+style.get(fArgs.node,"opacity")||
0}:fArgs.start;props.end=fArgs.end;var anim=basefx.animateProperty(fArgs);aspect.after(anim,"beforeBegin",lang.partial(_makeFadeable,fArgs.node),true);return anim};basefx.fadeIn=function(args){return basefx._fade(_mixin({end:1},args))};basefx.fadeOut=function(args){return basefx._fade(_mixin({end:0},args))};basefx._defaultEasing=function(n){return 0.5+Math.sin((n+1.5)*Math.PI)/2};var PropLine=function(properties){this._properties=properties;for(var p in properties){var prop=properties[p];if(prop.start instanceof
Color)prop.tempColor=new Color}};PropLine.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],start=prop.start;if(start instanceof Color)ret[p]=Color.blendColors(start,prop.end,r,prop.tempColor).toCss();else if(!lang.isArray(start))ret[p]=(prop.end-start)*r+start+(p!="opacity"?prop.units||"px":0)}return ret};basefx.animateProperty=function(args){var n=args.node=dom.byId(args.node);if(!args.easing)args.easing=dojo._defaultEasing;var anim=new Animation(args);
aspect.after(anim,"beforeBegin",lang.hitch(anim,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height")this.node.display="block";var prop=this.properties[p];if(lang.isFunction(prop))prop=prop(n);prop=pm[p]=_mixin({},lang.isObject(prop)?prop:{end:prop});if(lang.isFunction(prop.start))prop.start=prop.start(n);if(lang.isFunction(prop.end))prop.end=prop.end(n);var isColor=p.toLowerCase().indexOf("color")>=0;function getStyle(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];
if(v!==undefined)return v;v=style.get(node,p);return p=="opacity"?+v:isColor?v:parseFloat(v)}if(!("end"in prop))prop.end=getStyle(n,p);else if(!("start"in prop))prop.start=getStyle(n,p);if(isColor){prop.start=new Color(prop.start);prop.end=new Color(prop.end)}else prop.start=p=="opacity"?+prop.start:parseFloat(prop.start)}this.curve=new PropLine(pm)}),true);aspect.after(anim,"onAnimate",lang.hitch(style,"set",anim.node),true);return anim};basefx.anim=function(node,properties,duration,easing,onEnd,
delay){return basefx.animateProperty({node:node,duration:duration||Animation.prototype.duration,properties:properties,easing:easing,onEnd:onEnd}).play(delay||0)};if(1){_mixin(dojo,basefx);dojo._Animation=Animation}return basefx})},"xwordpress/types/Types":function(){define("xwordpress/types/Types",["dojo/_base/lang","xwordpress/types"],function(lang,types){return types})},"xide/client/WebSocket":function(){define(["dojo/_base/declare","dojo/_base/lang","xide/types","xide/factory","xide/utils/_LogMixin",
"xide/client/ClientBase"],function(declare,lang,types,factory,_logMixin,ClientBase){return declare("xide.client.WebSocket",[ClientBase,_logMixin],{_socket:null,debugConnect:true,autoReconnect:true,reconnect:function(){0&&console.log("reconnect!")},close:function(){this.destroy()},connect:function(_options){this.options=lang.mixin(this.options,_options);var host=this.options.host;var port=this.options.port;if(this.options.debug)this.initLogger(this.options.debug);if(!host)debugger;0&&console.log("Connecting to "+
host+":"+port,"socket_client");var protocol=["websocket","xdr-streaming","xhr-streaming","iframe-eventsource","iframe-htmlfile","xdr-polling","xhr-polling","iframe-xhr-polling","jsonp-polling"];var options={debug:true,devel:true};options.protocols_whitelist=protocol;var sock=new SockJS(host+":"+port,null,options);var thiz=this;sock.onopen=function(){0&&console.log("open")};sock.onmessage=function(e){if(thiz.delegate.onServerResponse)thiz.delegate.onServerResponse(e)};sock.onclose=function(){0&&console.log("close");
if(thiz.autoReconnect)thiz.reconnect()};this._socket=sock},emit:function(signal,dataIn,tag){try{dataIn.tag=tag||"notag";0&&console.log("send ",dataIn);var data=JSON.stringify(dataIn);this._socket.send(data)}catch(e){console.error("web socket client crash ! "+e)}},onSignal:function(signal,callback){this._socket.on("data",callback)}})})},"xas/utils/WidgetUtils":function(){define(["xapp/utils","xas/utils"],function(coreutils,utils){xas.utils.getDataSourceTypeFriendlyName=function(sourceType){switch(parseInt(sourceType)){case xapp.types.sourceType.JoomlaCategory:return"Joomla Article Category";
case xapp.types.sourceType.MosetTreeCategory:return"Moset Category";case xapp.types.sourceType.Moset:return"Joomla Article Section";case xapp.types.sourceType.JEventsLocationItem:return"JEvents Location";case xapp.types.sourceType.JEventsLocationCategory:return"JEvents Location Category";case xapp.types.sourceType.JoomlaArticle:return"Joomla Article";case xapp.types.sourceType.JEventsItem:return"JEvents Event";case xapp.types.sourceType.WordpressPost:return"Wordpress Post";case xapp.types.sourceType.StaticWebContent:return"XApp Article";
case xapp.types.sourceType.StaticWebContentCategory:return"XApp Article Category";case xapp.types.sourceType.StaticWebContentVenue:return"XApp Venue";case xapp.types.sourceType.StaticWebContentVenueCategory:return"XApp Venue Category";case xapp.types.sourceType.RADIO:return"Shoutcast";case xapp.types.sourceType.RSS:return"News Feed";case xapp.types.sourceType.FILE:return"File";case xapp.types.sourceType.VMartProductItem:return"Joomla Article";case xapp.types.sourceType.MosetTreeItem:return"Moset Tree Venue";
case xapp.types.sourceType.MAP:return"Map";case xapp.types.sourceType.GooglePicassaAlbum:return"Picassa Album";case xapp.types.sourceType.GoogleCalendar:return"Google Calendar";case xapp.types.sourceType.GoogleDocumentFolder:return"Google Document Folder";case xapp.types.sourceType.GoogleDocumentItem:return"Google Document";case xapp.types.sourceType.BreezingForm:return"Breezing Form";case xapp.types.sourceType.ExternalLink:return"External Link"}return""};xas.utils.getDataSourceFriendlyName=function(dataSource){if(dataSource==
"Liferay")return"XApp";var ds=sctx.getDataSourceManager().getDataSourceByUID(dataSource);if(ds){var type=xapp.utils.toString(ds.type);if(type)if(type){if(type=="JoomlaMySQL")return"Joomla";if(type=="JoomlaXML")return"Joomla";if(type=="WordpressMySQL")return"Wordpress";if(type=="WordpressXML")return"Wordpress"}}return""};xas.utils.getFriendlyName=function(sourceType,dataSource,dataRef,name){var dsName=xas.utils.getDataSourceFriendlyName(xapp.utils.toString(dataSource));var dsTypeName=xas.utils.getDataSourceTypeFriendlyName(sourceType);
var result="";if(dsName)result+=dsName;if(dsTypeName){if(dsName&&dsName.length>0)result+=" \x3e ";result+=dsTypeName}if(name)result+=" \x3e "+name;return result};xas.utils.getTemplateParameterGroupTitle=function(widgetGroup){switch(widgetGroup){case xas.types.TemplateParameterGroup.LAYOUT:return"Layout";case xas.types.TemplateParameterGroup.VISUAL:return"Visuals";case xas.types.TemplateParameterGroup.COLORS:return"Colors";case xas.types.TemplateParameterGroup.FONTS:return"Fonts";case xas.types.TemplateParameterGroup.EFFECTS:return"Effects";
case xas.types.TemplateParameterGroup.PADDINGS:return"Margins"}};xas.utils.getTemplateParameterGroup=function(widgetGroup){switch(widgetGroup){case xas.types.TemplateParameterKeys.TP_BRAND_COLOR:return xas.types.TemplateParameterGroup.COLORS;case xas.types.TemplateParameterKeys.TP_ICON_SET:return xas.types.TemplateParameterGroup.VISUAL;case xas.types.TemplateParameterKeys.TP_HEADING:return xas.types.TemplateParameterGroup.COLORS;case xas.types.TemplateParameterKeys.TP_BACKGROUND:return xas.types.TemplateParameterGroup.VISUAL;
case xas.types.TemplateParameterKeys.TP_BACKGROUND_LI:return xas.types.TemplateParameterGroup.VISUAL;case xas.types.TemplateParameterKeys.TP_TITLE_COLOR:return xas.types.TemplateParameterGroup.COLORS;case xas.types.TemplateParameterKeys.TP_CAPTION_COLOR:return xas.types.TemplateParameterGroup.COLORS;case xas.types.TemplateParameterKeys.TP_FOOTER_COLOR_LEFT:return xas.types.TemplateParameterGroup.COLORS;case xas.types.TemplateParameterKeys.TP_FOOTER_COLOR_RIGHT:return xas.types.TemplateParameterGroup.COLORS;
case xas.types.TemplateParameterKeys.TP_TITLE_FONT:return xas.types.TemplateParameterGroup.FONTS;case xas.types.TemplateParameterKeys.TP_CAPTION_FONT:return xas.types.TemplateParameterGroup.FONTS;case xas.types.TemplateParameterKeys.TP_FOOTER_FONT_LEFT:return xas.types.TemplateParameterGroup.FONTS;case xas.types.TemplateParameterKeys.TP_FOOTER_FONT_RIGHT:return xas.types.TemplateParameterGroup.FONTS;case xas.types.TemplateParameterKeys.TP_PADDINGS:return xas.types.TemplateParameterGroup.PADDINGS;
case xas.types.TemplateParameterKeys.TP_SHADOWS:return xas.types.TemplateParameterGroup.EFFECTS;case xas.types.TemplateParameterKeys.TP_BORDERS:return xas.types.TemplateParameterGroup.EFFECTS}return null};xas.utils.getWidgetGroupTitle=function(widgetGroup){switch(widgetGroup){case xas.types.ECMWidgetGroup.General:return xas.types.ECMWidgetGroupTitle.General;case xas.types.ECMWidgetGroup.Visual:return xas.types.ECMWidgetGroupTitle.Visual;case xas.types.ECMWidgetGroup.Module:return xas.types.ECMWidgetGroupTitle.Module;
case xas.types.ECMWidgetGroup.Content:return xas.types.ECMWidgetGroupTitle.Content;case xas.types.ECMWidgetGroup.Facebook:return xas.types.ECMWidgetGroupTitle.Facebook;case xas.types.ECMWidgetGroup.Twitter:return xas.types.ECMWidgetGroupTitle.Twitter;case xas.types.ECMWidgetGroup.Google:return xas.types.ECMWidgetGroupTitle.Google;case xas.types.ECMWidgetGroup.Apple:return xas.types.ECMWidgetGroupTitle.Apple;case xas.types.ECMWidgetGroup.FourSquare:return xas.types.ECMWidgetGroupTitle.FourSquare;case xas.types.ECMWidgetGroup.BitLy:return xas.types.ECMWidgetGroupTitle.Bitly;
case xas.types.ECMWidgetGroup.Tablet:return xas.types.ECMWidgetGroupTitle.Tablet}return xas.types.ECMWidgetGroupTitle.Others};xas.utils.getWidgetGroup=function(ci){if(!ci)return xas.types.ECMWidgetGroup.Hidden;if(ci.visible&&ci.visible[0]&&!ci.visible[0])return xas.types.ECMWidgetGroup.Hidden;var ciName=xapp.utils.toString(ci.name);if(!ciName)return xas.types.ECMWidgetGroup.Hidden;if(ciName=="Layout")return xas.types.ECMWidgetGroup.Visual;if(ciName=="BACKGROUND")return xas.types.ECMWidgetGroup.Visual;
if(ciName=="Title")return xas.types.ECMWidgetGroup.General;if(ciName=="Content Source")return xas.types.ECMWidgetGroup.Content;if(ciName=="Icon")return xas.types.ECMWidgetGroup.Visual;if(ciName=="BannerSource")if(sctx.getApplication().hasXASFeature(xas.types.XASFeature.Banner))return xas.types.ECMWidgetGroup.Module;else return xas.types.ECMWidgetGroup.Hidden;if(ciName=="BannerSource2")if(sctx.getApplication().hasXASFeature(xas.types.XASFeature.Banner2))return xas.types.ECMWidgetGroup.Module;else return xas.types.ECMWidgetGroup.Hidden;
if(ciName=="Logo")if(sctx.getApplication().hasXASFeature(xas.types.XASFeature.Logo))return xas.types.ECMWidgetGroup.Module;else return xas.types.ECMWidgetGroup.Hidden;if(ciName==xapp.types.ApplicationMetaDataKeys.CM_APP_TITLE)return xas.types.ECMWidgetGroup.General;if(ciName==xapp.types.ApplicationMetaDataKeys.CM_PROMO_PIC_URL_0)return xas.types.ECMWidgetGroup.General;if(ciName==xapp.types.ApplicationMetaDataKeys.CM_APP_DESCRIPTION)return xas.types.ECMWidgetGroup.General;if(ciName==xapp.types.ApplicationMetaDataKeys.FB_SHARE_APP_ID)return xas.types.ECMWidgetGroup.Facebook;
if(ciName==xapp.types.ApplicationMetaDataKeys.FB_SHARE_APP_SECRET)return xas.types.ECMWidgetGroup.Facebook;if(ciName==xapp.types.ApplicationMetaDataKeys.GOOGLE_TRACKER_ID)return xas.types.ECMWidgetGroup.Google;if(ciName==xapp.types.ApplicationMetaDataKeys.ANDROID_PACKAGE)return xas.types.ECMWidgetGroup.Google;if(ciName==xapp.types.ApplicationMetaDataKeys.CM_APP_ICON_0)return xas.types.ECMWidgetGroup.General;if(ciName==xapp.types.ApplicationMetaDataKeys.APPLE_ICON_0)return xas.types.ECMWidgetGroup.Apple;
if(ciName==xapp.types.ApplicationMetaDataKeys.APPLE_LAUNCH_0)return xas.types.ECMWidgetGroup.Apple;if(ciName==xapp.types.ApplicationMetaDataKeys.APPLE_LAUNCH_1)return xas.types.ECMWidgetGroup.Apple;if(ciName==xapp.types.ApplicationMetaDataKeys.APPLE_LAUNCH_2)return xas.types.ECMWidgetGroup.Apple;if(ciName==xapp.types.ApplicationMetaDataKeys.TABLET_LAUNCH_1)return xas.types.ECMWidgetGroup.Tablet;if(ciName==xapp.types.ApplicationMetaDataKeys.TABLET_LAUNCH_2)return xas.types.ECMWidgetGroup.Tablet;if(ciName==
xapp.types.ApplicationMetaDataKeys.TABLET_BACKGROUND_1)return xas.types.ECMWidgetGroup.Tablet;if(ciName==xapp.types.ApplicationMetaDataKeys.TABLET_BACKGROUND_2)return xas.types.ECMWidgetGroup.Tablet;if(ciName==xapp.types.ApplicationMetaDataKeys.APPLE_ICON_1)return xas.types.ECMWidgetGroup.Apple;if(ciName==xapp.types.ApplicationMetaDataKeys.APPLE_BUNDLE_ID)return xas.types.ECMWidgetGroup.Apple;if(ciName==xapp.types.ApplicationMetaDataKeys.TWITTER_CONSUMER_KEY)return xas.types.ECMWidgetGroup.Twitter;
if(ciName==xapp.types.ApplicationMetaDataKeys.TWITTER_CONSUMER_SECRET)return xas.types.ECMWidgetGroup.Twitter;if(ciName==xapp.types.ApplicationMetaDataKeys.TWITTER_CONSUMER_CALL_BACK_URL)return xas.types.ECMWidgetGroup.Twitter;if(ciName==xapp.types.ApplicationMetaDataKeys.BITLY_KEY)return xas.types.ECMWidgetGroup.BitLy;if(ciName==xapp.types.ApplicationMetaDataKeys.BITLY_LOGIN)return xas.types.ECMWidgetGroup.BitLy;if(ciName==xapp.types.ApplicationMetaDataKeys.FS_KEY)return xas.types.ECMWidgetGroup.FourSquare;
if(ciName==xapp.types.ApplicationMetaDataKeys.FS_RURL)return xas.types.ECMWidgetGroup.FourSquare;if(ciName==xapp.types.ApplicationMetaDataKeys.CM_APP_ICON_SET)return xas.types.ECMWidgetGroup.Visual;return xas.types.ECMWidgetGroup.Hidden};return utils})},"xwordpress/XWordpressCommons":function(){define("xwordpress/XWordpressCommons",["dojo/_base/declare","xapp/types/Types","xapp/utils/StringUtils","xapp/utils/DataUtils","xapp/utils/UrlSchemaUtils","xapp/utils/MediaUtils","xapp/utils/StoreUtils","xapp/utils/PageUtils",
"xapp/utils/CIUtils","xapp/utils/ViewUtils","xapp/utils/RenderUtils","xide/utils","xide/types","xide/types/Types","xide/utils/StringUtils","xide/utils/HTMLUtils","xide/factory/Objects","xide/factory/Events","xas/data/LazyStore","dojo/data/ObjectStore","xfile/types","xfile/types/Types","xfile/config","xwordpress/types","xwordpress/types/Types","xstyle/core/load-css","put-selector/put","cbtree/data/FileStore","cbtree/data/BreadCrumb"],function(declare){return declare("xwordpress.XWordpressCommons",
null,{})})},"xfile/views/FileTreeViewSelectionMixin":function(){define("xfile/views/FileTreeViewSelectionMixin",["dojo/_base/array","dojo/_base/declare","xide/types"],function(array,declare,types){return dojo.declare("xfile.views.FileTreeViewSelectionMixin",null,{selected:null,unSelected:null,getSelected:function(){return this.selected},getUnselected:function(){return this.unSelected},hasItem:function(path,where){for(var i=0;i<where.length;i++)if(where[i]==path)return true;return false},_clean:function(path,
where){var hasItem=this.hasItem(path,where);if(hasItem)where.remove(path)},checkBoxClicked:function(item,nodeWidget,evt){var newState=nodeWidget.get("checked");this._clean(item.path,this.selected);this._clean(item.path,this.unSelected);var where=newState?this.selected:this.unSelected;if(item.path==null)item.path=this.url;if(item.path==this.url){if(newState)this.unSelected=[];else this.selected=[];return}var path=""+item.path;path=path.replace("./","/");path=path.replace(/^\/|\/$/g,"");var basePath=
""+this.url;basePath=basePath.replace("./","/");basePath=basePath.replace(/^\/|\/$/g,"");path=path.replace(basePath,"");path=path.replace(/^\/|\/$/g,"");var hasItem=this.hasItem(item.path,where);if(!hasItem)where.push(path);else where.remove(path)},onTreeCreated:function(tree){var thiz=this;var _cb=function(item,nodeWidget,evt){thiz.checkBoxClicked(item,nodeWidget,evt)};tree.on("checkBoxClick",_cb);this.selected=[];this.unSelected=[]}})})},"dijit/form/RadioButton":function(){define("dijit/form/RadioButton",
["dojo/_base/declare","./CheckBox","./_RadioButtonMixin"],function(declare,CheckBox,_RadioButtonMixin){return declare("dijit.form.RadioButton",[CheckBox,_RadioButtonMixin],{baseClass:"dijitRadio"})})},"dojox/fx/easing":function(){define("dojox/fx/easing",["dojo/_base/lang","dojo/_base/kernel","dojo/fx/easing"],function(lang,kernel,easing){kernel.deprecated("dojox.fx.easing","Upgraded to Core, use dojo.fx.easing instead","2.0");var fxExt=lang.getObject("dojox.fx",true);fxExt.easing=easing;return easing})},
"xwordpress/Imports/DojoxImports":function(){define("xwordpress/Imports/DojoxImports",["dojo/_base/declare","dojox/math/BigInteger-ext","dojox/fx","dojox/fx/flip","dojo/cldr/nls/en/number","dojo/cldr/nls/en-gb/number","dojo/fx/easing","dojox/layout/ToggleSplitter","dojox/image/Lightbox"],function(declare){return declare("xwordpress.Imports.DojoxImports",null,{constructor:function(){}})})},"dijit/_CssStateMixin":function(){define("dijit/_CssStateMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom",
"dojo/dom-class","dojo/has","dojo/_base/lang","dojo/on","dojo/domReady","dojo/touch","dojo/_base/window","./a11yclick","./registry"],function(array,declare,dom,domClass,has,lang,on,domReady,touch,win,a11yclick,registry){var CssStateMixin=declare("dijit._CssStateMixin",[],{hovering:false,active:false,_applyAttributes:function(){this.inherited(arguments);array.forEach(["disabled","readOnly","checked","selected","focused","state","hovering","active","_opened"],function(attr){this.watch(attr,lang.hitch(this,
"_setStateClass"))},this);for(var ap in this.cssStateNodes||{})this._trackMouseState(this[ap],this.cssStateNodes[ap]);this._trackMouseState(this.domNode,this.baseClass);this._setStateClass()},_cssMouseEvent:function(event){if(!this.disabled)switch(event.type){case "mouseover":this._set("hovering",true);this._set("active",this._mouseDown);break;case "mouseout":this._set("hovering",false);this._set("active",false);break;case "mousedown":case "touchstart":case "keydown":this._set("active",true);break;
case "mouseup":case "dojotouchend":case "keyup":this._set("active",false);break}},_setStateClass:function(){var newStateClasses=this.baseClass.split(" ");function multiply(modifier){newStateClasses=newStateClasses.concat(array.map(newStateClasses,function(c){return c+modifier}),"dijit"+modifier)}if(!this.isLeftToRight())multiply("Rtl");var checkedState=this.checked=="mixed"?"Mixed":this.checked?"Checked":"";if(this.checked)multiply(checkedState);if(this.state)multiply(this.state);if(this.selected)multiply("Selected");
if(this._opened)multiply("Opened");if(this.disabled)multiply("Disabled");else if(this.readOnly)multiply("ReadOnly");else if(this.active)multiply("Active");else if(this.hovering)multiply("Hover");if(this.focused)multiply("Focused");var tn=this.stateNode||this.domNode,classHash={};array.forEach(tn.className.split(" "),function(c){classHash[c]=true});if("_stateClasses"in this)array.forEach(this._stateClasses,function(c){delete classHash[c]});array.forEach(newStateClasses,function(c){classHash[c]=true});
var newClasses=[];for(var c in classHash)newClasses.push(c);tn.className=newClasses.join(" ");this._stateClasses=newStateClasses},_subnodeCssMouseEvent:function(node,clazz,evt){if(this.disabled||this.readOnly)return;function hover(isHovering){domClass.toggle(node,clazz+"Hover",isHovering)}function active(isActive){domClass.toggle(node,clazz+"Active",isActive)}function focused(isFocused){domClass.toggle(node,clazz+"Focused",isFocused)}switch(evt.type){case "mouseover":hover(true);break;case "mouseout":hover(false);
active(false);break;case "mousedown":case "touchstart":case "keydown":active(true);break;case "mouseup":case "dojotouchend":case "keyup":active(false);break;case "focus":case "focusin":focused(true);break;case "blur":case "focusout":focused(false);break}},_trackMouseState:function(node,clazz){node._cssState=clazz}});domReady(function(){function pointerHandler(evt,target,relatedTarget){if(relatedTarget&&dom.isDescendant(relatedTarget,target))return;for(var node=target;node&&node!=relatedTarget;node=
node.parentNode)if(node._cssState){var widget=registry.getEnclosingWidget(node);if(widget)if(node==widget.domNode)widget._cssMouseEvent(evt);else widget._subnodeCssMouseEvent(node,node._cssState,evt)}}var body=win.body(),activeNode;on(body,touch.over,function(evt){pointerHandler(evt,evt.target,evt.relatedTarget)});on(body,touch.out,function(evt){pointerHandler(evt,evt.target,evt.relatedTarget)});on(body,a11yclick.press,function(evt){activeNode=evt.target;pointerHandler(evt,activeNode)});on(body,a11yclick.release,
function(evt){pointerHandler(evt,activeNode);activeNode=null});on(body,"focusin, focusout",function(evt){var node=evt.target;if(node._cssState&&!node.getAttribute("widgetId")){var widget=registry.getEnclosingWidget(node);widget._subnodeCssMouseEvent(node,node._cssState,evt)}})});return CssStateMixin})},"url:dijit/layout/templates/AccordionButton.html":"\x3cdiv data-dojo-attach-event\x3d'ondijitclick:_onTitleClick' class\x3d'dijitAccordionTitle' role\x3d\"presentation\"\x3e\n\t\x3cdiv data-dojo-attach-point\x3d'titleNode,focusNode' data-dojo-attach-event\x3d'onkeydown:_onTitleKeyDown'\n\t\t\tclass\x3d'dijitAccordionTitleFocus' role\x3d\"tab\" aria-expanded\x3d\"false\"\n\t\t\x3e\x3cspan class\x3d'dijitInline dijitAccordionArrow' role\x3d\"presentation\"\x3e\x3c/span\n\t\t\x3e\x3cspan class\x3d'arrowTextUp' role\x3d\"presentation\"\x3e+\x3c/span\n\t\t\x3e\x3cspan class\x3d'arrowTextDown' role\x3d\"presentation\"\x3e-\x3c/span\n\t\t\x3e\x3cspan role\x3d\"presentation\" class\x3d\"dijitInline dijitIcon\" data-dojo-attach-point\x3d\"iconNode\"\x3e\x3c/span\x3e\n\t\t\x3cspan role\x3d\"presentation\" data-dojo-attach-point\x3d'titleTextNode, textDirNode' class\x3d'dijitAccordionText'\x3e\x3c/span\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e\n",
"xas/manager/Context":function(){define(["dojo/_base/declare","xapp/manager/ContextBase"],function(declare,ContextBase){return declare("xas.manager.Context",[ContextBase],{session:null,application:null,dbManager:null,workflowManager:null,storeDelegate:null,contentManager:null,widgetCacheManager:null,simulator:null,dndManager:null,styleManager:null,templateManager:null,tooltipManager:null,dataSourceManager:null,scriptManager:null,fileManager:null,resourceManager:null,forcePlatform:null,customTypeStoreDelegate:null,
getCustomTypeStoreDelegate:function(){return this.customTypeStoreDelegate},getFileManager:function(){return this.fileManager},getResourceManager:function(){return this.resourceManager},getScriptManager:function(){return this.scriptManager},getDataSourceManager:function(){return this.dataSourceManager},getTooltipManager:function(){return this.tooltipManager},getTemplateManager:function(){return this.templateManager},getMetaDataStore:function(){return this.getApplication().getMetaDataStore()},getStyleManager:function(){return this.styleManager},
getDNDManager:function(){return this.dndManager},getSimulator:function(){return this.simulator},setSimulator:function(sim){this.simulator=sim},getWidgetCacheManager:function(){return this.widgetCacheManager},getContentManager:function(){return this.contentManager},getStoreDelegate:function(){return this.storeDelegate},getWorkflowManager:function(){return this.workflowManager},getDBManager:function(){return this.dbManager},getApplication:function(){return this.application},getSession:function(){return this.session},
onApplicationReady:function(uuid,appId,appStore,appService,ciOverrideStore,appRawData){this.storeDelegate.initWithStoreAndAppService(appStore,appService,ciOverrideStore);if(this.contentManager)this.session.init();if(this.widgetCacheManager)this.widgetCacheManager.init();if(this.styleManager)this.styleManager.init();if(this.styleManager)this.styleManager.init();if(this.dataSourceManager)this.dataSourceManager.init();if(this.templateManager)this.templateManager.init();if(this.dndManager)this.dndManager.init();
if(this.tooltipManager)this.tooltipManager.init();if(this.scriptManager)this.scriptManager.init();if(this.fileManager)this.fileManager.init();if(this.resourceManager)this.resourceManager.init();if(this.connectManager)this.connectManager.init(false);if(!mctx){this.dataSourceManager.initWithAppData(appRawData);this.customTypeStoreDelegate.initWithStoreAndAppService(appStore,appService);this.workflowManager.initWidgets(sctx.getSession().getUUID(),sctx.getSession().getAppId(),appStore,appService);var thiz=
this;setTimeout(function(){if(thiz.forcePlatform=="MOBILE_WEB_APP_TABLET")thiz.workflowManager.openTabletSimulator();else thiz.workflowManager.openSimulator()},1E3);setTimeout(function(){thiz.workflowManager.repaint()},1300)}},initManagers:function(){if(this.session)this.session.init()},constructManagers:function(){this.inherited(arguments);if(!this.session)this.session=new xas.manager.Session({ctx:this});if(!this.application)this.application=new xas.manager.Application({ctx:this});if(!this.dbManager)this.dbManager=
new xas.manager.DBManager({ctx:this});if(!this.dataSourceManager)this.dataSourceManager=new xas.manager.DataSourceManager({ctx:this});if(!this.workflowManager)this.workflowManager=new xas.manager.WorkflowManager({ctx:this});if(!this.storeDelegate)this.storeDelegate=new xas.manager.CIStoreDelegate({ctx:this});if(!this.contentManager)this.contentManager=new xas.manager.ContentManager({ctx:this});if(!this.widgetCacheManager)this.widgetCacheManager=new xas.manager.WidgetCacheManager({ctx:this});if(!this.styleManager)this.styleManager=
new xas.manager.StyleManager({ctx:this});if(!this.templateManager)this.templateManager=new xas.manager.TemplateManager({ctx:this});if(!this.dndManager)this.dndManager=new xas.dnd.DnDManager({ctx:this});if(!this.tooltipManager)this.tooltipManager=new xas.manager.ToolTipManager({ctx:this});if(!this.scriptManager)this.scriptManager=new xas.manager.ScriptManager({ctx:this});if(!this.fileManager)this.fileManager=new xas.manager.FileManager({ctx:this});if(!this.resourceManager)this.resourceManager=new xas.manager.ResourceManager({ctx:this});
if(!this.connectManager)this.connectManager=new xappconnect.manager.ConnectManager({ctx:this});if(!this.customTypeStoreDelegate)this.customTypeStoreDelegate=new xappconnect.manager.CIStoreDelegate({ctx:this})},constructor:function(){if(navigator.appName=="Netscape")var language=navigator.language;else var language=navigator.browserLanguage;this.language=language.substring(0,2)}})})},"dijit/form/ValidationTextBox":function(){require({cache:{"url:dijit/form/templates/ValidationTextBox.html":'\x3cdiv class\x3d"dijit dijitReset dijitInline dijitLeft"\n\tid\x3d"widget_${id}" role\x3d"presentation"\n\t\x3e\x3cdiv class\x3d\'dijitReset dijitValidationContainer\'\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value\x3d"\x26#935; " type\x3d"text" tabIndex\x3d"-1" readonly\x3d"readonly" role\x3d"presentation"\n\t/\x3e\x3c/div\n\t\x3e\x3cdiv class\x3d"dijitReset dijitInputField dijitInputContainer"\n\t\t\x3e\x3cinput class\x3d"dijitReset dijitInputInner" data-dojo-attach-point\x3d\'textbox,focusNode\' autocomplete\x3d"off"\n\t\t\t${!nameAttrSetting} type\x3d\'${type}\'\n\t/\x3e\x3c/div\n\x3e\x3c/div\x3e\n'}});
define("dijit/form/ValidationTextBox",["dojo/_base/declare","dojo/_base/kernel","dojo/i18n","./TextBox","../Tooltip","dojo/text!./templates/ValidationTextBox.html","dojo/i18n!./nls/validate"],function(declare,kernel,i18n,TextBox,Tooltip,template){var ValidationTextBox;return ValidationTextBox=declare("dijit.form.ValidationTextBox",TextBox,{templateString:template,required:false,promptMessage:"",invalidMessage:"$_unset_$",missingMessage:"$_unset_$",message:"",constraints:{},pattern:".*",regExp:"",
regExpGen:function(){},state:"",tooltipPosition:[],_deprecateRegExp:function(attr,value){if(value!=ValidationTextBox.prototype[attr]){kernel.deprecated("ValidationTextBox id\x3d"+this.id+", set('"+attr+"', ...) is deprecated.  Use set('pattern', ...) instead.","","2.0");this.set("pattern",value)}},_setRegExpGenAttr:function(newFcn){this._deprecateRegExp("regExpGen",newFcn);this._set("regExpGen",this._computeRegexp)},_setRegExpAttr:function(value){this._deprecateRegExp("regExp",value)},_setValueAttr:function(){this.inherited(arguments);
this._refreshState()},validator:function(value,constraints){return(new RegExp("^(?:"+this._computeRegexp(constraints)+")"+(this.required?"":"?")+"$")).test(value)&&(!this.required||!this._isEmpty(value))&&(this._isEmpty(value)||this.parse(value,constraints)!==undefined)},_isValidSubset:function(){return this.textbox.value.search(this._partialre)==0},isValid:function(){return this.validator(this.textbox.value,this.constraints)},_isEmpty:function(value){return(this.trim?/^\s*$/:/^$/).test(value)},getErrorMessage:function(){var invalid=
this.invalidMessage=="$_unset_$"?this.messages.invalidMessage:!this.invalidMessage?this.promptMessage:this.invalidMessage;var missing=this.missingMessage=="$_unset_$"?this.messages.missingMessage:!this.missingMessage?invalid:this.missingMessage;return this.required&&this._isEmpty(this.textbox.value)?missing:invalid},getPromptMessage:function(){return this.promptMessage},_maskValidSubsetError:true,validate:function(isFocused){var message="";var isValid=this.disabled||this.isValid(isFocused);if(isValid)this._maskValidSubsetError=
true;var isEmpty=this._isEmpty(this.textbox.value);var isValidSubset=!isValid&&isFocused&&this._isValidSubset();this._set("state",isValid?"":((!this._hasBeenBlurred||isFocused)&&isEmpty||isValidSubset)&&(this._maskValidSubsetError||isValidSubset&&!this._hasBeenBlurred&&isFocused)?"Incomplete":"Error");this.focusNode.setAttribute("aria-invalid",isValid?"false":"true");if(this.state=="Error"){this._maskValidSubsetError=isFocused&&isValidSubset;message=this.getErrorMessage(isFocused)}else if(this.state==
"Incomplete"){message=this.getPromptMessage(isFocused);this._maskValidSubsetError=!this._hasBeenBlurred||isFocused}else if(isEmpty)message=this.getPromptMessage(isFocused);this.set("message",message);return isValid},displayMessage:function(message){if(message&&this.focused)Tooltip.show(message,this.domNode,this.tooltipPosition,!this.isLeftToRight());else Tooltip.hide(this.domNode)},_refreshState:function(){if(this._created)this.validate(this.focused);this.inherited(arguments)},constructor:function(params){this.constraints=
{};this.baseClass+=" dijitValidationTextBox"},startup:function(){this.inherited(arguments);this._refreshState()},_setConstraintsAttr:function(constraints){if(!constraints.locale&&this.lang)constraints.locale=this.lang;this._set("constraints",constraints);this._refreshState()},_setPatternAttr:function(pattern){this._set("pattern",pattern)},_computeRegexp:function(constraints){var p=this.pattern;if(typeof p=="function")p=p.call(this,constraints);if(p!=this._lastRegExp){var partialre="";this._lastRegExp=
p;if(p!=".*")p.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){switch(re.charAt(0)){case "{":case "+":case "?":case "*":case "^":case "$":case "|":case "(":partialre+=re;break;case ")":partialre+="|$)";break;default:partialre+="(?:"+re+"|$)";break}});try{"".search(partialre)}catch(e){partialre=this.pattern;0&&console.warn("RegExp error in "+this.declaredClass+": "+this.pattern)}this._partialre="^(?:"+partialre+")$"}return p},postMixInProperties:function(){this.inherited(arguments);
this.messages=i18n.getLocalization("dijit.form","validate",this.lang);this._setConstraintsAttr(this.constraints)},_setDisabledAttr:function(value){this.inherited(arguments);this._refreshState()},_setRequiredAttr:function(value){this._set("required",value);this.focusNode.setAttribute("aria-required",value);this._refreshState()},_setMessageAttr:function(message){this._set("message",message);this.displayMessage(message)},reset:function(){this._maskValidSubsetError=true;this.inherited(arguments)},_onBlur:function(){this.displayMessage("");
this.inherited(arguments)}})})},"cbtree/data/util/sorter":function(){define("cbtree/data/util/sorter",["dojo/_base/declare","dojo/_base/lang"],function(declare,lang){var sortDecl=declare(null,{constructor:function(sortFields){var i;this.sortArgm=[];if(lang.isArray(sortFields))for(i=0;i<sortFields.length;i++){var field=sortFields[i];if(field.attribute){var sortSpec={attribute:field.attribute,descending:field.descending?-1:1,ignoreCase:field.ignoreCase||false};this.sortArgm.push(sortSpec)}}},_compare:function(a,
b){var attr,desc,igc,valA,valB,i;for(i=0;i<this.sortArgm.length;i++){attr=this.sortArgm[i].attribute;desc=this.sortArgm[i].descending;igc=this.sortArgm[i].ignoreCase;valA=a[attr]===null?undefined:a[attr];valB=b[attr]===null?undefined:b[attr];if(igc&&lang.isString(valA)&&lang.isString(valB)){valA=valA.toLowerCase();valB=valB.toLowerCase()}if(valA==valB)continue;if(valB==null||valA>valB)return desc*1;if(valA==null||valA<valB)return desc*-1}return 0},sortFunction:function(){return lang.hitch(this,this._compare)}});
return sortDecl})},"dijit/form/HorizontalSlider":function(){require({cache:{"url:dijit/form/templates/HorizontalSlider.html":'\x3ctable class\x3d"dijit dijitReset dijitSlider dijitSliderH" cellspacing\x3d"0" cellpadding\x3d"0" border\x3d"0" rules\x3d"none" data-dojo-attach-event\x3d"onkeydown:_onKeyDown, onkeyup:_onKeyUp"\n\trole\x3d"presentation"\n\t\x3e\x3ctr class\x3d"dijitReset"\n\t\t\x3e\x3ctd class\x3d"dijitReset" colspan\x3d"2"\x3e\x3c/td\n\t\t\x3e\x3ctd data-dojo-attach-point\x3d"topDecoration" class\x3d"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH"\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset" colspan\x3d"2"\x3e\x3c/td\n\t\x3e\x3c/tr\n\t\x3e\x3ctr class\x3d"dijitReset"\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH"\n\t\t\t\x3e\x3cdiv class\x3d"dijitSliderDecrementIconH" style\x3d"display:none" data-dojo-attach-point\x3d"decrementButton"\x3e\x3cspan class\x3d"dijitSliderButtonInner"\x3e-\x3c/span\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset"\n\t\t\t\x3e\x3cdiv class\x3d"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper" data-dojo-attach-event\x3d"press:_onClkDecBumper"\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset"\n\t\t\t\x3e\x3cinput data-dojo-attach-point\x3d"valueNode" type\x3d"hidden" ${!nameAttrSetting}\n\t\t\t/\x3e\x3cdiv class\x3d"dijitReset dijitSliderBarContainerH" role\x3d"presentation" data-dojo-attach-point\x3d"sliderBarContainer"\n\t\t\t\t\x3e\x3cdiv role\x3d"presentation" data-dojo-attach-point\x3d"progressBar" class\x3d"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH" data-dojo-attach-event\x3d"press:_onBarClick"\n\t\t\t\t\t\x3e\x3cdiv class\x3d"dijitSliderMoveable dijitSliderMoveableH"\n\t\t\t\t\t\t\x3e\x3cdiv data-dojo-attach-point\x3d"sliderHandle,focusNode" class\x3d"dijitSliderImageHandle dijitSliderImageHandleH" data-dojo-attach-event\x3d"press:_onHandleClick" role\x3d"slider"\x3e\x3c/div\n\t\t\t\t\t\x3e\x3c/div\n\t\t\t\t\x3e\x3c/div\n\t\t\t\t\x3e\x3cdiv role\x3d"presentation" data-dojo-attach-point\x3d"remainingBar" class\x3d"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH" data-dojo-attach-event\x3d"press:_onBarClick"\x3e\x3c/div\n\t\t\t\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset"\n\t\t\t\x3e\x3cdiv class\x3d"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper" data-dojo-attach-event\x3d"press:_onClkIncBumper"\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH"\n\t\t\t\x3e\x3cdiv class\x3d"dijitSliderIncrementIconH" style\x3d"display:none" data-dojo-attach-point\x3d"incrementButton"\x3e\x3cspan class\x3d"dijitSliderButtonInner"\x3e+\x3c/span\x3e\x3c/div\n\t\t\x3e\x3c/td\n\t\x3e\x3c/tr\n\t\x3e\x3ctr class\x3d"dijitReset"\n\t\t\x3e\x3ctd class\x3d"dijitReset" colspan\x3d"2"\x3e\x3c/td\n\t\t\x3e\x3ctd data-dojo-attach-point\x3d"containerNode,bottomDecoration" class\x3d"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH"\x3e\x3c/td\n\t\t\x3e\x3ctd class\x3d"dijitReset" colspan\x3d"2"\x3e\x3c/td\n\t\x3e\x3c/tr\n\x3e\x3c/table\x3e\n'}});
define("dijit/form/HorizontalSlider",["dojo/_base/array","dojo/_base/declare","dojo/dnd/move","dojo/_base/fx","dojo/dom-geometry","dojo/dom-style","dojo/keys","dojo/_base/lang","dojo/sniff","dojo/dnd/Moveable","dojo/dnd/Mover","dojo/query","dojo/mouse","dojo/on","../_base/manager","../focus","../typematic","./Button","./_FormValueWidget","../_Container","dojo/text!./templates/HorizontalSlider.html"],function(array,declare,move,fx,domGeometry,domStyle,keys,lang,has,Moveable,Mover,query,mouse,on,manager,
focus,typematic,Button,_FormValueWidget,_Container,template){var _SliderMover=declare("dijit.form._SliderMover",Mover,{onMouseMove:function(e){var widget=this.widget;var abspos=widget._abspos;if(!abspos){abspos=widget._abspos=domGeometry.position(widget.sliderBarContainer,true);widget._setPixelValue_=lang.hitch(widget,"_setPixelValue");widget._isReversed_=widget._isReversed()}var pixelValue=e[widget._mousePixelCoord]-abspos[widget._startingPixelCoord];widget._setPixelValue_(widget._isReversed_?abspos[widget._pixelCount]-
pixelValue:pixelValue,abspos[widget._pixelCount],false)},destroy:function(e){Mover.prototype.destroy.apply(this,arguments);var widget=this.widget;widget._abspos=null;widget._setValueAttr(widget.value,true)}});var HorizontalSlider=declare("dijit.form.HorizontalSlider",[_FormValueWidget,_Container],{templateString:template,value:0,showButtons:true,minimum:0,maximum:100,discreteValues:Infinity,pageIncrement:2,clickSelect:true,slideDuration:manager.defaultDuration,_setIdAttr:"",_setNameAttr:"valueNode",
baseClass:"dijitSlider",cssStateNodes:{incrementButton:"dijitSliderIncrementButton",decrementButton:"dijitSliderDecrementButton",focusNode:"dijitSliderThumb"},_mousePixelCoord:"pageX",_pixelCount:"w",_startingPixelCoord:"x",_handleOffsetCoord:"left",_progressPixelSize:"width",_onKeyUp:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey)return;this._setValueAttr(this.value,true)},_onKeyDown:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey)return;switch(e.keyCode){case keys.HOME:this._setValueAttr(this.minimum,
false);break;case keys.END:this._setValueAttr(this.maximum,false);break;case this._descending||this.isLeftToRight()?keys.RIGHT_ARROW:keys.LEFT_ARROW:case this._descending===false?keys.DOWN_ARROW:keys.UP_ARROW:case this._descending===false?keys.PAGE_DOWN:keys.PAGE_UP:this.increment(e);break;case this._descending||this.isLeftToRight()?keys.LEFT_ARROW:keys.RIGHT_ARROW:case this._descending===false?keys.UP_ARROW:keys.DOWN_ARROW:case this._descending===false?keys.PAGE_UP:keys.PAGE_DOWN:this.decrement(e);
break;default:return}e.stopPropagation();e.preventDefault()},_onHandleClick:function(e){if(this.disabled||this.readOnly)return;if(!has("ie"))focus.focus(this.sliderHandle);e.stopPropagation();e.preventDefault()},_isReversed:function(){return!this.isLeftToRight()},_onBarClick:function(e){if(this.disabled||this.readOnly||!this.clickSelect)return;focus.focus(this.sliderHandle);e.stopPropagation();e.preventDefault();var abspos=domGeometry.position(this.sliderBarContainer,true);var pixelValue=e[this._mousePixelCoord]-
abspos[this._startingPixelCoord];this._setPixelValue(this._isReversed()?abspos[this._pixelCount]-pixelValue:pixelValue,abspos[this._pixelCount],true);this._movable.onMouseDown(e)},_setPixelValue:function(pixelValue,maxPixels,priorityChange){if(this.disabled||this.readOnly)return;var count=this.discreteValues;if(count<=1||count==Infinity)count=maxPixels;count--;var pixelsPerValue=maxPixels/count;var wholeIncrements=Math.round(pixelValue/pixelsPerValue);this._setValueAttr(Math.max(Math.min((this.maximum-
this.minimum)*wholeIncrements/count+this.minimum,this.maximum),this.minimum),priorityChange)},_setValueAttr:function(value,priorityChange){this._set("value",value);this.valueNode.value=value;this.focusNode.setAttribute("aria-valuenow",value);this.inherited(arguments);var percent=(value-this.minimum)/(this.maximum-this.minimum);var progressBar=this._descending===false?this.remainingBar:this.progressBar;var remainingBar=this._descending===false?this.progressBar:this.remainingBar;if(this._inProgressAnim&&
this._inProgressAnim.status!="stopped")this._inProgressAnim.stop(true);if(priorityChange&&this.slideDuration>0&&progressBar.style[this._progressPixelSize]){var _this=this;var props={};var start=parseFloat(progressBar.style[this._progressPixelSize]);var duration=this.slideDuration*(percent-start/100);if(duration==0)return;if(duration<0)duration=0-duration;props[this._progressPixelSize]={start:start,end:percent*100,units:"%"};this._inProgressAnim=fx.animateProperty({node:progressBar,duration:duration,
onAnimate:function(v){remainingBar.style[_this._progressPixelSize]=100-parseFloat(v[_this._progressPixelSize])+"%"},onEnd:function(){delete _this._inProgressAnim},properties:props});this._inProgressAnim.play()}else{progressBar.style[this._progressPixelSize]=percent*100+"%";remainingBar.style[this._progressPixelSize]=(1-percent)*100+"%"}},_bumpValue:function(signedChange,priorityChange){if(this.disabled||this.readOnly)return;var s=domStyle.getComputedStyle(this.sliderBarContainer);var c=domGeometry.getContentBox(this.sliderBarContainer,
s);var count=this.discreteValues;if(count<=1||count==Infinity)count=c[this._pixelCount];count--;var value=(this.value-this.minimum)*count/(this.maximum-this.minimum)+signedChange;if(value<0)value=0;if(value>count)value=count;value=value*(this.maximum-this.minimum)/count+this.minimum;this._setValueAttr(value,priorityChange)},_onClkBumper:function(val){if(this.disabled||this.readOnly||!this.clickSelect)return;this._setValueAttr(val,true)},_onClkIncBumper:function(){this._onClkBumper(this._descending===
false?this.minimum:this.maximum)},_onClkDecBumper:function(){this._onClkBumper(this._descending===false?this.maximum:this.minimum)},decrement:function(e){this._bumpValue(e.keyCode==keys.PAGE_DOWN?-this.pageIncrement:-1)},increment:function(e){this._bumpValue(e.keyCode==keys.PAGE_UP?this.pageIncrement:1)},_mouseWheeled:function(evt){evt.stopPropagation();evt.preventDefault();this._bumpValue(evt.wheelDelta<0?-1:1,true)},startup:function(){if(this._started)return;array.forEach(this.getChildren(),function(child){if(this[child.container]!=
this.containerNode)this[child.container].appendChild(child.domNode)},this);this.inherited(arguments)},_typematicCallback:function(count,button,e){if(count==-1)this._setValueAttr(this.value,true);else this[button==(this._descending?this.incrementButton:this.decrementButton)?"decrement":"increment"](e)},buildRendering:function(){this.inherited(arguments);if(this.showButtons){this.incrementButton.style.display="";this.decrementButton.style.display=""}var label=query('label[for\x3d"'+this.id+'"]');if(label.length){if(!label[0].id)label[0].id=
this.id+"_label";this.focusNode.setAttribute("aria-labelledby",label[0].id)}this.focusNode.setAttribute("aria-valuemin",this.minimum);this.focusNode.setAttribute("aria-valuemax",this.maximum)},postCreate:function(){this.inherited(arguments);if(this.showButtons)this.own(typematic.addMouseListener(this.decrementButton,this,"_typematicCallback",25,500),typematic.addMouseListener(this.incrementButton,this,"_typematicCallback",25,500));this.own(on(this.domNode,mouse.wheel,lang.hitch(this,"_mouseWheeled")));
var mover=declare(_SliderMover,{widget:this});this._movable=new Moveable(this.sliderHandle,{mover:mover});this._layoutHackIE7()},destroy:function(){this._movable.destroy();if(this._inProgressAnim&&this._inProgressAnim.status!="stopped")this._inProgressAnim.stop(true);this.inherited(arguments)}});HorizontalSlider._Mover=_SliderMover;return HorizontalSlider})},"dojo/query":function(){define(["./_base/kernel","./has","./dom","./on","./_base/array","./_base/lang","./selector/_loader","./selector/_loader!default"],
function(dojo,has,dom,on,array,lang,loader,defaultEngine){has.add("array-extensible",function(){return lang.delegate([],{length:1}).length==1&&!has("bug-for-in-skips-shadowed")});var ap=Array.prototype,aps=ap.slice,apc=ap.concat,forEach=array.forEach;var tnl=function(a,parent,NodeListCtor){var nodeList=new (NodeListCtor||this._NodeListCtor||nl)(a);return parent?nodeList._stash(parent):nodeList};var loopBody=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||dojo.global;return function(node){a[0]=node;
return f.apply(o,a)}};var adaptAsForEach=function(f,o){return function(){this.forEach(loopBody(f,arguments,o));return this}};var adaptAsMap=function(f,o){return function(){return this.map(loopBody(f,arguments,o))}};var adaptAsFilter=function(f,o){return function(){return this.filter(loopBody(f,arguments,o))}};var adaptWithCondition=function(f,g,o){return function(){var a=arguments,body=loopBody(f,a,o);if(g.call(o||dojo.global,a))return this.map(body);this.forEach(body);return this}};var NodeList=
function(array){var isNew=this instanceof nl&&has("array-extensible");if(typeof array=="number")array=Array(array);var nodeArray=array&&"length"in array?array:arguments;if(isNew||!nodeArray.sort){var target=isNew?this:[],l=target.length=nodeArray.length;for(var i=0;i<l;i++)target[i]=nodeArray[i];if(isNew)return target;nodeArray=target}lang._mixin(nodeArray,nlp);nodeArray._NodeListCtor=function(array){return nl(array)};return nodeArray};var nl=NodeList,nlp=nl.prototype=has("array-extensible")?[]:{};
nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=adaptAsMap;nl._adaptAsForEach=adaptAsForEach;nl._adaptAsFilter=adaptAsFilter;nl._adaptWithCondition=adaptWithCondition;forEach(["slice","splice"],function(name){var f=ap[name];nlp[name]=function(){return this._wrap(f.apply(this,arguments),name=="slice"?this:null)}});forEach(["indexOf","lastIndexOf","every","some"],function(name){var f=array[name];nlp[name]=function(){return f.apply(dojo,[this].concat(aps.call(arguments,0)))}});lang.extend(NodeList,{constructor:nl,
_NodeListCtor:nl,toString:function(){return this.join(",")},_stash:function(parent){this._parent=parent;return this},on:function(eventName,listener){var handles=this.map(function(node){return on(node,eventName,listener)});handles.remove=function(){for(var i=0;i<handles.length;i++)handles[i].remove()};return handles},end:function(){if(this._parent)return this._parent;else return new this._NodeListCtor(0)},concat:function(item){var t=aps.call(this,0),m=array.map(arguments,function(a){return aps.call(a,
0)});return this._wrap(apc.apply(t,m),this)},map:function(func,obj){return this._wrap(array.map(this,func,obj),this)},forEach:function(callback,thisObj){forEach(this,callback,thisObj);return this},filter:function(filter){var a=arguments,items=this,start=0;if(typeof filter=="string"){items=query._filterResult(this,a[0]);if(a.length==1)return items._stash(this);start=1}return this._wrap(array.filter(items,a[start],a[start+1]),this)},instantiate:function(declaredClass,properties){var c=lang.isFunction(declaredClass)?
declaredClass:lang.getObject(declaredClass);properties=properties||{};return this.forEach(function(node){new c(properties,node)})},at:function(){var t=new this._NodeListCtor(0);forEach(arguments,function(i){if(i<0)i=this.length+i;if(this[i])t.push(this[i])},this);return t._stash(this)}});function queryForEngine(engine,NodeList){var query=function(query,root){if(typeof root=="string"){root=dom.byId(root);if(!root)return new NodeList([])}var results=typeof query=="string"?engine(query,root):query?query.end&&
query.on?query:[query]:[];if(results.end&&results.on)return results;return new NodeList(results)};query.matches=engine.match||function(node,selector,root){return query.filter([node],selector,root).length>0};query.filter=engine.filter||function(nodes,selector,root){return query(selector,root).filter(function(node){return array.indexOf(nodes,node)>-1})};if(typeof engine!="function"){var search=engine.search;engine=function(selector,root){return search(root||document,selector)}}return query}var query=
queryForEngine(defaultEngine,NodeList);dojo.query=queryForEngine(defaultEngine,function(array){return NodeList(array)});query.load=function(id,parentRequire,loaded){loader.load(id,parentRequire,function(engine){loaded(queryForEngine(engine,NodeList))})};dojo._filterQueryResult=query._filterResult=function(nodes,selector,root){return new NodeList(query.filter(nodes,selector,root))};dojo.NodeList=query.NodeList=NodeList;return query})},"dojox/grid/_FocusManager":function(){define("dojox/grid/_FocusManager",
["dojo/_base/array","dojo/_base/lang","dojo/_base/declare","dojo/_base/connect","dojo/_base/event","dojo/_base/sniff","dojo/query","./util","dojo/_base/html"],function(array,lang,declare,connect,event,has,query,util,html){return declare("dojox.grid._FocusManager",null,{constructor:function(inGrid){this.grid=inGrid;this.cell=null;this.rowIndex=-1;this._connects=[];this._headerConnects=[];this.headerMenu=this.grid.headerMenu;this._connects.push(connect.connect(this.grid.domNode,"onfocus",this,"doFocus"));
this._connects.push(connect.connect(this.grid.domNode,"onblur",this,"doBlur"));this._connects.push(connect.connect(this.grid.domNode,"mousedown",this,"_mouseDown"));this._connects.push(connect.connect(this.grid.domNode,"mouseup",this,"_mouseUp"));this._connects.push(connect.connect(this.grid.domNode,"oncontextmenu",this,"doContextMenu"));this._connects.push(connect.connect(this.grid.lastFocusNode,"onfocus",this,"doLastNodeFocus"));this._connects.push(connect.connect(this.grid.lastFocusNode,"onblur",
this,"doLastNodeBlur"));this._connects.push(connect.connect(this.grid,"_onFetchComplete",this,"_delayedCellFocus"));this._connects.push(connect.connect(this.grid,"postrender",this,"_delayedHeaderFocus"))},destroy:function(){array.forEach(this._connects,connect.disconnect);array.forEach(this._headerConnects,connect.disconnect);delete this.grid;delete this.cell},_colHeadNode:null,_colHeadFocusIdx:null,_contextMenuBindNode:null,tabbingOut:false,focusClass:"dojoxGridCellFocus",focusView:null,initFocusView:function(){this.focusView=
this.grid.views.getFirstScrollingView()||this.focusView||this.grid.views.views[0];this._initColumnHeaders()},isFocusCell:function(inCell,inRowIndex){return this.cell==inCell&&this.rowIndex==inRowIndex},isLastFocusCell:function(){if(this.cell)return this.rowIndex==this.grid.rowCount-1&&this.cell.index==this.grid.layout.cellCount-1;return false},isFirstFocusCell:function(){if(this.cell)return this.rowIndex===0&&this.cell.index===0;return false},isNoFocusCell:function(){return this.rowIndex<0||!this.cell},
isNavHeader:function(){return!!this._colHeadNode},getHeaderIndex:function(){if(this._colHeadNode)return array.indexOf(this._findHeaderCells(),this._colHeadNode);else return-1},_focusifyCellNode:function(inBork){var n=this.cell&&this.cell.getNode(this.rowIndex);if(n){html.toggleClass(n,this.focusClass,inBork);if(inBork){var sl=this.scrollIntoView();try{if(has("webkit")||!this.grid.edit.isEditing()){util.fire(n,"focus");if(sl)this.cell.view.scrollboxNode.scrollLeft=sl}}catch(e){}}}},_delayedCellFocus:function(){if(this.isNavHeader()||
!this.grid.focused)return;var n=this.cell&&this.cell.getNode(this.rowIndex);if(n)try{if(!this.grid.edit.isEditing()){html.toggleClass(n,this.focusClass,true);if(this._colHeadNode)this.blurHeader();util.fire(n,"focus")}}catch(e){}},_delayedHeaderFocus:function(){if(this.isNavHeader())this.focusHeader()},_initColumnHeaders:function(){array.forEach(this._headerConnects,connect.disconnect);this._headerConnects=[];var headers=this._findHeaderCells();for(var i=0;i<headers.length;i++){this._headerConnects.push(connect.connect(headers[i],
"onfocus",this,"doColHeaderFocus"));this._headerConnects.push(connect.connect(headers[i],"onblur",this,"doColHeaderBlur"))}},_findHeaderCells:function(){var allHeads=query("th",this.grid.viewsHeaderNode);var headers=[];for(var i=0;i<allHeads.length;i++){var aHead=allHeads[i];var hasTabIdx=html.hasAttr(aHead,"tabIndex");var tabindex=html.attr(aHead,"tabIndex");if(hasTabIdx&&tabindex<0)headers.push(aHead)}return headers},_setActiveColHeader:function(colHeaderNode,colFocusIdx,prevColFocusIdx){this.grid.domNode.setAttribute("aria-activedescendant",
colHeaderNode.id);if(prevColFocusIdx!=null&&prevColFocusIdx>=0&&prevColFocusIdx!=colFocusIdx)html.toggleClass(this._findHeaderCells()[prevColFocusIdx],this.focusClass,false);html.toggleClass(colHeaderNode,this.focusClass,true);this._colHeadNode=colHeaderNode;this._colHeadFocusIdx=colFocusIdx;this._scrollHeader(this._colHeadFocusIdx)},scrollIntoView:function(){var info=this.cell?this._scrollInfo(this.cell):null;if(!info||!info.s)return null;var rt=this.grid.scroller.findScrollTop(this.rowIndex);if(info.n&&
info.sr)if(info.n.offsetLeft+info.n.offsetWidth>info.sr.l+info.sr.w)info.s.scrollLeft=info.n.offsetLeft+info.n.offsetWidth-info.sr.w;else if(info.n.offsetLeft<info.sr.l)info.s.scrollLeft=info.n.offsetLeft;if(info.r&&info.sr)if(rt+info.r.offsetHeight>info.sr.t+info.sr.h)this.grid.setScrollTop(rt+info.r.offsetHeight-info.sr.h);else if(rt<info.sr.t)this.grid.setScrollTop(rt);return info.s.scrollLeft},_scrollInfo:function(cell,domNode){if(cell){var cl=cell,sbn=cl.view.scrollboxNode,sbnr={w:sbn.clientWidth,
l:sbn.scrollLeft,t:sbn.scrollTop,h:sbn.clientHeight},rn=cl.view.getRowNode(this.rowIndex);return{c:cl,s:sbn,sr:sbnr,n:domNode?domNode:cell.getNode(this.rowIndex),r:rn}}return null},_scrollHeader:function(currentIdx){var info=null;if(this._colHeadNode){var cell=this.grid.getCell(currentIdx);if(!cell)return;info=this._scrollInfo(cell,cell.getNode(0))}if(info&&info.s&&info.sr&&info.n){var scroll=info.sr.l+info.sr.w;if(info.n.offsetLeft+info.n.offsetWidth>scroll)info.s.scrollLeft=info.n.offsetLeft+info.n.offsetWidth-
info.sr.w;else if(info.n.offsetLeft<info.sr.l)info.s.scrollLeft=info.n.offsetLeft;else if(has("ie")<=7&&cell&&cell.view.headerNode)cell.view.headerNode.scrollLeft=info.s.scrollLeft}},_isHeaderHidden:function(){var curView=this.focusView;if(!curView)for(var i=0,cView;cView=this.grid.views.views[i];i++)if(cView.headerNode){curView=cView;break}return curView&&html.getComputedStyle(curView.headerNode).display=="none"},colSizeAdjust:function(e,colIdx,delta){var headers=this._findHeaderCells();var view=
this.focusView;if(!view||!view.header.tableMap.map)for(var i=0,cView;cView=this.grid.views.views[i];i++)if(cView.header.tableMap.map){view=cView;break}var curHeader=headers[colIdx];if(!view||colIdx==headers.length-1&&colIdx===0)return;view.content.baseDecorateEvent(e);e.cellNode=curHeader;e.cellIndex=view.content.getCellNodeIndex(e.cellNode);e.cell=e.cellIndex>=0?this.grid.getCell(e.cellIndex):null;if(view.header.canResize(e)){var deltaObj={l:delta};var drag=view.header.colResizeSetup(e,false);view.header.doResizeColumn(drag,
null,deltaObj);view.update()}},styleRow:function(inRow){return},setFocusIndex:function(inRowIndex,inCellIndex){this.setFocusCell(this.grid.getCell(inCellIndex),inRowIndex)},setFocusCell:function(inCell,inRowIndex){if(inCell&&!this.isFocusCell(inCell,inRowIndex)){this.tabbingOut=false;if(this._colHeadNode)this.blurHeader();this._colHeadNode=this._colHeadFocusIdx=null;this.focusGridView();this._focusifyCellNode(false);this.cell=inCell;this.rowIndex=inRowIndex;this._focusifyCellNode(true)}if(has("opera"))setTimeout(lang.hitch(this.grid,
"onCellFocus",this.cell,this.rowIndex),1);else this.grid.onCellFocus(this.cell,this.rowIndex)},next:function(){if(this.cell){var row=this.rowIndex,col=this.cell.index+1,cc=this.grid.layout.cellCount-1,rc=this.grid.rowCount-1;if(col>cc){col=0;row++}if(row>rc){col=cc;row=rc}if(this.grid.edit.isEditing()){var nextCell=this.grid.getCell(col);if(!this.isLastFocusCell()&&(!nextCell.editable||this.grid.canEdit&&!this.grid.canEdit(nextCell,row))){this.cell=nextCell;this.rowIndex=row;this.next();return}}this.setFocusIndex(row,
col)}},previous:function(){if(this.cell){var row=this.rowIndex||0,col=(this.cell.index||0)-1;if(col<0){col=this.grid.layout.cellCount-1;row--}if(row<0){row=0;col=0}if(this.grid.edit.isEditing()){var prevCell=this.grid.getCell(col);if(!this.isFirstFocusCell()&&!prevCell.editable){this.cell=prevCell;this.rowIndex=row;this.previous();return}}this.setFocusIndex(row,col)}},move:function(inRowDelta,inColDelta){var colDir=inColDelta<0?-1:1;if(this.isNavHeader()){var headers=this._findHeaderCells();var savedIdx=
currentIdx=array.indexOf(headers,this._colHeadNode);currentIdx+=inColDelta;while(currentIdx>=0&&currentIdx<headers.length&&headers[currentIdx].style.display=="none")currentIdx+=colDir;if(currentIdx>=0&&currentIdx<headers.length)this._setActiveColHeader(headers[currentIdx],currentIdx,savedIdx)}else if(this.cell){var sc=this.grid.scroller,r=this.rowIndex,rc=this.grid.rowCount-1,row=Math.min(rc,Math.max(0,r+inRowDelta));if(inRowDelta)if(inRowDelta>0){if(row>sc.getLastPageRow(sc.page))this.grid.setScrollTop(this.grid.scrollTop+
sc.findScrollTop(row)-sc.findScrollTop(r))}else if(inRowDelta<0)if(row<=sc.getPageRow(sc.page))this.grid.setScrollTop(this.grid.scrollTop-sc.findScrollTop(r)-sc.findScrollTop(row));var cc=this.grid.layout.cellCount-1,i=this.cell.index,col=Math.min(cc,Math.max(0,i+inColDelta));var cell=this.grid.getCell(col);while(col>=0&&col<cc&&cell&&cell.hidden===true){col+=colDir;cell=this.grid.getCell(col)}if(!cell||cell.hidden===true)col=i;var n=cell.getNode(row);if(!n&&inRowDelta){if(row+inRowDelta>=0&&row+
inRowDelta<=rc)this.move(inRowDelta>0?++inRowDelta:--inRowDelta,inColDelta);return}else if((!n||html.style(n,"display")==="none")&&inColDelta){if(col+inColDelta>=0&&col+inColDelta<=cc)this.move(inRowDelta,inColDelta>0?++inColDelta:--inColDelta);return}this.setFocusIndex(row,col);if(inRowDelta)this.grid.updateRow(r)}},previousKey:function(e){if(this.grid.edit.isEditing()){event.stop(e);this.previous()}else if(!this.isNavHeader()&&!this._isHeaderHidden()){this.grid.domNode.focus();event.stop(e)}else{this.tabOut(this.grid.domNode);
if(this._colHeadFocusIdx!=null){html.toggleClass(this._findHeaderCells()[this._colHeadFocusIdx],this.focusClass,false);this._colHeadFocusIdx=null}this._focusifyCellNode(false)}},nextKey:function(e){var isEmpty=this.grid.rowCount===0;if(e.target===this.grid.domNode&&this._colHeadFocusIdx==null){this.focusHeader();event.stop(e)}else if(this.isNavHeader()){this.blurHeader();if(!this.findAndFocusGridCell())this.tabOut(this.grid.lastFocusNode);this._colHeadNode=this._colHeadFocusIdx=null}else if(this.grid.edit.isEditing()){event.stop(e);
this.next()}else this.tabOut(this.grid.lastFocusNode)},tabOut:function(inFocusNode){this.tabbingOut=true;inFocusNode.focus()},focusGridView:function(){util.fire(this.focusView,"focus")},focusGrid:function(inSkipFocusCell){this.focusGridView();this._focusifyCellNode(true)},findAndFocusGridCell:function(){var didFocus=true;var isEmpty=this.grid.rowCount===0;if(this.isNoFocusCell()&&!isEmpty){var cellIdx=0;var cell=this.grid.getCell(cellIdx);if(cell.hidden)cellIdx=this.isNavHeader()?this._colHeadFocusIdx:
0;this.setFocusIndex(0,cellIdx)}else if(this.cell&&!isEmpty){if(this.focusView&&!this.focusView.rowNodes[this.rowIndex])this.grid.scrollToRow(this.rowIndex);this.focusGrid()}else didFocus=false;this._colHeadNode=this._colHeadFocusIdx=null;return didFocus},focusHeader:function(){var headerNodes=this._findHeaderCells();var saveColHeadFocusIdx=this._colHeadFocusIdx;if(this._isHeaderHidden())this.findAndFocusGridCell();else if(!this._colHeadFocusIdx)if(this.isNoFocusCell())this._colHeadFocusIdx=0;else this._colHeadFocusIdx=
this.cell.index;this._colHeadNode=headerNodes[this._colHeadFocusIdx];while(this._colHeadNode&&this._colHeadFocusIdx>=0&&this._colHeadFocusIdx<headerNodes.length&&this._colHeadNode.style.display=="none"){this._colHeadFocusIdx++;this._colHeadNode=headerNodes[this._colHeadFocusIdx]}if(this._colHeadNode&&this._colHeadNode.style.display!="none"){if(this.headerMenu&&this._contextMenuBindNode!=this.grid.domNode){this.headerMenu.unBindDomNode(this.grid.viewsHeaderNode);this.headerMenu.bindDomNode(this.grid.domNode);
this._contextMenuBindNode=this.grid.domNode}this._setActiveColHeader(this._colHeadNode,this._colHeadFocusIdx,saveColHeadFocusIdx);this._scrollHeader(this._colHeadFocusIdx);this._focusifyCellNode(false)}else this.findAndFocusGridCell()},blurHeader:function(){html.removeClass(this._colHeadNode,this.focusClass);html.removeAttr(this.grid.domNode,"aria-activedescendant");if(this.headerMenu&&this._contextMenuBindNode==this.grid.domNode){var viewsHeader=this.grid.viewsHeaderNode;this.headerMenu.unBindDomNode(this.grid.domNode);
this.headerMenu.bindDomNode(viewsHeader);this._contextMenuBindNode=viewsHeader}},doFocus:function(e){if(e&&e.target!=e.currentTarget){event.stop(e);return}if(this._clickFocus)return;if(!this.tabbingOut)this.focusHeader();this.tabbingOut=false;event.stop(e)},doBlur:function(e){event.stop(e)},doContextMenu:function(e){if(!this.headerMenu)event.stop(e)},doLastNodeFocus:function(e){if(this.tabbingOut)this._focusifyCellNode(false);else if(this.grid.rowCount>0){if(this.isNoFocusCell())this.setFocusIndex(0,
0);this._focusifyCellNode(true)}else this.focusHeader();this.tabbingOut=false;event.stop(e)},doLastNodeBlur:function(e){event.stop(e)},doColHeaderFocus:function(e){this._setActiveColHeader(e.target,html.attr(e.target,"idx"),this._colHeadFocusIdx);this._scrollHeader(this.getHeaderIndex());event.stop(e)},doColHeaderBlur:function(e){html.toggleClass(e.target,this.focusClass,false)},_mouseDown:function(e){this._clickFocus=dojo.some(this.grid.views.views,function(v){return v.scrollboxNode===e.target})},
_mouseUp:function(e){this._clickFocus=false}})})},"dojo/_base/array":function(){define(["./kernel","../has","./lang"],function(dojo,has,lang){var cache={},u;function buildFn(fn){return cache[fn]=new Function("item","index","array",fn)}function everyOrSome(some){var every=!some;return function(a,fn,o){var i=0,l=a&&a.length||0,result;if(l&&typeof a=="string")a=a.split("");if(typeof fn=="string")fn=cache[fn]||buildFn(fn);if(o)for(;i<l;++i){result=!fn.call(o,a[i],i,a);if(some^result)return!result}else for(;i<
l;++i){result=!fn(a[i],i,a);if(some^result)return!result}return every}}function index(up){var delta=1,lOver=0,uOver=0;if(!up)delta=lOver=uOver=-1;return function(a,x,from,last){if(last&&delta>0)return array.lastIndexOf(a,x,from);var l=a&&a.length||0,end=up?l+uOver:lOver,i;if(from===u)i=up?lOver:l+uOver;else if(from<0){i=l+from;if(i<0)i=lOver}else i=from>=l?l+uOver:from;if(l&&typeof a=="string")a=a.split("");for(;i!=end;i+=delta)if(a[i]==x)return i;return-1}}var array={every:everyOrSome(false),some:everyOrSome(true),
indexOf:index(true),lastIndexOf:index(false),forEach:function(arr,callback,thisObject){var i=0,l=arr&&arr.length||0;if(l&&typeof arr=="string")arr=arr.split("");if(typeof callback=="string")callback=cache[callback]||buildFn(callback);if(thisObject)for(;i<l;++i)callback.call(thisObject,arr[i],i,arr);else for(;i<l;++i)callback(arr[i],i,arr)},map:function(arr,callback,thisObject,Ctr){var i=0,l=arr&&arr.length||0,out=new (Ctr||Array)(l);if(l&&typeof arr=="string")arr=arr.split("");if(typeof callback==
"string")callback=cache[callback]||buildFn(callback);if(thisObject)for(;i<l;++i)out[i]=callback.call(thisObject,arr[i],i,arr);else for(;i<l;++i)out[i]=callback(arr[i],i,arr);return out},filter:function(arr,callback,thisObject){var i=0,l=arr&&arr.length||0,out=[],value;if(l&&typeof arr=="string")arr=arr.split("");if(typeof callback=="string")callback=cache[callback]||buildFn(callback);if(thisObject)for(;i<l;++i){value=arr[i];if(callback.call(thisObject,value,i,arr))out.push(value)}else for(;i<l;++i){value=
arr[i];if(callback(value,i,arr))out.push(value)}return out},clearCache:function(){cache={}}};1&&lang.mixin(dojo,array);return array})},"dijit/main":function(){define("dijit/main",["dojo/_base/kernel"],function(dojo){return dojo.dijit})},"xapp/utils/UrlSchemaUtils":function(){define("xapp/utils/UrlSchemaUtils",["dojo/has","xapp/utils","xapp/types"],function(has,utils,types){utils.isImage=function(string){return string.match(/\.(jpeg|jpg|gif|png)$/)!=null};utils.cleanUrl=function(string){if(string){string=
string.replace("//","/");string=string.replace("./","/");string=string.replace("http:/","http://");string=string.replace("./","/");string=string.replace("XApp-portletxasweb","XApp-portlet/xasweb");string=string.replace("XApp-portletutils","XApp-portlet/utils");string=string.replace("/XApp-portlet/CMAC/","/CMAC/");string=string.replace("////","/");string=string.replace("///","/");return string}return string};utils._extractJId=function(_id){if(_id){var _idSplit=_id.split(":");if(_idSplit&&_idSplit.length>
1)return _idSplit[0]}return _id};utils.fromJoomlaComponents=function(params){var dsType=types.sourceType.Unknown;var dsUID=null;var isCustomType=false;var dsRef=null;if(params.baseRef&&ctx){var ds=ctx.getDataSourceManager().getDataSourceByUrl(params.baseRef);if(ds)dsUID=utils.toString(ds.uid)}if(params.option==="com_content"){if(params.view==="category")dsType=types.sourceType.JoomlaCategory;if(params.view==="article"){dsType=types.sourceType.JoomlaArticle;dsRef=utils._extractJId(params.id)}}if(params.option===
"com_easyblog"){isCustomType=true;if(params.view==="categories")dsType="ebCategory";if(params.view==="entry")dsType="ebPostDetail"}if(params.option==="com_k2"){isCustomType=true;if(params.view==="itemlist")dsType="k2cat";if(params.view==="item"){dsType="k2ItemDetail";dsRef=utils._extractJId(params.id)}}return{dsUid:dsUID,dsType:dsType,dsRef:dsRef||params.id,dsRefStart:0,isExternal:true,isExternalService:true,isCustomType:isCustomType}};utils.toInternalDSURL=function(dsParams){if(!isNaN(dsParams.dsType)){if(dsParams.dsType!=
types.sourceType.Unknown)return"tt://dsUrl/"+dsParams.dsUid+"/"+dsParams.dsType+"/"+dsParams.dsRef+"/0"}else return"tt://dsUrl/"+dsParams.dsUid+"/"+dsParams.dsType+"/"+dsParams.dsRef+"/0";return null};utils.convertExtDSParamsToDSUrl=function(string){if(!string)return null;var _params=utils.urlDecode(string);var _dsParams=utils.fromJoomlaComponents(_params);if(_dsParams){var url=utils.toInternalDSURL(_dsParams);if(url)return url}return null};utils.urlDecode=function(string,overwrite){if(!string||!string.length)return{};
var obj={};var pairs=string.split("\x26");var pair,name,value;for(var i=0,len=pairs.length;i<len;i++){pair=pairs[i].split("\x3d");name=decodeURIComponent(pair[0]);value=decodeURIComponent(pair[1]);if(value!=null&&value==="true")value=true;else if(value==="false")value=false;if(overwrite!==true)if(typeof obj[name]=="undefined")obj[name]=value;else if(typeof obj[name]=="string"){obj[name]=[obj[name]];obj[name].push(value)}else obj[name].push(value);else obj[name]=value}return obj};utils.toDSUrl=function(dsuid,
sourceType,dataRef){var appId="";if(ctx!=null)appId=ctx.getSession().getAppId();else if(sctx!=null)appId=sctx.getSession().getAppId();return appId+"://dsUrl/"+dsuid+"/"+sourceType+"/"+dataRef};utils.extractParametersFromDataCI=function(dataCI){var _typeInt=utils.toInt(dataCI.value);var _typeStr=utils.toString(dataCI.value);var _dsUID=utils.toString(dataCI.dataSource);if(_dsUID==null||_dsUID.length==0)_dsUID="notset";return{dsUid:_dsUID,dsType:isNaN(_typeInt)?_typeStr:_typeInt,dsRef:utils.toString(dataCI.dataRef),
dsRefStart:0,isExternal:true,isExternalService:true,isCustomType:isNaN(_typeInt)}};utils.extractParametersFromDSUrl=function(url){if(!url)return null;if(url&&url.indexOf("action\x3dgetApplication")!=-1)return null;var splitted=[];splitted=url.split("/");if(splitted.length==2)return{dsUid:null,dsType:splitted[0],dsRef:splitted[1],dsRefStart:0,isExternal:true,isExternalService:true,isCustomType:isNaN(splitted[0])};if(isNaN(splitted[1])&&(splitted.length==3||splitted.length==4))return{dsUid:splitted[0],
dsType:splitted[1],dsRef:splitted[2],dsRefStart:splitted.length==4?splitted[2]:null,isExternal:false,isExternalService:true,isCustomType:isNaN(splitted[1])};if(splitted.length==4){var dsUid=splitted[0];var dsType=parseInt(splitted[1]);var dsRef=splitted[2];var dsRefStart=splitted[3];if(dsUid!=null&&dsType>0&&dsRef!=null){var isExternal=true;if(dsType==types.sourceType.MAP||dsType==types.sourceType.DISQUS)isExternal=false;isExternalService=false;if(dsType==types.sourceType.TWITTER_SERVICE)isExternalService=
true;return{dsUid:dsUid,dsType:dsType,dsRef:dsRef,dsRefStart:dsRefStart,isExternal:isExternal,isExternalService:isExternalService,isCustomType:isNaN(dsType)}}}if(splitted.length==5){var dsUid=splitted[0];var dsType=parseInt(splitted[1]);var dsRef=splitted[2];var dsRefStart=splitted[3];if(dsUid!=null&&dsType>0&&dsRef!=null){var isExternal=true;if(dsType==types.sourceType.MAP||dsType==types.sourceType.DISQUS)isExternal=false;isExternalService=false;if(dsType==types.sourceType.TWITTER_SERVICE)isExternalService=
true;return{dsUid:dsUid,dsType:dsType,dsRef:dsRef,dsRefStart:dsRefStart,isExternal:isExternal,isExternalService:isExternalService,isCustomType:isNaN(dsType)}}}if(splitted.length==6){var dsType=parseInt(splitted[3]);var isExternal=true;if(!isNaN(dsType)&&(dsType==types.sourceType.MAP||dsType==types.sourceType.DISQUS))isExternal=false;var isExternalService=false;var dsUid=splitted[2];var dsRef=splitted[4];var dsRefStart=splitted[5];if(dsUid!=null&&dsRef!=null)return{dsUid:dsUid,dsType:isNaN(dsType)?
splitted[3]:dsType,dsRef:dsRef,dsRefStart:dsRefStart,isExternal:isExternal,isExternalService:isExternalService,isCustomType:isNaN(dsType)}}return null};utils.isTwitterServiceUrl=function(url){return url.indexOf("twitter.com/statuses")!=1&&url.indexOf(".json")!=-1};utils.removeAppPrexix=function(url){var result=url;result=result.replace("tt://pictureView/","");result=result.replace("tt://pictureGallery/","");result=result.replace("tt://articleCategory/","");result=result.replace("tt://articleSection/",
"");result=result.replace("tt://jArticle/","");result=result.replace("tt://eventItem/","");result=result.replace("tt://events/","");result=result.replace("tt://rss/","");result=result.replace("tt://picassaAlbum/","");result=result.replace("tt://locationCategory/","");result=result.replace("tt://rssItem/","");result=result.replace("tt://tabbedHelperLocation/","");result=result.replace("tt://wpCategory/","");result=result.replace("tt://wpPost/","");result=result.replace("tt://vmCategory/","");result=
result.replace("tt://vmProduct/","");result=result.replace("tt://map/","");result=result.replace("tt://disqus/","");result=result.replace("tt://external/","");result=result.replace("tt://breezingForm/","");result=result.replace("tt://mosetCategory/","");result=result.replace("tt://mosetItem/","");result=result.replace("tt://radio/","");result=result.replace("tt://dsUrl/","");result=result.replace("tt://phone/","");result=result.replace("tt://content/","");result=result.replace("tt://location/","");
result=result.replace("tt://content/","");result=result.replace("tt://file/","");result=result.replace("tt://contentCategory/","");result=result.replace("tt://venue/","");result=result.replace("tt://venueCategory/","");return result};utils.getDSTypeByString=function(url){if(url==null)return types.sourceType.Unknown;var splitted=url.split("/");var sTypes=types.sourceType;switch(splitted[2]){case "radio":return sTypes.RADIO;case "breezingForm":return sTypes.BreezingForm;case "pictureGallery":return sTypes.GALLERY;
case "pictureView":return sTypes.PICTURE;case "rssItem":return sTypes.RSS_ITEM;case "rss":return sTypes.RSS;case "jArticle":return sTypes.JoomlaArticle;case "articleCategory":return sTypes.JoomlaCategory;case "articleSection":return sTypes.JoomlaSection;case "tabbedHelperLocation":return sTypes.JEventsLocationItem;case "events":return sTypes.JEventsCalendarToday;case "eventItem":return sTypes.JEventsItem;case "locationCategory":return sTypes.JEventsLocationCategory;case "openLangDialog":return sTypes.SourceTypeEnd;
case "search":return sTypes.SourceTypeEnd;case "mosetCategory":return sTypes.MosetTreeCategory;case "mosetItem":return sTypes.MosetTreeItem;case "wpCategory":return sTypes.WordpressCategory;case "wpPost":return sTypes.WordpressPost;case "picassaAlbum":return sTypes.GooglePicassaAlbum;case "picassaItem":return sTypes.GooglePicassaItem;case "contentCategory":return sTypes.StaticWebContentCategory;case "venueCategory":return sTypes.StaticWebContentVenueCategory;case "vmCategory":return sTypes.VMartCategory;
case "vmProduct":return sTypes.VMartProductItem;case "jBannerCategory":return sTypes.JoomlaBannerCategory;case "jBannerItem":return sTypes.JoomlaBannerItem;case "file":return sTypes.FILE;case "content":return sTypes.StaticWebContent;case "venue":return sTypes.StaticWebContentVenue}if(url.indexOf("www")!=-1||url.indexOf("http://")!=-1)return sTypes.SourceTypeEnd;return sTypes.SourceTypeEnd};utils.getUrlTypeByString=function(url){var splitted=url.split("/");var sTypes=types.UrlType;switch(splitted[2]){case "pictureGallery":return sTypes.PICTURE_GALLERY;
case "pictureView":return sTypes.PICTURE_VIEW;case "rssItem":return sTypes.RSS_ITEM;case "rss":return sTypes.RSS;case "jArticle":return sTypes.JARTICLE;case "articleCategory":return sTypes.ARTICLE_CATEGORY;case "articleSection":return sTypes.ARTICLE_SECTION;case "tabbedHelperLocation":return sTypes.JLOCATION;case "events":return sTypes.EVENTS;case "eventItem":return sTypes.EVENTS;case "locationCategory":return sTypes.LOCATION_CATEGORY;case "openLangDialog":return sTypes.LANG_DIALOG;case "search":return sTypes.SEARCH_DIALOG;
case "mosetCategory":return sTypes.MOSET_CATEGORY;case "wpCategory":return sTypes.WORDPRESS_CATEGORY;case "wpPost":return sTypes.WORDPRESS_POST;case "picassaAlbum":return sTypes.PICASSA_ALBUM;case "picassaItem":return sTypes.PICASSA_ITEM;case "content":return sTypes.STATIC_CONTENT;case "contentCategory":return sTypes.STATIC_CONTENT_CATEGORY}if(url.indexOf("www")!=-1||url.indexOf("http://")!=-1)return sTypes.EXTERNAL;return sTypes.JUNKNOWN};utils.getServiceUrlByCIEnumType=function(enumType,refId){switch(enumType){case types.sourceType.JoomlaSection:return"articles?action\x3dsectionList\x26refId\x3d"+
refId;case types.sourceType.JoomlaCategory:return"articles?action\x3dlist\x26refId\x3d"+refId}};utils.getExternalUrlPrefixForContentType=function(cType,refId){switch(cType){case types.sourceType.MosetTreeItem:return"index.php?option\x3dcom_mtree\x26link_id\x3d"+refId+"\x26task\x3dviewlink";case types.sourceType.MosetTreeCategory:return"index.php?option\x3dcom_mtree\x26cat_id\x3d"+refId;case types.sourceType.JoomlaBannerCategory:return"banner";case types.sourceType.RADIO:return"radio"+refId;case types.sourceType.PHONE:return"tel://"+
refId;case types.sourceType.MAP:return"map";case types.sourceType.PICTURE:return"pictureView";case types.sourceType.GALLERY:return"pictureGallery";case types.sourceType.GooglePicassaAlbum:return""+refId;case types.sourceType.JEventsLocationCategory:return"locationCategory";case types.sourceType.JEventsLocationItem:return"index.php?option\x3dcom_jevlocations\x26task\x3dlocations.detail\x26loc_id\x3d"+refId;case types.sourceType.RSS_ITEM:return"rssItem";case types.sourceType.JoomlaSection:return"articleSection";
case types.sourceType.JoomlaCategory:return"index.php?option\x3dcom_content\x26view\x3dcategory\x26layout\x3dblog\x26id\x3d"+refId;case types.sourceType.JoomlaArticle:return"index.php?option\x3dcom_content\x26view\x3darticle\x26id\x3d"+refId;case types.sourceType.JEventsItem:return"index.php?option\x3dcom_jevents\x26task\x3dicalrepeat.detail\x26evid\x3d"+refId;case types.sourceType.JEventsCalendarToday:return"index.php?option\x3dcom_jevents\x26view\x3dday\x26task\x3dday.listevents";case types.sourceType.JEventsCalendarWeek:return"index.php?option\x3dcom_jevents\x26view\x3dmonth\x26task\x3dmonth.calendar";
case types.sourceType.RSS:return"rss";case types.sourceType.WordpressCategory:return"category/"+refId;case types.sourceType.WordpressPost:return"?p\x3d"+refId;case types.sourceType.WordpressPage:return"wpPage";case types.sourceType.StaticWebContent:return"content";case types.sourceType.StaticWebContentVenue:return"venue";case types.sourceType.StaticWebContentCategory:return"contentCategory";case types.sourceType.StaticWebContentVenueCategory:return"venueCategory";case types.sourceType.VMartCategory:return"index.php?option\x3dcom_virtuemart\x26view\x3dcategory\x26virtuemart_category_id\x3d"+
refId;case types.sourceType.VMartProductItem:return"index.php?option\x3dcom_virtuemart\x26view\x3dproductdetails\x26virtuemart_product_id\x3d"+refId;case types.sourceType.ExternalLink:return"external";case types.sourceType.FILE:return"file"}return types.sourceType.ExternalLink};utils.getUrlPrefixByDSType=function(dataSourceType){var dsTypeInt=parseInt(dataSourceType);var sTypes=types.sourceType;switch(dsTypeInt){case sTypes.RADIO:return"radio";case sTypes.BreezingForm:return"breezingForm";case sTypes.DISQUS:return"disqus";
case sTypes.PHONE:return"phone";case sTypes.MAP:return"map";case sTypes.PICTURE:return"pictureView";case sTypes.GALLERY:return"pictureGallery";case sTypes.JEventsLocationItem:return"tabbedHelperLocation";case sTypes.GooglePicassaAlbum:return"picassaAlbum";case sTypes.JEventsLocationCategory:return"locationCategory";case sTypes.RSS_ITEM:return"rssItem";case sTypes.JoomlaSection:return"articleSection";case sTypes.JoomlaCategory:return"articleCategory";case sTypes.MosetTreeCategory:return"mosetCategory";
case sTypes.MosetTreeItem:return"mosetItem";case sTypes.JoomlaArticle:return"jArticle";case sTypes.JEventsItem:return"eventItem";case sTypes.JEventsCalendarToday:case sTypes.JEventsCalendarWeek:return"events";case sTypes.RSS:return"rss";case sTypes.WordpressCategory:return"wpCategory";case sTypes.WordpressPost:return"wpPost";case sTypes.WordpressPage:return"wpPage";case sTypes.StaticWebContent:return"content";case sTypes.StaticWebContentVenue:return"venue";case sTypes.StaticWebContentCategory:return"contentCategory";
case sTypes.StaticWebContentVenueCategory:return"venueCategory";case sTypes.VMartCategory:return"vmCategory";case sTypes.VMartProductItem:return"vmProduct";case sTypes.ExternalLink:return"external";case sTypes.FILE:return"file"}return""+dataSourceType};utils.getUrlSchemaByUrlType=function(urlType){switch(urlType){case types.UrlType.PICTURE_VIEW:return"pictureView";case types.UrlType.PICTURE_GALLERY:return"pictureGallery";case types.UrlType.JLOCATION:return"tabbedHelperLocation";case types.UrlType.PICASSA_ALBUM:return"picassaAlbum";
case types.UrlType.LOCATION_CATEGORY:return"locationCategory";case types.UrlType.RSS_ITEM:return"rssItem";case types.UrlType.ARTICLE_SECTION:return"articleSection";case types.UrlType.ARTICLE_CATEGORY:return"articleCategory";case types.UrlType.MOSET_CATEGORY:return"mosetCategory";case types.UrlType.JARTICLE:return"jArticle";case types.UrlType.EVENTS:return"events";case types.UrlType.RSS:return"rss";case types.UrlType.WORDPRESS_CATEGORY:return"wpCategory";case types.UrlType.WORDPRESS_POST:return"wpPost";
case types.UrlType.WORDPRESS_PAGE:return"wpPage";case types.UrlType.STATIC_CONTENT:return"content";case types.UrlType.STATIC_CONTENT_CATEGORY:return"contentCategory"}return null};utils.getUrlByContentParameters=function(dataSourceUid,dataRef,dataSourceType){var dsType=parseInt(dataSourceType);if(dataSourceUid!=null)if(!isNaN(dsType))switch(dsType){case types.sourceType.GoogleDocumentFolder:case types.sourceType.GoogleCalendar:return"tt://dsUrl/"+dataSourceUid+"/"+dataSourceType+"/"+dataRef+"/0"}else return"tt://dsUrl/"+
dataSourceUid+"/"+dataSourceType+"/"+dataRef;return"tt://"+utils.getUrlPrefixByDSType(dataSourceType)+"/"+dataRef};utils.getUrlByContentSourceCI=function(contentSourceCI){var dataSourceType=utils.toString(contentSourceCI.value);var dataRef=utils.toString(contentSourceCI.dataRef);var dataSourceUid=utils.toString(contentSourceCI.dataSource);var dsType=parseInt(dataSourceType);var isNan=utils.isNaN(dsType);var sTypes=types.sourceType;if(!isNan){switch(dsType){case sTypes.RADIO:case sTypes.PHONE:case sTypes.ExternalLink:case sTypes.RSS:case sTypes.FILE:case sTypes.VIDEO:case sTypes.MAP:case sTypes.TEXT:case sTypes.GALLERY:case sTypes.PICTURE:return"tt://"+
utils.getUrlPrefixByDSType(dataSourceType)+"/"+dataRef}if(dataSourceUid!=null)return"tt://dsUrl/"+dataSourceUid+"/"+dataSourceType+"/"+dataRef+"/0"}if(isNan)return"tt://dsUrl/"+dataSourceUid+"/"+dataSourceType+"/"+dataRef;return"tt://"+utils.getUrlPrefixByDSType(dataSourceType)+"/"+dataRef};utils.getContentSourceTypeByUrlType=function(type){var sTypes=types.UrlType;switch(type){case sTypes.JARTICLE:return types.sourceType.JoomlaArticle;case sTypes.ARTICLE_CATEGORY:return types.sourceType.JoomlaCategory;
case sTypes.ARTICLE_SECTION:return types.sourceType.JoomlaSection;case sTypes.RSS:return types.sourceType.RSS;case sTypes.WORDPRESS_CATEGORY:return types.sourceType.WordpressCategory;case sTypes.WORDPRESS_POST:return types.sourceType.WordpressPost;case sTypes.WORDPRESS_PAGE:return types.sourceType.WordpressPage;case sTypes.PICASSA_ALBUM:return types.sourceType.GooglePicassaAlbum;case sTypes.PICASSA_ITEM:return types.sourceType.GooglePicassaItem;case sTypes.STATIC_CONTENT:return types.sourceType.StaticWebContent;
case sTypes.STATIC_CONTENT_CATEGORY:return types.sourceType.StaticWebContentCategory;case sTypes.EVENTS:return types.sourceType.JEventsCalendarToday;case sTypes.JLOCATION:return types.sourceType.JEventsLocationItem;case sTypes.EVENT_DETAIL:break;case sTypes.LOCATION_CATEGORY:return types.sourceType.JEventsLocationCategory}};utils.getUrlTypeByContentSourceType=function(enumType){enumType=parseInt(enumType);var sTypes=types.sourceType;switch(enumType){case sTypes.JEventsLocationItem:return types.UrlType.JLOCATION;
case sTypes.JoomlaArticle:return types.UrlType.JARTICLE;case sTypes.JoomlaSection:return types.UrlType.ARTICLE_SECTION;case sTypes.JoomlaCategory:return types.UrlType.ARTICLE_CATEGORY;case sTypes.JEventsCalendarWeek:case sTypes.JEventsCalendarToday:return types.UrlType.EVENTS;case sTypes.JEventsLocationCategory:return types.UrlType.LOCATION_CATEGORY;case sTypes.MosetTreeCategory:return types.UrlType.MOSET_CATEGORY;case sTypes.ExternalLink:return types.UrlType.EXTERNAL;case sTypes.RSS:return types.UrlType.RSS;
case sTypes.WordpressCategory:return types.UrlType.WORDPRESS_CATEGORY;case sTypes.WordpressPost:return types.UrlType.WORDPRESS_POST;case sTypes.WordpressPage:return types.UrlType.WORDPRESS_PAGE;case sTypes.GooglePicassaAlbum:return types.UrlType.PICASSA_ALBUM;case sTypes.GooglePicassaItem:return types.UrlType.PICASSA_ITEM;case sTypes.StaticWebContent:return types.UrlType.STATIC_CONTENT;case sTypes.StaticWebContentCategory:return types.UrlType.STATIC_CONTENT_CATEGORY}return types.UrlType.JUNKNOWN};
utils.getDSUrlShortByData=function(data){var sourceType=data.sourceType;var _ref=utils.isValidString(data.ref)?data.ref:data.refId;if(_ref==null&&sourceType==null)return null;var _refIdStr=data.refIdStr&&data.refIdStr.length>0?data.refIdStr:null;if(_refIdStr)_ref=_refIdStr;var sTypes=types.sourceType;if(sourceType!=null)if(sourceType==sTypes.MAP||sourceType==sTypes.ExternalLink||sourceType==sTypes.FILE||sourceType==sTypes.DISQUS)if(data.value)_ref=data.value;var res="tt://dsUrl/"+data.dataSource+
"/"+sourceType+"/"+_ref;res+="/0";return res};utils.getDSParamsByData=function(data){if(!data)return null;var sourceType=data.sourceType;var _ref=utils.isValidString(data.ref)?data.ref:data.refId;if(_ref==null&&sourceType==null)return null;var _refIdStr=data.refIdStr&&data.refIdStr.length>0?data.refIdStr:null;if(_refIdStr)_ref=_refIdStr;return{dsUid:data.dataSource,dsType:sourceType,dsRef:_ref}};utils.getUrlByData=function(data){if(!data){if(has("debug"))console.error("haveno data");return null}if(utils.isValidString(data.dsUrl))return data.dsUrl;
if(utils.isValidString(data.dataSource))return utils.getDSUrlShortByData(data);var sourceType=data.sourceType;var _ref=data.ref&&data.ref.length>0?data.ref:data.refId;if(_ref==null&&sourceType==null)return null;if(sourceType!=null){var sTypes=types.sourceType;if(sourceType==sTypes.MAP||sourceType==sTypes.ExternalLink||sourceType==sTypes.FILE||sourceType==sTypes.PHONE||sourceType==sTypes.RADIO||sourceType==sTypes.DISQUS)if(data.value)_ref=data.value}var _dsType=utils.getUrlTypeByData(data);var result=
"tt://"+utils.getUrlPrefixByDSType(_dsType)+"/"+_ref;return result};utils.getUrlTypeByData=function(data){var _dataClass=data["class"];var sourceType=null;try{sourceType=parseInt(data.sourceType)}catch(e){sourceType=null}if(!isNaN(sourceType)&&sourceType!=null)return sourceType;var result="";var uTypes=types.UrlType;if(_dataClass=="pmedia.types.CListItem")result=data.dataClass;if(_dataClass=="pmedia.types.ArticleCategory")result=uTypes.ARTICLE_CATEGORY;if(_dataClass=="pmedia.types.ArticleCategory")result=
uTypes.ARTICLE_CATEGORY;if(_dataClass=="pmedia.types.CFeedItem")result=uTypes.RSS_ITEM;if(_dataClass=="pmedia.types.ArticleData")result=uTypes.JARTICLE;return result};utils.getServiceUrlByDSType=function(type,refId){var sTypes=types.sourceType;if(type==sTypes.TWITTER_SERVICE)return refId;var baseUrl=ctx.getSession().getBaseURL()+ctx.getSession().servletContextName()+"/";type=parseInt(type);if(!isNaN(type))switch(type){case sTypes.JoomlaBannerCategory:return baseUrl+"banner?action\x3dlist\x26refId\x3d"+
refId+"\x26cType\x3d"+type;case sTypes.MosetTreeCategory:return baseUrl+"moset?action\x3dlist\x26refId\x3d"+refId;case sTypes.MosetTreeItem:return baseUrl+"moset?action\x3dcontent\x26refId\x3d"+refId;case sTypes.BreezingForm:return baseUrl+"forms?action\x3dget\x26refId\x3d"+refId;case sTypes.JoomlaArticle:return baseUrl+"articles?action\x3dcontent\x26refId\x3d"+refId+"\x26type\x3d9";case sTypes.JoomlaSection:return baseUrl+"articles?action\x3dsectionList\x26refId\x3d"+refId;case sTypes.JoomlaCategory:return baseUrl+
"articles?action\x3dlist\x26refId\x3d"+refId;case sTypes.JEventsCalendarWeek:case sTypes.JEventsCalendarToday:return baseUrl+"events?action\x3dlist\x26cat\x3d"+refId;case sTypes.JEventsLocationItem:return baseUrl+"locations?action\x3dcontent\x26refId\x3d"+refId;case sTypes.JEventsItem:return baseUrl+"events?action\x3dcontent\x26refId\x3d"+refId;case sTypes.JEventsLocationCategory:return baseUrl+"locations?action\x3dlist\x26refId\x3d"+refId;case sTypes.RSS:return baseUrl+"rss?action\x3dlist\x26ref\x3d"+
encodeURIComponent(refId);case sTypes.WordpressCategory:return baseUrl+"wordpress?action\x3dlist\x26refId\x3d"+refId;case sTypes.WordpressPost:return baseUrl+"wordpress?action\x3ddetail\x26refId\x3d"+refId;case sTypes.GooglePicassaAlbum:return baseUrl+"google?action\x3dalbum\x26ref\x3d"+refId;case sTypes.GoogleCalendar:return baseUrl+"google?action\x3dcalendar\x26ref\x3d"+refId;case sTypes.GoogleCalendarItem:return baseUrl+"google?action\x3devent\x26ref\x3d"+refId;case sTypes.GoogleDocumentFolder:return baseUrl+
"google?action\x3dfolder\x26ref\x3d"+refId;case sTypes.GoogleDocumentItem:return baseUrl+"google?action\x3ddocument\x26ref\x3d"+refId;case sTypes.GooglePicassaItem:return baseUrl+"google?action\x3ditem\x26refId\x3d"+refId;case sTypes.StaticWebContent:return baseUrl+"content?action\x3ddetail\x26refId\x3d"+refId+"\x26cType\x3d"+type;case sTypes.StaticWebContentVenue:return baseUrl+"content?action\x3ddetail\x26refId\x3d"+refId+"\x26cType\x3d"+type;case sTypes.StaticWebContentCategory:return baseUrl+
"content?action\x3dlist\x26refId\x3d"+refId;case sTypes.StaticWebContentVenueCategory:return baseUrl+"venue?action\x3dlist\x26refId\x3d"+refId;case sTypes.VMartCategory:return baseUrl+"products?action\x3dlist\x26refId\x3d"+refId;case sTypes.VMartProductItem:return baseUrl+"products?action\x3dcontent\x26refId\x3d"+refId;case types.UrlType.SEARCH_DIALOG:return baseUrl+""}return null};return utils})},"dijit/Destroyable":function(){define("dijit/Destroyable",["dojo/_base/array","dojo/aspect","dojo/_base/declare"],
function(array,aspect,declare){return declare("dijit.Destroyable",null,{destroy:function(preserveDom){this._destroyed=true},own:function(){array.forEach(arguments,function(handle){var destroyMethodName="destroyRecursive"in handle?"destroyRecursive":"destroy"in handle?"destroy":"remove";var odh=aspect.before(this,"destroy",function(preserveDom){handle[destroyMethodName](preserveDom)});var hdh=aspect.after(handle,destroyMethodName,function(){odh.remove();hdh.remove()},true)},this);return arguments}})})},
"xide/factory":function(){define(["dojo/_base/declare"],function(declare){return declare("xide.factory",null,{})})},"xfile/views/EditorPluginMixin":function(){define("xfile/views/EditorPluginMixin",["dojo/_base/declare","dojo/_base/lang","dojo/dom-class","xide/utils/StringUtils","xapp/factory/Events","dijit/MenuSeparator","xide/types"],function(declare,lang,domClass,utils,eventFactory,MenuSeparator,types){var editorMixin=declare("xfile.views.EditorPluginMixin",null,{delegate:null,editors:null,startup:function(){this.inherited(arguments);
eventFactory.subscribe(types.EVENTS.REGISTER_EDITOR,function(data){xfile.views.EditorPluginMixin.onRegisterEditor(data)},this)}});editorMixin.editors=[];editorMixin.getExtension=function(fname){if(fname!=null)return fname.substr((~-fname.lastIndexOf(".")>>>0)+2);return""};editorMixin._hasEditor=function(name){for(var i=0;i<editorMixin.editors.length;i++)if(editorMixin.editors[i].name===name)return true;return false};editorMixin.onRegisterEditor=function(eventData){if(!editorMixin._hasEditor(eventData.name))editorMixin.editors.push(eventData)};
editorMixin.getEditors=function(item){var extension=editorMixin.getExtension(item.path);if(extension!=null&&extension.length==0)return null;var result=[];if(!editorMixin.editors)return null;for(var i=0;i<editorMixin.editors.length;i++){var editor=editorMixin.editors[i];if(editor)if(editor.extensions.indexOf(extension)!=-1)result.push(editor)}if(result.length>0)return result;return null};return editorMixin})},"xide/widgets/ExpressionEditor":function(){define(["dojo/_base/array","dojo/_base/declare",
"dojo/_base/html","dojo/on","dojo/_base/lang","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","xide/views/MainView","xide/types","xide/factory","xide/utils","xide/views/ToggleSplitter","xide/widgets/MainMenu","xide/widgets/ActionToolbar","xide/widgets/WidgetBase","xide/views/TextEditor","dojo/keys","dojo/store/Memory","dojo/store/Observable","dijit/tree/ObjectStoreModel","./ExpressionsGridView","./ExpressionJavaScript","dijit/Tree"],function(array,declare,html,on,lang,domClass,domGeometry,domStyle,
MainView,types,factory,utils,ToggleSplitter,MainMenu,ActionToolbar,WidgetBase,TextEditor,keys,Memory,Observable,ObjectStoreModel,ExpressionsGridView,ExpressionJavaScript,Tree){return declare("xide.widgets.ExpressionEditor",[WidgetBase,ExpressionJavaScript],{mainMenu:null,aceNode:null,aceEditor:null,minHeight:"500px",minWidth:"600px",helpContainer:null,autoCompleterWords:null,apiStore:null,templateString:"\x3cdiv style\x3d'height: inherit;'\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutMain' data-dojo-type\x3d'xide.layout.BorderContainer' data-dojo-props\x3d\"design:'headline'\" class\x3d'layoutMain' style\x3d'height:${!minHeight}'\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'layoutTop' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'top',splitter:'true'\" class\x3d'layoutTop ui-state-default'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutLeft' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'leading',splitter:'true'\" class\x3d'layoutLeft' style\x3d'width: 170px;padding:0px;'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'layoutCenter' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'center',splitter:'false'\" class\x3d'layoutCenter' style\x3d'padding: 0px'\x3e\x3c/div\x3e"+
"\x3cdiv data-dojo-attach-point\x3d'layoutBottom' data-dojo-type\x3d'xide.layout.ContentPane' data-dojo-props\x3d\"region:'bottom',splitter:'true',toggleSplitterState:'full',toggleSplitterClosedSize:'0px',toggleSplitterFullSize:'150px'\" class\x3d'layoutBottom ui-state-default'\x3e\x3cdiv data-dojo-attach-point\x3d'helpContainer' style\x3d'height: 80px;'\x3e\x3c/div\x3e\x3c/div\x3e"+"\x3c/div\x3e"+"\x3c/div\x3e",getValue:function(){if(this.aceEditor)return this.aceEditor.get("value");return this.inherited(arguments)},
addAutoCompleterWord:function(text,help){if(!this.autoCompleterWords)this.autoCompleterWords=[];this.autoCompleterWords.push({word:text,value:text,meta:help||""})},initMainMenu:function(){this.mainMenu=utils.addWidget(MainMenu,{},this,this.layoutTop.containerNode,true)},insertSymbol:function(val,isFunction){if(this.aceEditor){this.aceEditor.get("value");var editor=this.aceEditor.getEditor();var selection=editor.getSelectedText();if(selection&&selection.length>0)if(isFunction&&val.indexOf("(")==-1)val=
val+"("+selection+")";else val=" "+val+" ";editor.insert(val)}},showDocumentation:function(text){dojo.empty(this.helpContainer);var help=dojo.create("div",{innerHTML:"",className:"ui-widget"});this.helpContainer.appendChild(help);var textText=dojo.create("span",{innerHTML:text,className:"ui-content"});help.appendChild(textText)},_createSymbol:function(label,value){var thiz=this;return{name:"Call Command",owner:this,icon:"-",title:"Equals",style:"float:left;font-size:12px",label:label,extraClass:"blockExpressionSymbolButton",
handler:function(){thiz.insertSymbol(value||label,false)}}},runExpression:function(){if(this.userData.delegate&&this.userData.delegate.runExpression){var thiz=this;var _showText=function(text){dojo.empty(thiz.helpContainer);text=text.replace("return","");var help=dojo.create("div",{innerHTML:"",className:"ui-widget"});thiz.helpContainer.appendChild(help);var textText=dojo.create("span",{innerHTML:text,className:"ui-content"});help.appendChild(textText)};var _error=function(text,e){_showText(text)};
var _run=function(text,e){_showText(text)};var expression=this.getValue();var result=this.userData.delegate.runExpression(expression,_run,_error)}},initToolbar:function(){this.toolbar=utils.addWidget(ActionToolbar,{delegate:this,useElusive:false,style:"display:block;height:23px;left:43px;position:absolute;bottom:3px;"},this,this.layoutTop.containerNode,true);var thiz=this;var actions=[];actions=actions.concat([{title:"Play",icon:"el-icon-play",place:"first",emit:false,extraClass:"blockExpressionSymbolButton",
elusive:true,style:"float:left;font-size:12px",handler:function(){thiz.runExpression()}},this._createSymbol("+"),this._createSymbol("-"),this._createSymbol("*"),this._createSymbol("/"),this._createSymbol("\x3d","\x3d\x3d"),this._createSymbol("\x3c"),this._createSymbol("\x3c\x3d"),this._createSymbol("\x3e"),this._createSymbol("\x3e\x3d"),this._createSymbol(" "),this._createSymbol("%"),this._createSymbol("AND","\x26\x26"),this._createSymbol("OR","||"),this._createSymbol("XOR","^"),this._createSymbol("NOT",
"~")]);this.toolbar.clear();if(actions&&actions.length>0)this.toolbar.addActions(actions,this,[])},createBranch:function(name,where){var branch={name:name,group:"top",children:[],value:null};where.push(branch);return branch},createAPIStore:function(){var sdata={identifier:"_id",label:"level",items:this.api};var store=Observable(Memory({data:sdata}))},createLeaf:function(label,value,parent,help,isFunction,where){var leaf={name:label,group:"leaf",value:value,parent:parent,help:help,isFunction:isFunction!=
null?isFunction:true};this.addAutoCompleterWord(value,help);if(where)where.children.push({_reference:label});return leaf},apiItemToLeaf:function(item){var result={}},getAPIField:function(item,title){for(var i=0;i<item.sectionHTMLs.length;i++){var obj=item.sectionHTMLs[i];if(obj.indexOf('id \x3d "'+title+'"')!=-1)return obj}return""},insertApiItems:function(startString,dst,where){var result=[];for(var i=0;i<this.api.length;i++){var item=this.api[i];if(item.title.indexOf(startString)!=-1){var leafData=
this.apiItemToLeaf(item);var title=item.title.replace(startString,"");var description=this.getAPIField(item,"Description");var parameters=this.getAPIField(item,"Parameters");var examples=this.getAPIField(item,"Examples");var syntax=this.getAPIField(item,"Syntax");description=description+"\x3c/br\x3e"+parameters+"\x3cbr/\x3e"+examples;syntax=utils.strip_tags(syntax);syntax=syntax.replace("Syntax","");syntax=utils.replaceAll("\n","",syntax);syntax=utils.replaceAll("\r","",syntax);where.push(this.createLeaf(title,
syntax,startString.replace(".",""),description,true,dst))}}return result},_createExpressionData:function(){var data={items:[],identifier:"name",label:"name"};var _Array=this.createBranch("Array",data.items);this.insertApiItems("Array.",_Array,data.items);var _Date=this.createBranch("Date",data.items);this.insertApiItems("Date.",_Date,data.items);var _Function=this.createBranch("Function",data.items);this.insertApiItems("Function.",_Function,data.items);var _Math=this.createBranch("Math",data.items);
this.insertApiItems("Math.",_Math,data.items);var _Number=this.createBranch("Number",data.items);this.insertApiItems("Number.",_Number,data.items);var _Object=this.createBranch("Object",data.items);this.insertApiItems("Object.",_Object,data.items);var _String=this.createBranch("String",data.items);this.insertApiItems("String.",_String,data.items);var _RegExp=this.createBranch("RegExp",data.items);this.insertApiItems("RegExp.",_RegExp,data.items);this.publish(types.EVENTS.ON_EXPRESSION_EDITOR_ADD_FUNCTIONS,
{root:data,widget:this,user:this.userData});return data},_createExpressionStore:function(){if(!this.apiStore);return Observable(new Memory({data:this._createExpressionData(),getChildren:function(parent,options){return this.query({parent:this.getIdentity(parent)})},mayHaveChildren:function(parent){return false}}))},updateGrid:function(item){if(this.gridView){this.gridView.grid.set("store",this.store,{parent:item.name});this.gridView.grid.clearSelection()}},onTreeClicked:function(item,nodeWidget){this.lastSelectedTreeNode=
nodeWidget;this.currentItem=item;this.updateGrid(item)},_createTreeView:function(){this.leftStore=this._createExpressionStore();var thiz=this;var grid=new ExpressionsGridView({keyboardNavigation:false,mouseNavigation:false,openTreeOnEnter:false,dnd:false,store:this.leftStore,style:"overflow-x:hidden;padding:0px",delegate:{onItemSelected:function(item){if(thiz.gridView){thiz.gridView.grid.set("store",thiz.leftStore,{parent:item.name});thiz.gridView.onResize();thiz.gridView.grid.clearSelection()}}}});
this.leftGrid=grid;this.layoutLeft.containerNode.appendChild(grid.domNode);grid.startup();this.leftGrid.grid.set("store",this.leftStore,{group:"top"})},_createGridView:function(){var thiz=this;var grid=new ExpressionsGridView({keyboardNavigation:true,mouseNavigation:true,openTreeOnEnter:false,dnd:false,store:this.leftStore,style:"overflow-x:hidden;padding:0px",delegate:{currentItem:null,onItemSelected:function(item){this.currentItem=item;thiz.showDocumentation(item.help||"")},onGridMouseDoubleClick:function(){if(this.currentItem)thiz.insertSymbol(this.currentItem.value,
this.currentItem.isFunction)}}});this.gridView=grid;this.layoutCenter.containerNode.appendChild(grid.domNode);grid.startup();this.gridView.grid.set("store",this.leftStore,{group:"nada"})},createWidgets:function(){this._createACEEditor(this.layoutTop.containerNode);this._createTreeView();try{this._createGridView()}catch(e){debugger}this.aceEditor.addAutoCompleter(this.autoCompleterWords);this.initToolbar()},onReady:function(){var thiz=this;setTimeout(function(){thiz.layoutMain.resize()},100)},ctlrKeyDown:false,
onKeyUp:function(evt){switch(evt.keyCode){case keys.ALT:case keys.CTRL:this.ctlrKeyDown=false;break}},onKey:function(evt){switch(evt.keyCode){case keys.META:case keys.ALT:case keys.SHIFT:case keys.CTRL:this.ctlrKeyDown=true;setTimeout(function(){thiz.ctlrKeyDown=false},2E3);break}var thiz=this;if(evt.type&&evt.type=="keyup")return this.onKeyUp(evt);var charOrCode=evt.charCode||evt.keyCode;if(this.ctlrKeyDown&&charOrCode===83){evt.preventDefault();if(this.delegate&&this.delegate.onSave)this.delegate.onSave(this.userData,
this.getValue())}},setValue:function(value){this.userData=utils.setCIValueByField(this.userData,"value",value)},_onACEUpdate:function(){var _newValue=this.getValue();this.setValue(_newValue);this.changed=true;if(this.userData)this.userData.changed=true},setupEventHandlers:function(){var thiz=this;on(this.aceEditor,"keydown",function(event){thiz.onKey(event)})},_createACEEditor:function(parentNode){var _options={region:"center",value:this.getValue(),style:"margin: 0; padding: 0; position:relative;overflow: auto;min-height:55px;height:inherit;width:inherit;",
mode:"javascript",readOnly:false,tabSize:2,softTabs:false,wordWrap:false,showPrintMargin:false,highlightActiveLine:false,fontSize:"12px",showGutter:true,className:"editor-ace ace_editor ace-codebox-dark ace_dark"};var editorPane=new TextEditor(_options,dojo.doc.createElement("div"));parentNode.appendChild(editorPane.domNode);editorPane.startup();this.aceEditor=editorPane;this.aceEditor.setOptions();var editor=this.aceEditor.getEditor();var thiz=this;editor.on("change",function(){thiz._onACEUpdate()});
editor.on("blur",function(){thiz.setActive(false)});editor.on("focus",function(){thiz.setActive(true)});this.setupEventHandlers()},onViewShow:function(evt){},updateItemActions:function(items,owner,actions,where){if(this.toolbar&&this.toolbar.getCurrentItem()!=items)this.toolbar.clear()},onItemSelected:function(evt){},onViewRemoved:function(){},resizeToNode:function(parent,what){if(parent&&what){var size=domGeometry.getMarginBox(parent);var dstHeight=size.h;what.containerNode.style.height=dstHeight+
"px";what.resize();setTimeout(function(){what.resize()},300)}},resize:function(){this.inherited(arguments);if(!this.layoutMain)return;this.resizeToNode(this.domNode,this.layoutMain);this.layoutMain.resize();if(this.gridView)this.gridView.onResize();if(this.leftGrid)this.leftGrid.onResize();if(this.aceEditor){var size=domGeometry.getMarginBox(this.aceEditor.domNode);var dstHeight=size.h;dstHeight-=30;var thiz=this;this.aceEditor.resize()}},startup:function(){var thiz=this;this.inherited(arguments);
this.createWidgets();this.onReady();thiz.layoutMain.resize();this.subscribe(types.EVENTS.ON_VIEW_SHOW,this.onViewShow);this.subscribe(types.EVENTS.RESIZE,this.resize)}})})},"xide/widgets/WidgetBase":function(){define(["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/dom-class","dojo/on","dijit/_Widget","dijit/_WidgetBase","dojo/_base/connect","dijit/_TemplatedMixin","dijit/_WidgetsInTemplateMixin","xide/widgets/TemplatedWidgetBase","xide/widgets/ToolTipMixin","xide/utils","xide/factory",
"xide/types","./_CSSMixin","./_StyleMixin","dojo/dom-construct"],function(array,declare,html,domClass,on,_Widget,_WidgetBase,connect,_TemplatedMixin,_WidgetsInTemplateMixin,TemplatedWidgetBase,ToolTipMixin,utils,factory,types,CSSMixin,StyleMixin,domConstruct){return dojo.declare("xide.widgets.WidgetBase",[TemplatedWidgetBase,ToolTipMixin,CSSMixin,StyleMixin],{cssClass:"ui-widget-content",_currentPlatform:null,data:null,model:null,widgets:null,delegate:null,helpNodes:null,navigationView:null,currentWidget:null,
currentDataItem:null,didLoad:false,isSubWidget:false,title:"NoTitle",value:"Unset",minHeight:"60px;",previewNode:null,button0:null,valueNode:null,button1:null,toolBarRoot:null,toolBar:null,button2:null,button3:null,wButton2:null,wButton3:null,didStartup:false,nativeWidget:null,isInherited:false,expander:null,expanderButton:null,expanderOpen:false,expanderPane:null,lastHeight:null,hasPlatform:false,titleNode:null,storeDelegate:null,extensionRoot:null,extensionTag:"td",extensionClass:"extension",_didSendReady:false,
styles:null,active:true,vertical:false,templateString:"\x3cdiv class\x3d'widgetContainer widgetBorder widgetTable' style\x3d''\x3e"+"\x3ctable border\x3d'0' cellpadding\x3d'5px' width\x3d'100%'\x3e"+"\x3ctbody align\x3d'left'\x3e"+"\x3ctr data-dojo-attach-point\x3d'extensionRoot' valign\x3d'middle' style\x3d'height:90%'\x3e"+"\x3ctd width\x3d'15%' class\x3d'widgetTitle'\x3e\x3cb\x3e\x3cspan data-dojo-attach-point\x3d'titleNode'\x3e${!title}\x3c/span\x3e\x3c/b\x3e\x3c/td\x3e"+"\x3ctd valign\x3d'middle' class\x3d'widgetValue' data-dojo-attach-point\x3d'valueNode' width\x3d'100px'\x3e${!value}\x3c/td\x3e"+
"\x3ctd class\x3d'extension' data-dojo-attach-point\x3d'previewNode'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' data-dojo-attach-point\x3d'button0'\x3e\x3c/td\x3e"+"\x3ctd class\x3d'extension' data-dojo-attach-point\x3d'button1'\x3e\x3c/td\x3e"+"\x3c/tr\x3e"+"\x3c/tbody\x3e"+"\x3c/table\x3e"+"\x3cdiv data-dojo-attach-point\x3d'expander' style\x3d'width:100%;'\x3e\x3c/div\x3e"+"\x3cdiv data-dojo-attach-point\x3d'last'\x3e\x3c/div\x3e"+"\x3c/div\x3e",changed:false,setActive:function(active){this.active=
false;if(this.userData)this.userData._active=active},setStoreDelegate:function(delegate){this.storeDelegate=delegate},getExtensionRoot:function(){return this.extensionRoot},getFreeExtensionSlot:function(startNode){var root=startNode||this.getExtensionRoot();if(!root)return null;var node=utils.findEmptyNode(root,".extension");if(!node)node=domConstruct.create(this.extensionTag,{className:this.extensionClass},root);return node},getCurrentPlatform:function(){return this._currentPlatform},getRootId:function(){return this.id},
save:function(){factory.publish(types.EVENTS.ON_CI_UPDATE,{owner:this.delegate||this.owner,ci:this.userData,newValue:this.getValue(),storeItem:this.storeItem},this)},setValue:function(value,dataSource,dataRef,title){if(this.getCurrentPlatform()==null||this.getCurrentPlatform()==xapp.types.PlatformGroup.ALL){var oldValue=utils.getCIValueByField(this.userData,"value");this.userData=utils.setCIValueByField(this.userData,"value",value);if(this.skipSave==true){JSCOMPILER_PRESERVE(this.skipSave==false);
return}factory.publish(types.EVENTS.ON_CI_UPDATE,{owner:this.delegate||this.owner,ci:this.userData,newValue:value,oldValue:oldValue,storeItem:this.storeItem},this);return}else if(this.hasPlatform)this.setPlatformOverride(value,dataSource,dataRef,title)},getValue:function(platform,field){if(platform||this.getCurrentPlatform()){var override=this.getPlatformOverride(platform||this.getCurrentPlatform());if(override)return utils.toString(override[field||"value"])}else if(this.userData)return utils.getCIValueByField(this.userData,
field||"value");return null},onPlatformChanged:function(newPlatform){this._currentPlatform=newPlatform==xapp.types.PlatformGroup.ALL?null:newPlatform;var ciOverride=this.getPlatformOverride()},clearValue:function(){this.userData=utils.setCIValueByField(this.userData,"value","Unset");this.userData=utils.setCIValueByField(this.userData,"dataSource","");this.userData=utils.setCIValueByField(this.userData,"dataRef","");sctx.getStoreDelegate().updateDataItem(this.userData);if(this.valueNode)this.valueNode.innerHTML=
"Unset"},onCIPlatformOverrideReady:function(ciPlatformOverride){},setPlatformOverride:function(value,dataSource,dataRef,title,platform){var ciOverride=this.getPlatformOverride();if(!ciOverride){if(value!=null){var override={dstId:utils.toString(this.userData.id),pageId:utils.toInt(this.pageData.uid),dstIdStr:platform||this.getCurrentPlatform(),refGroupStr:xapp.types.CIOverrideRefGroup.PLATFORM,dataSource:utils.toString(dataSource),dataRef:utils.toString(dataRef),value:utils.toString(value),title:utils.toString(title)};
sctx.getApplication().createCIPlatformOverride(this,override)}}else{if(value==null){ciOverride.value=null;ciOverride.dataSource=null;ciOverride.dataRef=null;ciOverride.title=null;sctx.getStoreDelegate().deleteCIPlatformOverride(ciOverride);return}ciOverride.value=value;ciOverride.dataSource=dataSource;ciOverride.dataRef=dataRef;ciOverride.title=title;sctx.getStoreDelegate().onCIPlatformOverrideChanged(ciOverride)}},getPlatformOverride:function(platform){var store=sctx.getApplication().getCIOverrideStore();
return utils.getCIPlatformOverride(store,utils.toInt(this.pageData.uid),utils.toInt(this.userData.id),platform||this.getCurrentPlatform())},openExpander:function(){if(this.expanderPane){domClass.remove(this.expanderButton.iconNode,"widgetMinusButton");domClass.add(this.expanderButton.iconNode,"widgetAddButton");utils.destroyWidget(this.expanderPane);this.domNode.style.height=this.lastHeight;this.expanderPane=null;return}domClass.remove(this.expanderButton.iconNode,"widgetAddButton");domClass.add(this.expanderButton.iconNode,
"widgetMinusButton");var anchor=dojo.doc.createElement("DIV",{});this.expanderPane=dojo.create("DIV",{className:"widgetExpanderPane widgetBorder"},anchor);this.last.appendChild(anchor);if(!this.lastHeight)this.lastHeight=this.domNode.style.height;this.domNode.style.height="auto";anchor=dojo.doc.createElement("DIV",{});var platformWidget=new xide.widgets.PlatformWidget({title:"Platform",delegate:this},anchor);this.expanderPane.appendChild(platformWidget.domNode);platformWidget.startup()},setupExpander:function(){var thiz=
this;this.expanderButton=new dijit.form.ToggleButton({role:"presentation",showLabel:false,checked:true,iconClass:"widgetAddButton",style:"padding-left:0px;overflow:hidden;"},this.expander);dojo.connect(this.expanderButton,"onClick",function(item){thiz.openExpander()});domClass.remove(this.expanderButton.domNode,"dijitButton");domClass.remove(this.expanderButton.domNode,"dijitButtonNode");domClass.add(this.expanderButton.domNode,"noBGButton");domClass.add(this.expanderButton.domNode,"platformExpanderButton")},
getWidgetsFromTemplate:function(){},empty:function(){if(this.helpNodes)for(var i=0;i<this.helpNodes.length;i++){var widget=this.helpNodes[i];dojo.destroy(widget)}if(this.widgets)for(var i=0;i<this.widgets.length;i++){var widget=this.widgets[i];widget.destroyRecursive();dojo.destroy(widget)}},onLoad:function(){},onCIOverrideReadyVisibility:function(ciOverride){this.onVisibilityToggle()},onVisibilityToggle:function(e){var store=sctx.getApplication().ciOverrideStore;var ciOverrides=utils.getPageCIOverrides(store,
utils.toInt(this.pageData.uid));var ciOverride=utils.getPageCIOverrideByCIId(store,utils.toInt(this.pageData.uid),utils.toInt(this.userData.id));if(this.isInherited)if(!ciOverride){var flags=xapp.types.CIOverrideFlags.HideInAllFollowElements;var override={dstId:utils.toString(this.userData.id),pageId:utils.toInt(this.pageData.uid),flags:flags};sctx.getApplication().createCIOverride(this,override)}else{var newToggleState=utils.toggleVisibility(ciOverride);utils.setIntegerValue(ciOverride.flags,newToggleState);
sctx.getStoreDelegate().onCIOverrideChanged(ciOverride);this.wButton3.updateVisibilityButton(this.wButton3,newToggleState)}},buildToolbar:function(){if(this.toolBar)return;var thiz=this;var vFlags=xapp.types.CIOverrideFlags.None;if(this.pageData){var ciOverride=utils.getPageCIOverrideByCIId(sctx.getApplication().getCIOverrideStore(),utils.toInt(this.pageData.uid),utils.toInt(this.userData.id));if(ciOverride)vFlags=utils.toInt(ciOverride.flags)}var anchor=dojo.doc.createElement("DIV",{});this.wButton3=
new xas.widgets.VisibilityToggle({toggleState:vFlags,delegate:this,role:"button",showLabel:false,iconClass:"dijitEditorIcon iconVisible",style:"padding-left:0px",checked:true},anchor);this.button3.appendChild(this.wButton3.domNode);this.wButton3.startup()},fillTemplate:function(){var thiz=this;if(this.nativeWidget){this.valueNode.innerHTML="";this.valueNode.appendChild(this.nativeWidget.domNode)}},addClearButton:function(){if(this.wButton1)return;var thiz=this;var anchor=dojo.doc.createElement("DIV",
{});this.wButton1=new dijit.form.ToggleButton({role:"button",showLabel:false,checked:true,iconClass:"widgetDeleteButton",style:"padding-left:0px;"},anchor);this.button1.appendChild(this.wButton1.domNode);dojo.connect(this.wButton1,"onClick",function(item){thiz.clearValue();if(thiz.setThumbnail)thiz.setThumbnail("")})},startup:function(){if(this.value==null)this.value="Unset";if(this.didStartup)return;this.inherited(arguments);if(this.userData&&this.userData.inherited&&this.userData.inherited==true){this.isInherited=
true;domClass.remove(this.domNode,"widgetContainer");this.buildToolbar();domClass.add(this.domNode,"widgetContainerAlternate")}else;if(this.value="Unset")if(this.valueNode);this.didStartup=true;if(this.nativeWidget&&this.setupNativeWidgetHandler)this.setupNativeWidgetHandler();this.updateTitleNode(this.title)},getElements:function(cssClass,rootNode){return(rootNode||dojo.body()).getElementsByClassName(cssClass)},onReady:function(){if(this.doStyleMixin&&this.styles)this.doStyleMixin(this.styles);if(!this._didSendReady){factory.publish(types.EVENTS.ON_WIDGET_READY,
{ci:this.userData,widget:this,storeItem:this.storeItem,owner:this.owner});this._didSendReady=true}}})})},"xide/factory/Events":function(){define(["xide/factory","dojo/_base/connect","dojo/_base/lang"],function(factory,connect,lang){factory.publish=function(keys,data,callee){var msgStruct=data?lang.isString(data)?{message:data}:data:{};var eventKeys=keys;if(!lang.isArray(keys))eventKeys=[keys];msgStruct=lang.mixin(msgStruct,{callee:callee||arguments.callee});for(var i=0;i<eventKeys.length;i++){var eventKey=
eventKeys[i];connect.publish(eventKey,msgStruct)}};factory.subscribe=function(keys,cb,owner){owner=owner||arguments.callee;var eventKeys=keys;if(!lang.isArray(keys))eventKeys=[keys];var events=[];for(var i=0;i<eventKeys.length;i++){var eventKey=eventKeys[i];if(owner!=null)events.push(dojo.subscribe(eventKey,lang.hitch(owner,cb)));else events.push(connect.subscribe(eventKey,cb))}return events};return factory})},"url:dijit/templates/Dialog.html":'\x3cdiv class\x3d"dijitDialog" role\x3d"dialog" aria-labelledby\x3d"${id}_title"\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"titleBar" class\x3d"dijitDialogTitleBar"\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"titleNode" class\x3d"dijitDialogTitle" id\x3d"${id}_title"\n\t\t\t\trole\x3d"heading" level\x3d"1"\x3e\x3c/span\x3e\n\t\t\x3cspan data-dojo-attach-point\x3d"closeButtonNode" class\x3d"dijitDialogCloseIcon" data-dojo-attach-event\x3d"ondijitclick: onCancel" title\x3d"${buttonCancel}" role\x3d"button" tabIndex\x3d"-1"\x3e\n\t\t\t\x3cspan data-dojo-attach-point\x3d"closeText" class\x3d"closeText" title\x3d"${buttonCancel}"\x3ex\x3c/span\x3e\n\t\t\x3c/span\x3e\n\t\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"containerNode" class\x3d"dijitDialogPaneContent"\x3e\x3c/div\x3e\n\x3c/div\x3e\n',
"xfile/manager/PanelManager":function(){define("xfile/manager/PanelManager",["dojo/_base/declare","dojo/_base/lang","./PanelManagerBase","xfile/factory","xide/utils","xfile/views/FilePanel","xfile/views/FileTreeView","xide/types","dojox/image/Lightbox","xfile/views/FilePropertyView","xide/widgets/TemplatedWidgetBase","./PanelManagerActions","xide/mixins/EventedMixin","dojox/encoding/digests/SHA1"],function(declare,lang,PanelManagerBase,factory,utils,FilePanel,FileTreeView,types,Lightbox,FilePropertyView,
TemplatedWidgetBase,PanelManagerActions,EventedMixin,SHA1){return declare("xfile.manager.PanelManager",[PanelManagerBase,TemplatedWidgetBase,PanelManagerActions,EventedMixin],{panels:null,tabContainer:null,currentPanel:null,store:null,model:null,newAlternateTarget:"topTabs",propertyView:null,propertyViewPanel:null,contentPreview:null,templateString:"\x3cdiv\x3e\x3c/div\x3e",rootView:null,currentLightBox:null,editMount:function(mount){this.ctx.getMountManager().editMount(mount)},removeMount:function(mount){this.ctx.getMountManager().removeMount(mount)},
getSources:function(){return this.ctx.getMountManager().getMounts()},getImageUrl:function(src){var thiz=this;var downloadUrl=this.config.FILE_SERVICE;downloadUrl="index.php?option\x3dcom_xappcommander\x26service\x3dXCOM_Directory_Service.get\x26path\x3d"+src.path+"\x26callback\x3dasdf";if(this.config.DOWNLOAD_URL!=null){downloadUrl=""+this.config.DOWNLOAD_URL;downloadUrl+="\x26selection\x3d"+src.path+"\x26callback\x3dasdf"}downloadUrl+="\x26mount\x3d"+src.mount;downloadUrl+="\x26raw\x3dhtml";downloadUrl+=
"\x26attachment\x3dfalse";downloadUrl+="\x26send\x3dtrue";var hashUrl=downloadUrl.replace("./index.php?","");hashUrl+="\x26"+this.config.RPC_PARAMS.rpcUserField+"\x3d"+this.config.RPC_PARAMS.rpcUserValue;var params=utils.urlDecode(hashUrl);var signature=SHA1._hmac(dojo.toJson(params),this.config.RPC_PARAMS.rpcSignatureToken,1);downloadUrl+="\x26"+this.config.RPC_PARAMS.rpcUserField+"\x3d"+this.config.RPC_PARAMS.rpcUserValue;downloadUrl+="\x26"+this.config.RPC_PARAMS.rpcSignatureField+"\x3d"+signature;
return downloadUrl},getRootView:function(){return this.rootView},getRootContainer:function(){return this.rootView.layoutMain},onBrowserFilesDropped:function(srcView,files){this.ctx.getFileManager().config=this.config;this.ctx.getFileManager().store=this.store;var dst0=srcView.getCopyDestination();var parent=srcView.getCurrentParent();var dst=parent||dst0;this.ctx.getFileManager().upload(files,dst.mount,dst?dst.path:"./tmp",srcView)},_createPropertyView:function(item,container){var main=dijit.registry.byId("main");
if(container===null){var _container=new dijit.layout.ContentPane({title:"Properties",region:"right",splitter:true,className:"filePropertyPanel"});container=_container;this.propertyViewPanel=container;if(main)main.addChild(container)}this.propertyView=new FilePropertyView({delegate:this,region:"right",title:this.translate("properties"),minSize:180,className:"filePropertyView ui-state-default",style:"width:100%;",themeRoot:this.config.THEME_ROOT,webRoot:this.config.REPO_URL},dojo.doc.createElement("div"));
container.containerNode.appendChild(this.propertyView.domNode);this.propertyView.startup();main.resize();this.publish(types.EVENTS.RESIZE,{},this);return this.propertyView},getNewAlternateTarget:function(item,panel){if(this.rootView&&this.rootView.getNewAlternateTarget){var target=this.rootView.getNewAlternateTarget();if(target)return target}return utils.getWidget(this.newAlternateTarget)},openItemAlternate:function(item,panel){if(!item)return null;var target=this.getNewAlternateTarget(item,panel);
if(!target)return null;if(item&&item.directory!=null&&item.directory===true){var _panel=this.createFilePanelEx(item.mount,panel,item.path,target,{config:{allowFiles:false}});_panel.owner=panel;setTimeout(function(){_panel.openItem(item)},100);return _panel}},closeFile:function(editor,item,panel){if(editor&&editor.onClose){if(editor&&editor.owner&&editor.owner.onFileClosed)editor.owner.onFileClosed(editor);editor.onClose()}},onItemSelected:function(eventData){var item=eventData.item;if(!item||!item.path)return null;
if(this.currentLightBox)if(utils.isImage(item.path)){var url=""+utils.cleanUrl(this.config.REPO_URL+"/"+item.path);url+="?time\x3d"+(new Date).getTime();this.currentLightBox.show({title:item.name,href:url})}},openFile:function(item,panel){if(!item||!item.path)return null;if(utils.isImage(item.path)){var url=""+utils.cleanUrl(this.config.REPO_URL+"/"+item.path);url+="?time\x3d"+(new Date).getTime();var thiz=this;var dialog=dijit.registry.byId("lbdialog");if(!dialog){dialog=new dojox.image.LightboxDialog({id:"lbdialog",
onHide:function(){thiz.currentLightBox=null}});dialog.startup()}dialog.show({title:item.name,href:url});this.currentLightBox=dialog;return null;var lb=dijit.registry.byId("lightbox");if(lb){var part={title:item.name,href:url};lb.show(part)}return}if(this.ctx.getScriptManager()!=null){var editor=this.ctx.getScriptManager().onFileClicked(item);if(editor){editor.owner=panel;return editor}}return null},getLastActivePanel:function(){if(this.panels.length>0)return this.panels[this.panels.length-1];return null},
onHidePanel:function(panel){},_findNextTab:function(originPanel){var candidate=null;var originRegion=originPanel.region;if(originPanel.parentContainer)originRegion=originPanel.parentContainer.region;for(var i=0;i<this.panels.length;i++){var panel=this.panels[i];if(panel!=originPanel&&panel.isVisible()){var dstRegion=panel.region;if(originPanel.parentContainer)dstRegion=panel.parentContainer.region;if(originRegion!=dstRegion)candidate=panel}}return candidate},onTab:function(panel){var nextTab=this._findNextTab(panel);
if(nextTab&&nextTab.currentView)if(nextTab.getActiveItem&&nextTab.getActiveItem()&&nextTab.currentView.focusItem)nextTab.currentView.focusItem(nextTab.getActiveItem(),false);else if(nextTab.currentView.focusFirstItem)nextTab.currentView.focusFirstItem()},onClosePanel:function(panel){var reRoot=false;if(panel){if(panel.parentContainer){var children=panel.parentContainer.getChildren();if(children.length==2)reRoot=true;if(panel.owner&&panel.owner.onPanelClosed)panel.owner.onPanelClosed(panel);panel.parentContainer.removeChild(panel);
if(reRoot)if(this.rootView)this.rootView.onLastPanelRemoved()}this.panels.remove(panel)}this.currentPanel=this.getLastActivePanel()||this.currentPanel;if(this.currentPanel&&this.currentPanel.restoreFocus)this.currentPanel.restoreFocus()},onShowPanel:function(panel,wasNew){if(wasNew);this.currentPanel=panel},getStore:function(mount){var store=this.ctx.getStore(mount);return store},createFilePanelEx:function(mount,owner,url,where,options){this.initVariables();if(url==null)url=".";if(mount==null)mount=
"root";var store=null;if(mount!==null)store=this.getStore(mount);var _options={title:url||"./",cookiePrefix:"left",url:url,region:"left",closable:true,config:this.config,className:"xfileContainerEmbedded filePanel ui-state-default",ctx:this.ctx,clipboardManager:this.ctx.getClipboardManager(),panelManager:this,lazy:false,owner:owner,store:store||this.store};if(options)if(options.config){var newConfig=this.cloneConfig(_options.config);_options.config=newConfig;lang.mixin(_options.config,options.config)}var tabView=
utils.addWidget(FilePanel,_options,this,where,true);tabView.panelDelegate=tabView;this.panels.push(tabView);return tabView},cloneConfig:function(config){var newConfig={ACTION_TOOLBAR_MODE:config.ACTION_TOOLBAR_MODE,ALLOWED_ACTIONS:lang.clone(config.ALLOWED_ACTIONS),FILES_STORE_SERVICE_CLASS:config.FILES_STORE_SERVICE_CLASS,FILES_STORE_URL:config.FILES_STORE_URL,FILE_PANEL_OPTIONS_LEFT:lang.clone(config.FILE_PANEL_OPTIONS_LEFT),FILE_PANEL_OPTIONS_MAIN:lang.clone(config.FILE_PANEL_OPTIONS_MAIN),FILE_PANEL_OPTIONS_RIGHT:lang.clone(config.FILE_PANEL_OPTIONS_RIGHT),
FILE_SERVICE:config.FILE_SERVICE,FILE_SERVICE_FULL:config.FILE_SERVICE_FULL,LAYOUT_PRESET:config.LAYOUT_PRESET,PANEL_OPTIONS:config.PANEL_OPTIONS,REPO_URL:config.REPO_URL,RPC_PARAMS:config.RPC_PARAMS,THEME_ROOT:config.THEME_ROOT,WEB_ROOT:config.WEB_ROOT,allowFiles:config.allowFiles,clipboardManager:config.clipboardManager,columnFlags:lang.clone(config.columnFlags),columns:config.columns,hasControls:config.hasControls,hasTrail:config.hasTrail,keyboardDelegate:config.keyboardDelegate,mouseDelegate:config.mouseDelegate,
layoutMode:config.layoutMode,selectionMode:config.selectionMode};return newConfig},createFilePanel:function(url,title,container,config,lazy,cookiePrefix,region,mount){this.initVariables();var thiz=this;if(url==null)url=".";if(mount==null)mount="root";var store=null;if(mount!==null)store=this.getStore(mount);var tabView=new FilePanel({title:title||url||"./",cookiePrefix:cookiePrefix||"left",url:url,region:region||"left",closable:true,config:this.config,className:"xfileContainerEmbedded filePanel ui-widget-content",
ctx:this.ctx,parentContainer:container,delegate:this,clipboardManager:this.ctx.getClipboardManager(),panelManager:this,lazy:lazy,store:store||this.store});tabView.panelDelegate=tabView;this.panels.push(tabView);container.addChild(tabView);return tabView},onPanelAdded:function(panelStruct){},onChangeRoot:function(panel,root){return this.getStore(root)},initVariables:function(){if(!this.panels)this.panels=[];if(!this.store)this.store=window["xappFileStore"];if(!this.model)this.model=window["xappFileModel"]},
openUrl:function(url,container,config,cookiePrefix,region){var tabbed=true;if(config)if(config.PANEL_OPTIONS!=null&&config.PANEL_OPTIONS.ALLOW_MULTI_TAB===false)tabbed=false;if(tabbed)if(!this.tabContainer)this.tabContainer=factory.createMultiTabView(container,url||"./");var dstContainer=this.tabContainer||container;var panel=this.createFilePanel(url,url,dstContainer,config,false,cookiePrefix,region);if(tabbed)panel=this.createFilePanel(url,"New",dstContainer,config,true,cookiePrefix,region);return panel},
onImageLoaded:function(){var main=dijit.registry.byId("main");if(main)main.resize();if(this.propertyViewPanel)this.propertyViewPanel.resize()},onPanelClosedEvent:function(evt){var panel=evt.panel;var reRoot=false;if(panel){if(panel.parentContainer){var children=panel.parentContainer.getChildren();if(children.length==2)reRoot=true;if(panel.owner&&panel.owner.onPanelClosed)panel.owner.onPanelClosed(panel);panel.parentContainer.removeChild(panel);if(reRoot)if(this.rootView)this.rootView.onLastPanelRemoved()}this.panels.remove(panel)}this.currentPanel=
this.getLastActivePanel()||this.currentPanel;if(this.currentPanel&&this.currentPanel.restoreFocus)this.currentPanel.restoreFocus()},onPluginLoaded:function(data){var name=data.name;this.publish(types.EVENTS.ON_PLUGIN_READY,{name:name,mainView:this.rootView,config:this.config,ctx:this.ctx,panelManager:this,fileManager:this.ctx.getFileManager(),store:this.store,serviceObject:this.ctx.getService()},this)},init:function(){this.initVariables();this.subscribe(types.EVENTS.IMAGE_LOADED,this.onImageLoaded,
this);this.subscribe(types.EVENTS.RESIZE,this.onImageLoaded,this);this.subscribe(types.EVENTS.ON_PLUGIN_LOADED,this.onPluginLoaded,this);this.subscribe(types.EVENTS.ITEM_SELECTED,this.onItemSelected,this);this.subscribe(types.EVENTS.ON_PANEL_CLOSED,this.onPanelClosedEvent,this);this._setupTranslations()}})})},"dojo/cookie":function(){define(["./_base/kernel","./regexp"],function(dojo,regexp){dojo.cookie=function(name,value,props){var c=document.cookie,ret;if(arguments.length==1){var matches=c.match(new RegExp("(?:^|; )"+
regexp.escapeString(name)+"\x3d([^;]*)"));ret=matches?decodeURIComponent(matches[1]):undefined}else{props=props||{};var exp=props.expires;if(typeof exp=="number"){var d=new Date;d.setTime(d.getTime()+exp*24*60*60*1E3);exp=props.expires=d}if(exp&&exp.toUTCString)props.expires=exp.toUTCString();value=encodeURIComponent(value);var updatedCookie=name+"\x3d"+value,propName;for(propName in props){updatedCookie+="; "+propName;var propValue=props[propName];if(propValue!==true)updatedCookie+="\x3d"+propValue}document.cookie=
updatedCookie}return ret};dojo.cookie.isSupported=function(){if(!("cookieEnabled"in navigator)){this("__djCookieTest__","CookiesAllowed");navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";if(navigator.cookieEnabled)this("__djCookieTest__","",{expires:-1})}return navigator.cookieEnabled};return dojo.cookie})},"xapp/manager/SessionBase":function(){define("xapp/manager/SessionBase",["dojo/_base/declare","dojo/_base/sniff","xapp/utils","xapp/types","xapp/manager/ManagerBase","dojo/has"],
function(declare,sniff,utils,types,ManagerBase,has){return declare("types.SessionBase",[ManagerBase],{userAgent:"empty",screenHeight:0,screenWidth:0,applicationId:null,uuid:null,dataHost:null,dataContextName:null,sessionLanguage:"en",serviceSettings:null,orientation:0,mainPanel:null,didLoadDefaultStyles:false,currentUrl:null,currentDataItem:null,rpcProxy:null,rpcProxyDomain:null,rpcProxyDomainPort:null,rpcProxyPrefix:null,basePrefix:"",serverLogging:true,serverSessionProps:false,cxappRoot:null,detectTablet:true,
xappVersion:null,getVersion:function(){if(this.xappVersion)return xappVersion;else if(typeof xappVersion!="undefined")return xappVersion;return""+(new Date).getTime()},getRuntimeConfiguration:function(){if(typeof rtConfig!="undefined")return rtConfig;return"debug"},addScript:function(url){var headID=document.getElementsByTagName("head")[0];var newScript=document.createElement("script");newScript.type="text/javascript";newScript.src=url;headID.appendChild(newScript)},getCXAppRoot:function(){if(this.cxappRoot)this.cxappRoot=
null;if(typeof cxAppRoot!="undefined"){this.cxappRoot=cxAppRoot;return cxAppRoot}return""},isTablet:function(){if(xapp.allowTablet!=null&&xapp.allowTablet===false)return false;if(ctx&&ctx.getBootDelegate&&ctx.getBootDelegate()&&ctx.getBootDelegate().allowTablet){log.info("custom boot delegate forbids tablet version");if(!ctx.getBootDelegate().allowTablet())return false}if(has("xas")&&sctx.forcePlatform==types.PlatformGroup.MOBILE_WEB_APP_TABLET)return true;if(has("xas"))return sctx.getApplication().getHardwarePlatform()==
types.PlatformGroup.MOBILE_WEB_APP_TABLET||sctx.getApplication().getHardwarePlatform()==types.PlatformGroup.IPAD_NATIVE;if(device&&(device==types.PlatformGroup.MOBILE_WEB_APP_TABLET||device==types.PlatformGroup.IPAD_NATIVE))return true;if(this.detectTablet){if(navigator.userAgent.indexOf("iPad")>-1||navigator.userAgent.indexOf("iPad")>-1)return true;var ismobile=/iphone|ipod|android|blackberry|opera|mini|windows\sce|palm|smartphone|iemobile/i.test(navigator.userAgent.toLowerCase());var istablet=/ipad|android|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i.test(navigator.userAgent.toLowerCase());
var vs=dojo.window.getBox();if(vs.w<=800||vs.h<=600)istablet=false;return ismobile&&istablet}if(ctx&&ctx.getApplication())return ctx.getApplication().getHardwarePlatform()==types.PlatformGroup.MOBILE_WEB_APP_TABLET||ctx.getApplication().getHardwarePlatform()==types.PlatformGroup.IPAD_NATIVE},getCurrentUrl:function(){return this.currentUrl},getCurrentData:function(data){return this.currentDataItem},getPreviousData:function(data){var cview=ctx.getViewManager().getCurrentView();if(cview){if(cview.contentModule&&
cview.contentModule.getCurrentView)cview=cview.contentModule.getCurrentView();if(cview&&cview.dataItem)return cview.dataItem}return null},setCurrentUrl:function(url){this.currentUrl=url},setCurrentData:function(data){this.currentDataItem=data},getStylePlatform:function(){if(has("xas"))return sctx.getApplication().getStylePlatform();if(ctx&&ctx.getApplication&&ctx.getApplication())return ctx.getApplication().getStylePlatform();return"IPHONE_NATIVE"},toApplicationCSSTransformerPath:function(cssFilePath){var platform=
this.getStylePlatform();var result=this.getServicePath()+"/cssTransform?action\x3dget";if(platform)result+="\x26platform\x3d"+platform;result+="\x26uuid\x3d"+this.getUUID();result+="\x26appIdentifier\x3d"+this.getAppId();result+="\x26file\x3d";result+=cssFilePath;return result},toWebRootProxyCMAC:function(fileName){if(fileName.indexOf("http")!=-1)return fileName;var res=this.getBaseURL()+"CMAC/";res+=fileName;return res},check:function(){},toRelativeAssetUrl:function(fileName){if(fileName.indexOf("SharedAssets")==
-1){if(utils.contains(fileName,"http"))return fileName;var res=this.getBaseURL()+this.servletContextName()+"/CMAC/";if(this.serviceSettings)res=this.serviceSettings.webPath+"CMAC/";res+=this.getUUID()+"/apps/"+fileName;console.error(res);return res}else{if(utils.contains(fileName,"http"))return fileName;var res="";if(this.serviceSettings)res=this.serviceSettings.webPath+"CMAC/shared/";res+=fileName;return res}},servletContextName:function(){if(typeof isLiferay!="undefined"&&isLiferay)return"XApp-portlet";
if(this.dataContextName!=null)return this.dataContextName;if(this.dataHost!=null)return"";if(this.rpcProxy!=null&&this.rpcProxyPrefix!=null)return this.rpcProxy+"/"+this.rpcProxyPrefix;var result=null;var url=window.location.href;var queryPairs=url.split("/");if(queryPairs.length>2)result=queryPairs[3];if(!result)return"";return result},getServicePath:function(){if(this.dataHost)return this.dataHost;if(this.isLiferay)return this.getBaseURL()+this.servletContextName()+"/";else{var url=this.getBaseURL()+
"XApp-portlet/";return url}return null},sLog:function(data,loadedCB,errorCB){if(this.ctx.getSession().getRuntimeConfiguration()==="release")return;if(!data)return;if(!this.serverLogging)return;if(typeof xappBuildOptions!="undefined")return;var baseUrl=this.getServicePath()+"/servlets/js?action\x3dACTION_TYPE_LOG";baseUrl=baseUrl+"\x26value\x3d"+data;var url=""+baseUrl;dojo.xhrPost({url:url,handleAs:"text",sync:true,headers:"",load:function(response,ioArgs){if(loadedCB)loadedCB(response)},error:function(args){if(errorCB)errorCB(args)}})},
getBaseURL:function(){if(this.dataHost)return this.dataHost;var url=window.location.href;var baseURL=url.substring(0,url.indexOf("/",14));if(baseURL.indexOf("http://localhost")!=-1){var url=location.href;var pathname=location.pathname;var index1=url.indexOf(pathname);var index2=url.indexOf("/",index1+1);var baseLocalUrl=url.substr(0,index2);return baseLocalUrl+"/"}else if(this.basePrefix.length==0)return baseURL+"/";else return url+""+this.basePrefix},isExternal:function(){return this.dataHost!=null&&
this.dataContextName!=null},setSessionVariables:function(){var foundUserAgent=false;if(navigator.userAgent.indexOf("iPhone")>-1||navigator.userAgent.indexOf("iPod")>-1){foundUserAgent=true;this.userAgent=types.PlatformGroup.IPHONE}if(navigator.userAgent.indexOf("iPad")>-1||navigator.userAgent.indexOf("iPad")>-1){foundUserAgent=true;this.userAgent=types.PlatformGroup.IPAD}if(!foundUserAgent&&navigator.userAgent.indexOf("webOS")>-1){foundUserAgent=true;this.userAgent=types.PlatformGroup.WEBOS}if(!foundUserAgent&&
navigator.userAgent.indexOf("android")>-1){foundUserAgent=true;this.userAgent=types.PlatformGroup.ANDROID}if(!foundUserAgent&&navigator.userAgent.indexOf("imx51_bbg")>-1){foundUserAgent=true;this.userAgent=types.PlatformGroup.TABLET}if(!foundUserAgent){foundUserAgent=true;this.userAgent=types.PlatformGroup.IPHONE}if(device!=null)this.userAgent=device;if(this.userAgent==types.PlatformGroup.MOBILE_WEB_APP_TABLET||this.isTablet());this.setSessionProperty("UserAgent",this.userAgent)},setSessionProperty:function(property,
value0){if(!this.serverSessionProps)return;var url=""+this.getBaseURL()+this.servletContextName()+"/servlets/js?action\x3dACTION_TYPE_STORE_SESSION\x26object\x3d";url+=property+"\x26value\x3d"+value0;dojo.xhrPost({url:url,handleAs:"text",sync:true,headers:"",load:function(response,ioArgs){}})},getUUID:function(){return this.uuid?this.uuid:uuid},getAppId:function(){return this.applicationId?this.applicationId:applicationId},init:function(){var vs=dojo.window.getBox();this.setSessionProperty("VAR_SCREENWIDTH",
vs.w);this.setSessionProperty("VAR_SCREENHEIGHT",vs.h);this.screenWidth=vs.w;this.screenHeight=vs.h;this.orientation=this.screenHeight<this.screenWidth?0:1;this.setSessionVariables();this.mainPanel=utils.getRoot()},getServiceSettings:function(){return this.serviceSettings},serviceSettingsReady:function(res,cbReady){if(res)this.serviceSettings={ajaxplorerRootUrl:res.ajaxplorerRootUrl,featherEditorApiKey:res.featherEditorApiKey,webPath:res.webPath,imageScaleServlet:res.imageScaleServlet};else debugger;
if(cbReady)cbReady();if(this.ctx&&this.ctx.getStyleManager&&this.ctx.getStyleManager()&&!this.ctx.getStyleManager().didLoadDefaultStyles)this.ctx.getStyleManager().loadDefaultStyles(this.getServicePath(),this.getStylePlatform(),this.getUUID(),this.getAppId())},loadServiceSettings:function(cbReady){if(typeof isLiferay!="undefined"&&isLiferay)this.isLiferay=true;if(this.serviceSettings)return;var url=this.getServicePath()+"client?action\x3dgetServiceSettings";var thiz=this;var cb=function(owner,res){thiz.serviceSettingsReady(res,
cbReady)};this.ctx.getDataManager().loadData(url,null,cb,this)}})})},"xide/views/TitlePane":function(){define(["../../dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/fx","dojo/has","dojo/_base/kernel","dojo/keys","dijit/TitlePane","xide/widgets/_ResizeMixin","xide/widgets/_CSSMixin","dojo/text!./templates/TitlePane.html"],function(array,declare,dom,domAttr,domClass,domGeometry,fxUtils,has,kernel,keys,TitlePane,_ResizeMixin,_CSSMixin,Template){return declare("xfile.views.TitlePane",
[TitlePane,_ResizeMixin,_CSSMixin],{templateString:Template,toggle:function(){this._setOpenAttr(!this.open,true);if(this.open){domClass.remove(this.arrowNode,"el-icon-caret-right");domClass.add(this.arrowNode,"el-icon-caret-down")}else{domClass.remove(this.arrowNode,"el-icon-caret-down");domClass.add(this.arrowNode,"el-icon-caret-right")}},startup:function(){this.inherited(arguments);var hideNode=this.hideNode,wipeNode=this.wipeNode;var thiz=this;this._wipeIn=fxUtils.wipeIn({node:wipeNode,duration:this.duration,
beforeBegin:function(){hideNode.style.display=""},onEnd:function(){thiz.onResized()}});this._wipeOut=fxUtils.wipeOut({node:wipeNode,duration:this.duration,onEnd:function(){hideNode.style.display="none";thiz.onResized()}});this.doCSSOperations([{cssClass:"actionTogglePaneHeader ui-accordion-header ui-helper-reset ui-state-default ui-accordion-icons ui-corner-all",op:"add",selector:".dijitTitlePaneTitle"},{cssClass:"dijitTitlePaneTitle",op:"remove",selector:".dijitTitlePaneTitle"}]);if(this.open){domClass.remove(this.arrowNode,
"el-icon-caret-right");domClass.add(this.arrowNode,"el-icon-caret-down")}}})})},"xas/types":function(){define(["../dojo/_base/declare"],function(declare){return declare("xas.types",null,{})})},"url:dijit/templates/Tree.html":'\x3cdiv role\x3d"tree"\x3e\n\t\x3cdiv class\x3d"dijitInline dijitTreeIndent" style\x3d"position: absolute; top: -9999px" data-dojo-attach-point\x3d"indentDetector"\x3e\x3c/div\x3e\n\t\x3cdiv class\x3d"dijitTreeExpando dijitTreeExpandoLoading" data-dojo-attach-point\x3d"rootLoadingIndicator"\x3e\x3c/div\x3e\n\t\x3cdiv data-dojo-attach-point\x3d"containerNode" class\x3d"dijitTreeContainer" role\x3d"presentation"\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e\n',
"dojo/Stateful":function(){define(["./_base/declare","./_base/lang","./_base/array","./when"],function(declare,lang,array,when){return declare("dojo.Stateful",null,{_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name])return apn[name];return apn[name]={s:"_"+name+"Setter",g:"_"+name+"Getter"}},postscript:function(params){if(params)this.set(params)},_get:function(name,names){return typeof this[names.g]==="function"?this[names.g]():this[name]},get:function(name){return this._get(name,
this._getAttrNames(name))},set:function(name,value){if(typeof name==="object"){for(var x in name)if(name.hasOwnProperty(x)&&x!="_watchCallbacks")this.set(x,name[x]);return this}var names=this._getAttrNames(name),oldValue=this._get(name,names),setter=this[names.s],result;if(typeof setter==="function")result=setter.apply(this,Array.prototype.slice.call(arguments,1));else this[name]=value;if(this._watchCallbacks){var self=this;when(result,function(){self._watchCallbacks(name,oldValue,value)})}return this},
_changeAttrValue:function(name,value){var oldValue=this.get(name);this[name]=value;if(this._watchCallbacks)this._watchCallbacks(name,oldValue,value);return this},watch:function(name,callback){var callbacks=this._watchCallbacks;if(!callbacks){var self=this;callbacks=this._watchCallbacks=function(name,oldValue,value,ignoreCatchall){var notify=function(propertyCallbacks){if(propertyCallbacks){propertyCallbacks=propertyCallbacks.slice();for(var i=0,l=propertyCallbacks.length;i<l;i++)propertyCallbacks[i].call(self,
name,oldValue,value)}};notify(callbacks["_"+name]);if(!ignoreCatchall)notify(callbacks["*"])}}if(!callback&&typeof name==="function"){callback=name;name="*"}else name="_"+name;var propertyCallbacks=callbacks[name];if(typeof propertyCallbacks!=="object")propertyCallbacks=callbacks[name]=[];propertyCallbacks.push(callback);var handle={};handle.unwatch=handle.remove=function(){var index=array.indexOf(propertyCallbacks,callback);if(index>-1)propertyCallbacks.splice(index,1)};return handle}})})},"dijit/layout/ScrollingTabController":function(){require({cache:{"url:dijit/layout/templates/ScrollingTabController.html":'\x3cdiv class\x3d"dijitTabListContainer-${tabPosition}" style\x3d"visibility:hidden"\x3e\n\t\x3cdiv data-dojo-type\x3d"dijit.layout._ScrollingTabControllerMenuButton"\n\t\t class\x3d"tabStripButton-${tabPosition}"\n\t\t id\x3d"${id}_menuBtn"\n\t\t data-dojo-props\x3d"containerId: \'${containerId}\', iconClass: \'dijitTabStripMenuIcon\',\n\t\t\t\t\tdropDownPosition: [\'below-alt\', \'above-alt\']"\n\t\t data-dojo-attach-point\x3d"_menuBtn" showLabel\x3d"false" title\x3d""\x3e\x26#9660;\x3c/div\x3e\n\t\x3cdiv data-dojo-type\x3d"dijit.layout._ScrollingTabControllerButton"\n\t\t class\x3d"tabStripButton-${tabPosition}"\n\t\t id\x3d"${id}_leftBtn"\n\t\t data-dojo-props\x3d"iconClass:\'dijitTabStripSlideLeftIcon\', showLabel:false, title:\'\'"\n\t\t data-dojo-attach-point\x3d"_leftBtn" data-dojo-attach-event\x3d"onClick: doSlideLeft"\x3e\x26#9664;\x3c/div\x3e\n\t\x3cdiv data-dojo-type\x3d"dijit.layout._ScrollingTabControllerButton"\n\t\t class\x3d"tabStripButton-${tabPosition}"\n\t\t id\x3d"${id}_rightBtn"\n\t\t data-dojo-props\x3d"iconClass:\'dijitTabStripSlideRightIcon\', showLabel:false, title:\'\'"\n\t\t data-dojo-attach-point\x3d"_rightBtn" data-dojo-attach-event\x3d"onClick: doSlideRight"\x3e\x26#9654;\x3c/div\x3e\n\t\x3cdiv class\x3d\'dijitTabListWrapper\' data-dojo-attach-point\x3d\'tablistWrapper\'\x3e\n\t\t\x3cdiv role\x3d\'tablist\' data-dojo-attach-event\x3d\'onkeydown:onkeydown\'\n\t\t\t data-dojo-attach-point\x3d\'containerNode\' class\x3d\'nowrapTabStrip\'\x3e\x3c/div\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e',
"url:dijit/layout/templates/_ScrollingTabControllerButton.html":'\x3cdiv data-dojo-attach-event\x3d"ondijitclick:_onClick" class\x3d"dijitTabInnerDiv dijitTabContent dijitButtonContents"  data-dojo-attach-point\x3d"focusNode" role\x3d"button"\x3e\n\t\x3cspan role\x3d"presentation" class\x3d"dijitInline dijitTabStripIcon" data-dojo-attach-point\x3d"iconNode"\x3e\x3c/span\x3e\n\t\x3cspan data-dojo-attach-point\x3d"containerNode,titleNode" class\x3d"dijitButtonText"\x3e\x3c/span\x3e\n\x3c/div\x3e'}});
define("dijit/layout/ScrollingTabController",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/fx","dojo/_base/lang","dojo/on","dojo/query","dojo/sniff","../registry","dojo/text!./templates/ScrollingTabController.html","dojo/text!./templates/_ScrollingTabControllerButton.html","./TabController","./utils","../_WidgetsInTemplateMixin","../Menu","../MenuItem","../form/Button","../_HasDropDown","dojo/NodeList-dom","dijit/a11yclick"],function(array,
declare,domClass,domGeometry,domStyle,fx,lang,on,query,has,registry,tabControllerTemplate,buttonTemplate,TabController,layoutUtils,_WidgetsInTemplateMixin,Menu,MenuItem,Button,_HasDropDown){var ScrollingTabController=declare("dijit.layout.ScrollingTabController",[TabController,_WidgetsInTemplateMixin],{baseClass:"dijitTabController dijitScrollingTabController",templateString:tabControllerTemplate,useMenu:true,useSlider:true,tabStripClass:"",_minScroll:5,_setClassAttr:{node:"containerNode",type:"class"},
buildRendering:function(){this.inherited(arguments);var n=this.domNode;this.scrollNode=this.tablistWrapper;this._initButtons();if(!this.tabStripClass){this.tabStripClass="dijitTabContainer"+this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"")+"None";domClass.add(n,"tabStrip-disabled")}domClass.add(this.tablistWrapper,this.tabStripClass)},onStartup:function(){this.inherited(arguments);domStyle.set(this.domNode,"visibility","");this._postStartup=true;this.own(on(this.containerNode,
"attrmodified-label, attrmodified-iconclass",lang.hitch(this,function(evt){if(this._dim)this.resize(this._dim)})))},onAddChild:function(page,insertIndex){this.inherited(arguments);domStyle.set(this.containerNode,"width",domStyle.get(this.containerNode,"width")+200+"px")},onRemoveChild:function(page,insertIndex){var button=this.pane2button(page.id);if(this._selectedTab===button.domNode)this._selectedTab=null;this.inherited(arguments)},_initButtons:function(){this._btnWidth=0;this._buttons=query("\x3e .tabStripButton",
this.domNode).filter(function(btn){if(this.useMenu&&btn==this._menuBtn.domNode||this.useSlider&&(btn==this._rightBtn.domNode||btn==this._leftBtn.domNode)){this._btnWidth+=domGeometry.getMarginSize(btn).w;return true}else{domStyle.set(btn,"display","none");return false}},this)},_getTabsWidth:function(){var children=this.getChildren();if(children.length){var leftTab=children[this.isLeftToRight()?0:children.length-1].domNode,rightTab=children[this.isLeftToRight()?children.length-1:0].domNode;return rightTab.offsetLeft+
rightTab.offsetWidth-leftTab.offsetLeft}else return 0},_enableBtn:function(width){var tabsWidth=this._getTabsWidth();width=width||domStyle.get(this.scrollNode,"width");return tabsWidth>0&&width<tabsWidth},resize:function(dim){this._dim=dim;this.scrollNode.style.height="auto";var cb=this._contentBox=layoutUtils.marginBox2contentBox(this.domNode,{h:0,w:dim.w});cb.h=this.scrollNode.offsetHeight;domGeometry.setContentSize(this.domNode,cb);var enable=this._enableBtn(this._contentBox.w);this._buttons.style("display",
enable?"":"none");this._leftBtn.layoutAlign="left";this._rightBtn.layoutAlign="right";this._menuBtn.layoutAlign=this.isLeftToRight()?"right":"left";layoutUtils.layoutChildren(this.domNode,this._contentBox,[this._menuBtn,this._leftBtn,this._rightBtn,{domNode:this.scrollNode,layoutAlign:"client"}]);if(this._selectedTab){if(this._anim&&this._anim.status()=="playing")this._anim.stop();this.scrollNode.scrollLeft=this._convertToScrollLeft(this._getScrollForSelectedTab())}this._setButtonClass(this._getScroll());
this._postResize=true;return{h:this._contentBox.h,w:dim.w}},_getScroll:function(){return this.isLeftToRight()||has("ie")<8||has("ie")&&has("quirks")||has("webkit")?this.scrollNode.scrollLeft:domStyle.get(this.containerNode,"width")-domStyle.get(this.scrollNode,"width")+(has("ie")>=8?-1:1)*this.scrollNode.scrollLeft},_convertToScrollLeft:function(val){if(this.isLeftToRight()||has("ie")<8||has("ie")&&has("quirks")||has("webkit"))return val;else{var maxScroll=domStyle.get(this.containerNode,"width")-
domStyle.get(this.scrollNode,"width");return(has("ie")>=8?-1:1)*(val-maxScroll)}},onSelectChild:function(page){var tab=this.pane2button(page.id);if(!tab)return;var node=tab.domNode;if(node!=this._selectedTab){this._selectedTab=node;if(this._postResize){var sl=this._getScroll();if(sl>node.offsetLeft||sl+domStyle.get(this.scrollNode,"width")<node.offsetLeft+domStyle.get(node,"width"))this.createSmoothScroll().play()}}this.inherited(arguments)},_getScrollBounds:function(){var children=this.getChildren(),
scrollNodeWidth=domStyle.get(this.scrollNode,"width"),containerWidth=domStyle.get(this.containerNode,"width"),maxPossibleScroll=containerWidth-scrollNodeWidth,tabsWidth=this._getTabsWidth();if(children.length&&tabsWidth>scrollNodeWidth)return{min:this.isLeftToRight()?0:children[children.length-1].domNode.offsetLeft,max:this.isLeftToRight()?children[children.length-1].domNode.offsetLeft+children[children.length-1].domNode.offsetWidth-scrollNodeWidth:maxPossibleScroll};else{var onlyScrollPosition=this.isLeftToRight()?
0:maxPossibleScroll;return{min:onlyScrollPosition,max:onlyScrollPosition}}},_getScrollForSelectedTab:function(){var w=this.scrollNode,n=this._selectedTab,scrollNodeWidth=domStyle.get(this.scrollNode,"width"),scrollBounds=this._getScrollBounds();var pos=n.offsetLeft+domStyle.get(n,"width")/2-scrollNodeWidth/2;pos=Math.min(Math.max(pos,scrollBounds.min),scrollBounds.max);return pos},createSmoothScroll:function(x){if(arguments.length>0){var scrollBounds=this._getScrollBounds();x=Math.min(Math.max(x,
scrollBounds.min),scrollBounds.max)}else x=this._getScrollForSelectedTab();if(this._anim&&this._anim.status()=="playing")this._anim.stop();var self=this,w=this.scrollNode,anim=new fx.Animation({beforeBegin:function(){if(this.curve)delete this.curve;var oldS=w.scrollLeft,newS=self._convertToScrollLeft(x);anim.curve=new fx._Line(oldS,newS)},onAnimate:function(val){w.scrollLeft=val}});this._anim=anim;this._setButtonClass(x);return anim},_getBtnNode:function(e){var n=e.target;while(n&&!domClass.contains(n,
"tabStripButton"))n=n.parentNode;return n},doSlideRight:function(e){this.doSlide(1,this._getBtnNode(e))},doSlideLeft:function(e){this.doSlide(-1,this._getBtnNode(e))},doSlide:function(direction,node){if(node&&domClass.contains(node,"dijitTabDisabled"))return;var sWidth=domStyle.get(this.scrollNode,"width");var d=sWidth*0.75*direction;var to=this._getScroll()+d;this._setButtonClass(to);this.createSmoothScroll(to).play()},_setButtonClass:function(scroll){var scrollBounds=this._getScrollBounds();this._leftBtn.set("disabled",
scroll<=scrollBounds.min);this._rightBtn.set("disabled",scroll>=scrollBounds.max)}});var ScrollingTabControllerButtonMixin=declare("dijit.layout._ScrollingTabControllerButtonMixin",null,{baseClass:"dijitTab tabStripButton",templateString:buttonTemplate,tabIndex:"",isFocusable:function(){return false}});declare("dijit.layout._ScrollingTabControllerButton",[Button,ScrollingTabControllerButtonMixin]);declare("dijit.layout._ScrollingTabControllerMenuButton",[Button,_HasDropDown,ScrollingTabControllerButtonMixin],
{containerId:"",tabIndex:"-1",isLoaded:function(){return false},loadDropDown:function(callback){this.dropDown=new Menu({id:this.containerId+"_menu",ownerDocument:this.ownerDocument,dir:this.dir,lang:this.lang,textDir:this.textDir});var container=registry.byId(this.containerId);array.forEach(container.getChildren(),function(page){var menuItem=new MenuItem({id:page.id+"_stcMi",label:page.title,iconClass:page.iconClass,disabled:page.disabled,ownerDocument:this.ownerDocument,dir:page.dir,lang:page.lang,
textDir:page.textDir||container.textDir,onClick:function(){container.selectChild(page)}});this.dropDown.addChild(menuItem)},this);callback()},closeDropDown:function(focus){this.inherited(arguments);if(this.dropDown){this._popupStateNode.removeAttribute("aria-owns");this.dropDown.destroyRecursive();delete this.dropDown}}});return ScrollingTabController})},"dojo/_base/Color":function(){define(["./kernel","./lang","./array","./config"],function(dojo,lang,ArrayUtil,config){var Color=dojo.Color=function(color){if(color)this.setColor(color)};
Color.named={"black":[0,0,0],"silver":[192,192,192],"gray":[128,128,128],"white":[255,255,255],"maroon":[128,0,0],"red":[255,0,0],"purple":[128,0,128],"fuchsia":[255,0,255],"green":[0,128,0],"lime":[0,255,0],"olive":[128,128,0],"yellow":[255,255,0],"navy":[0,0,128],"blue":[0,0,255],"teal":[0,128,128],"aqua":[0,255,255],"transparent":config.transparentColor||[0,0,0,0]};lang.extend(Color,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a},setColor:function(color){if(lang.isString(color))Color.fromString(color,
this);else if(lang.isArray(color))Color.fromArray(color,this);else{this._set(color.r,color.g,color.b,color.a);if(!(color instanceof Color))this.sanitize()}return this},sanitize:function(){return this},toRgb:function(){var t=this;return[t.r,t.g,t.b]},toRgba:function(){var t=this;return[t.r,t.g,t.b,t.a]},toHex:function(){var arr=ArrayUtil.map(["r","g","b"],function(x){var s=this[x].toString(16);return s.length<2?"0"+s:s},this);return"#"+arr.join("")},toCss:function(includeAlpha){var t=this,rgb=t.r+
", "+t.g+", "+t.b;return(includeAlpha?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")"},toString:function(){return this.toCss(true)}});Color.blendColors=dojo.blendColors=function(start,end,weight,obj){var t=obj||new Color;ArrayUtil.forEach(["r","g","b","a"],function(x){t[x]=start[x]+(end[x]-start[x])*weight;if(x!="a")t[x]=Math.round(t[x])});return t.sanitize()};Color.fromRgb=dojo.colorFromRgb=function(color,obj){var m=color.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&Color.fromArray(m[1].split(/\s*,\s*/),
obj)};Color.fromHex=dojo.colorFromHex=function(color,obj){var t=obj||new Color,bits=color.length==4?4:8,mask=(1<<bits)-1;color=Number("0x"+color.substr(1));if(isNaN(color))return null;ArrayUtil.forEach(["b","g","r"],function(x){var c=color&mask;color>>=bits;t[x]=bits==4?17*c:c});t.a=1;return t};Color.fromArray=dojo.colorFromArray=function(a,obj){var t=obj||new Color;t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a))t.a=1;return t.sanitize()};Color.fromString=dojo.colorFromString=
function(str,obj){var a=Color.named[str];return a&&Color.fromArray(a,obj)||Color.fromRgb(str,obj)||Color.fromHex(str,obj)};return Color})},"dojo/dnd/Source":function(){define(["../_base/array","../_base/declare","../_base/kernel","../_base/lang","../dom-class","../dom-geometry","../mouse","../ready","../topic","./common","./Selector","./Manager"],function(array,declare,kernel,lang,domClass,domGeom,mouse,ready,topic,dnd,Selector,Manager){if(!kernel.isAsync)ready(0,function(){var requires=["dojo/dnd/AutoSource",
"dojo/dnd/Target"];require(requires)});var Source=declare("dojo.dnd.Source",Selector,{isSource:true,horizontal:false,copyOnly:false,selfCopy:false,selfAccept:true,skipForm:false,withHandles:false,autoSync:false,delay:0,accept:["text"],generateText:true,constructor:function(node,params){lang.mixin(this,lang.mixin({},params));var type=this.accept;if(type.length){this.accept={};for(var i=0;i<type.length;++i)this.accept[type[i]]=1}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=
null;this.before=true;this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource)domClass.add(this.node,"dojoDndSource");this.targetState="";if(this.accept)domClass.add(this.node,"dojoDndTarget");if(this.horizontal)domClass.add(this.node,"dojoDndHorizontal");this.topics=[topic.subscribe("/dnd/source/over",lang.hitch(this,"onDndSourceOver")),topic.subscribe("/dnd/start",lang.hitch(this,"onDndStart")),topic.subscribe("/dnd/drop",lang.hitch(this,"onDndDrop")),topic.subscribe("/dnd/cancel",lang.hitch(this,
"onDndCancel"))]},checkAcceptance:function(source,nodes){if(this==source)return!this.copyOnly||this.selfAccept;for(var i=0;i<nodes.length;++i){var type=source.getItem(nodes[i].id).type;var flag=false;for(var j=0;j<type.length;++j)if(type[j]in this.accept){flag=true;break}if(!flag)return false}return true},copyState:function(keyPressed,self){if(keyPressed)return true;if(arguments.length<2)self=this==Manager.manager().target;if(self){if(this.copyOnly)return this.selfCopy}else return this.copyOnly;return false},
destroy:function(){Source.superclass.destroy.call(this);array.forEach(this.topics,function(t){t.remove()});this.targetAnchor=null},_markTargetAnchorOn:function(hover){if(this.current==this.targetAnchor&&this.hover==hover)return;if(this.targetAnchor)this._removeItemClass(this.targetAnchor,this.hover?"Hover":"");this.targetAnchor=this.current;this.targetBox=null;this.hover=hover;if(this.targetAnchor)this._addItemClass(this.targetAnchor,this.hover?"Hover":"")},_unmarkTargetAnchorOn:function(){if(!this.targetAnchor)return;
this._removeItemClass(this.targetAnchor,this.hover?"Hover":"");this.targetAnchor=null;this.targetBox=null;this.hover=false},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled")return;Source.superclass.onMouseMove.call(this,e);var m=Manager.manager();if(!this.isDragging)if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay)){var nodes=this.getSelectedNodes();if(nodes.length)m.startDrag(this,nodes,this.copyState(dnd.getCopyKeyState(e),
true))}if(this.isDragging){var before=false;var isOn=false;if(this.current){if(!this.targetBox||this.targetAnchor!=this.current)this.targetBox=domGeom.position(this.current,true);if(this.horizontal)before=e.pageX-this.targetBox.x<this.targetBox.w/2==domGeom.isBodyLtr(this.current.ownerDocument);else{var center=this.targetBox.h/2;var snap=center+4;var pos=e.pageY-this.targetBox.y;isOn=pos<center+4&&pos>center-4;before=e.pageY-this.targetBox.y<this.targetBox.h/2}}this.hover=isOn;if(this.targetAnchor);
if(this.current!=this.targetAnchor||before!=this.before||isOn!=this.hover){this._markTargetAnchor(before);m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection))}}},onMouseDown:function(e){if(!this.mouseDown&&this._legalMouseDown(e)&&(!this.skipForm||!dnd.isFormElement(e))){this.mouseDown=true;this._lastX=e.pageX;this._lastY=e.pageY;Source.superclass.onMouseDown.call(this,e)}},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;Source.superclass.onMouseUp.call(this,
e)}},onDndSourceOver:function(source){if(this!==source){this.mouseDown=false;if(this.targetAnchor)this._unmarkTargetAnchor()}else if(this.isDragging){var m=Manager.manager();m.canDrop(this.targetState!="Disabled"&&(!this.current||m.source!=this||!(this.current.id in this.selection)))}},onDndStart:function(source,nodes,copy){if(this.autoSync)this.sync();if(this.isSource)this._changeState("Source",this==source?copy?"Copied":"Moved":"");var accepted=this.accept&&this.checkAcceptance(source,nodes);if(!accepted){0&&
console.log("not accepted");var a=this.checkAcceptance(source,nodes)}this._changeState("Target",accepted?"":"Disabled");if(this==source)Manager.manager().overSource(this);this.isDragging=true},onDndDrop:function(source,nodes,copy,target){if(this==target)this.onDrop(source,nodes,copy);this.onDndCancel()},onDndCancel:function(){if(this.targetAnchor){this._unmarkTargetAnchor();this._unmarkTargetAnchorOn();this.targetAnchor=null}this.before=true;this.isDragging=false;this.mouseDown=false;this.hover=false;
this._changeState("Source","");this._changeState("Target","")},onDrop:function(source,nodes,copy){if(this!=source)this.onDropExternal(source,nodes,copy);else this.onDropInternal(nodes,copy)},onDropExternal:function(source,nodes,copy){var oldCreator=this._normalizedCreator;if(this.creator)this._normalizedCreator=function(node,hint){return oldCreator.call(this,source.getItem(node.id).data,hint)};else if(copy)this._normalizedCreator=function(node){var t=source.getItem(node.id);var n=node.cloneNode(true);
n.id=dnd.getUniqueId();return{node:n,data:t.data,type:t.type}};else this._normalizedCreator=function(node){var t=source.getItem(node.id);source.delItem(node.id);return{node:node,data:t.data,type:t.type}};this.selectNone();if(!copy&&!this.creator)source.selectNone();this.insertNodes(true,nodes,this.before,this.current);if(!copy&&this.creator)source.deleteSelectedNodes();this._normalizedCreator=oldCreator},onDropInternal:function(nodes,copy){var oldCreator=this._normalizedCreator;if(this.current&&this.current.id in
this.selection)return;if(copy)if(this.creator)this._normalizedCreator=function(node,hint){return oldCreator.call(this,this.getItem(node.id).data,hint)};else this._normalizedCreator=function(node){var t=this.getItem(node.id);var n=node.cloneNode(true);n.id=dnd.getUniqueId();return{node:n,data:t.data,type:t.type}};else{if(!this.current)return;this._normalizedCreator=function(node){var t=this.getItem(node.id);return{node:node,data:t.data,type:t.type}}}this._removeSelection();this.insertNodes(true,nodes,
this.before,this.current);this._normalizedCreator=oldCreator},onDraggingOver:function(){},onDraggingOut:function(){},onOverEvent:function(){Source.superclass.onOverEvent.call(this);Manager.manager().overSource(this);if(this.isDragging&&this.targetState!="Disabled")this.onDraggingOver()},onOutEvent:function(){Source.superclass.onOutEvent.call(this);Manager.manager().outSource(this);if(this.isDragging&&this.targetState!="Disabled")this.onDraggingOut()},_markTargetAnchor:function(before){if(this.current==
this.targetAnchor&&this.before==before)return;if(this.targetAnchor)this._removeItemClass(this.targetAnchor,this.before?"Before":"After");this.targetAnchor=this.current;this.targetBox=null;this.before=before;if(this.targetAnchor)this._addItemClass(this.targetAnchor,this.before?"Before":"After")},_unmarkTargetAnchor:function(){if(!this.targetAnchor)return;this._removeItemClass(this.targetAnchor,this.before?"Before":"After");this.targetAnchor=null;this.targetBox=null;this.before=true},_markDndStatus:function(copy){this._changeState("Source",
copy?"Copied":"Moved")},_legalMouseDown:function(e){if(e.type!="touchstart"&&!mouse.isLeft(e))return false;if(!this.withHandles)return true;for(var node=e.target;node&&node!==this.node;node=node.parentNode){if(domClass.contains(node,"dojoDndHandle"))return true;if(domClass.contains(node,"dojoDndItem")||domClass.contains(node,"dojoDndIgnore"))break}return false}});return Source})},"xapp/manager/ContextBase":function(){define("xapp/manager/ContextBase",["dojo/_base/declare","dojo/i18n","xapp/manager/DataManager"],
function(declare,i18n){return declare("xapp.manager.ContextBase",null,{connectManager:null,getConnectManager:function(){return this.connectManager},language:"en",bootDelegate:null,serviceDelegate:null,headingToolbarDelegate:null,imageResizeDelegate:null,urlDelegate:null,formDelegate:null,shareDelegate:null,dataManager:null,pluginManager:null,hybridDelegate:null,getHybridDelegate:function(){return this.hybridDelegate},getPluginManager:function(){return this.pluginManager},getShareDelegate:function(){return this.shareDelegate},
getFormDelegate:function(){return this.formDelegate},getHeadingToolbarDelegate:function(){return this.headingToolbarDelegate},getUrlDelegate:function(){return this.urlDelegate},getImageResizeDelegate:function(){return this.imageResizeDelegate},getBootDelegate:function(){return this.bootDelegate},getServiceDelegate:function(){return this.serviceDelegate},getDataManager:function(){return this.dataManager},constructManagers:function(){if(!this.dataManager)this.dataManager=new xapp.manager.DataManager;
this.dataManager.ctx=this},getValidLanguage:function(){if(this.language!="en"&&this.language!="es"&&this.language!="de"&&this.language!="fr")return"en";return this.language},getLanguage:function(){if(this.language!="en"&&this.language!="es"&&this.language!="de"&&this.language!="fr")return"en";return this.language},getLocals:function(module,bundleName){var locals=null;try{locals=i18n.getLocalization(module,bundleName,this.language)}catch(e){}return locals},constructor:function(){if(typeof forceLanguage===
"undefined"||forceLanguage==null){if(navigator.appName=="Netscape")var language=navigator.language;else var language=navigator.browserLanguage;this.language=language.substring(0,2)}else this.language=forceLanguage}})})},"dijit/form/_ComboBoxMenu":function(){define("dijit/form/_ComboBoxMenu",["dojo/_base/declare","dojo/dom-class","dojo/dom-style","dojo/keys","../_WidgetBase","../_TemplatedMixin","./_ComboBoxMenuMixin","./_ListMouseMixin"],function(declare,domClass,domStyle,keys,_WidgetBase,_TemplatedMixin,
_ComboBoxMenuMixin,_ListMouseMixin){return declare("dijit.form._ComboBoxMenu",[_WidgetBase,_TemplatedMixin,_ListMouseMixin,_ComboBoxMenuMixin],{templateString:"\x3cdiv class\x3d'dijitReset dijitMenu' data-dojo-attach-point\x3d'containerNode' style\x3d'overflow: auto; overflow-x: hidden;' role\x3d'listbox'\x3e"+"\x3cdiv class\x3d'dijitMenuItem dijitMenuPreviousButton' data-dojo-attach-point\x3d'previousButton' role\x3d'option'\x3e\x3c/div\x3e"+"\x3cdiv class\x3d'dijitMenuItem dijitMenuNextButton' data-dojo-attach-point\x3d'nextButton' role\x3d'option'\x3e\x3c/div\x3e"+
"\x3c/div\x3e",baseClass:"dijitComboBoxMenu",postCreate:function(){this.inherited(arguments);if(!this.isLeftToRight()){domClass.add(this.previousButton,"dijitMenuItemRtl");domClass.add(this.nextButton,"dijitMenuItemRtl")}this.containerNode.setAttribute("role","listbox")},_createMenuItem:function(){var item=this.ownerDocument.createElement("div");item.className="dijitReset dijitMenuItem"+(this.isLeftToRight()?"":" dijitMenuItemRtl");item.setAttribute("role","option");return item},onHover:function(node){domClass.add(node,
"dijitMenuItemHover")},onUnhover:function(node){domClass.remove(node,"dijitMenuItemHover")},onSelect:function(node){domClass.add(node,"dijitMenuItemSelected")},onDeselect:function(node){domClass.remove(node,"dijitMenuItemSelected")},_page:function(up){var scrollamount=0;var oldscroll=this.domNode.scrollTop;var height=domStyle.get(this.domNode,"height");if(!this.getHighlightedOption())this.selectNextNode();while(scrollamount<height){var highlighted_option=this.getHighlightedOption();if(up){if(!highlighted_option.previousSibling||
highlighted_option.previousSibling.style.display=="none")break;this.selectPreviousNode()}else{if(!highlighted_option.nextSibling||highlighted_option.nextSibling.style.display=="none")break;this.selectNextNode()}var newscroll=this.domNode.scrollTop;scrollamount+=(newscroll-oldscroll)*(up?-1:1);oldscroll=newscroll}},handleKey:function(evt){switch(evt.keyCode){case keys.DOWN_ARROW:this.selectNextNode();return false;case keys.PAGE_DOWN:this._page(false);return false;case keys.UP_ARROW:this.selectPreviousNode();
return false;case keys.PAGE_UP:this._page(true);return false;default:return true}}})})},"xide/widgets/ToolTipMixin":function(){define(["dojo/_base/declare","dojo/on","dojo/mouse","xide/utils","dijit/Tooltip"],function(declare,on,mouse,utils,Tooltip){return declare("xide.widgets.ToolTipMixin",null,{ttMaxCount:3,initToolTip:function(text,maxCount,delay){if(!text)return;var str=text.replace(/\n/g,"\x3cbr/\x3e");if(maxCount!=null)this.ttMaxCount=maxCount;if(str&&utils.isValidString(str)){this["tt"]=new Tooltip({innerHTML:str,
showDelay:delay!=null?delay:1500});this["tt"].startup();this["tt"].addTarget(this.getTooltipNode?this.getTooltipNode():this.domNode)}}})})},"dojo/errors/create":function(){define(["../_base/lang"],function(lang){return function(name,ctor,base,props){base=base||Error;var ErrorCtor=function(message){if(base===Error){if(Error.captureStackTrace)Error.captureStackTrace(this,ErrorCtor);var err=Error.call(this,message),prop;for(prop in err)if(err.hasOwnProperty(prop))this[prop]=err[prop];this.message=message;
this.stack=err.stack}else base.apply(this,arguments);if(ctor)ctor.apply(this,arguments)};ErrorCtor.prototype=lang.delegate(base.prototype,props);ErrorCtor.prototype.name=name;ErrorCtor.prototype.constructor=ErrorCtor;return ErrorCtor}})},"dojo/_base/config":function(){define(["../has","require"],function(has,require){var result={};if(1){var src=require.rawConfig,p;for(p in src)result[p]=src[p]}else{var adviseHas=function(featureSet,prefix,booting){for(p in featureSet)p!="has"&&has.add(prefix+p,featureSet[p],
0,booting)};result=1?require.rawConfig:this.dojoConfig||this.djConfig||{};adviseHas(result,"config",1);adviseHas(result.has,"",1)}if(!result.locale&&typeof navigator!="undefined"){var language=navigator.language||navigator.userLanguage;if(language)result.locale=language.toLowerCase()}return result})},"xfile/manager/MountManager":function(){define("xfile/manager/MountManager",["dojo/_base/declare","dojo/_base/lang","dojo/dom-class","xide/manager/ResourceManager","xide/mixins/ReloadMixin","xide/mixins/EventedMixin",
"xide/types","dojo/aspect","xide/utils","xide/views/CIActionDialog","xfile/views/FileDeleteDialog"],function(declare,lang,domClass,ResourceManager,ReloadMixin,EventedMixin,types,aspect,utils,CIActionDialog,FileDeleteDialog){return declare("xfile.manager.MountManager",[ResourceManager,EventedMixin,ReloadMixin],{serviceClass:"XApp_Resource_Service",mountData:null,didReload:false,editMount:function(mount){if(!mount)return;if(mount.type==="FILE_PROXY")this.registerLocalMount(mount);else if(mount.type===
"REMOTE_FILE_PROXY")if(mount.adapter==="Ftp")this.registerFTP(mount)},removeMount:function(mount){if(!mount)return;var thiz=this;var onOk=function(){var _cb=function(){thiz.ls(function(data){thiz.onMountDataReady(data)})};thiz.removeResource(mount,false,_cb)};var dlg=new FileDeleteDialog({title:"Remove "+mount.name,config:this.config,delegate:{onOk:function(){onOk()}},ctx:this.ctx,titleBarClass:"ui-state-error",inserts:[{query:".dijitDialogPaneContent",insert:'\x3cdiv\x3e\x3cspan class\x3d"fileManagerDialogText"\x3eDo you really want to remove this item'+
"?\x3c/span\x3e\x3c/div\x3e",place:"first"}]});domClass.add(dlg.domNode,"fileOperationDialog");dlg.show();dlg.addActionButtons();dlg.fixHeight();dlg.resize();setTimeout(function(){dlg.resize()},1E3)},getMounts:function(){return this.mountData},_patchMenu:function(widget){var thiz=this;aspect.after(widget,"onOpen",function(){if(this._popupWrapper&&this._popupWrapper){var dst=this._popupWrapper;domClass.add(dst,"ui-menu ui-widget ui-widget-content")}})},_onDialogOk:function(dlg,data,mount){var options=
utils.toOptions(data);var thiz=this;var isUpdate=mount.name!=null;var resourceObject={"class":"cmx.types.Resource","enabled":true};for(var i=0;i<options.length;i++){var option=options[i];if(option.user==null)resourceObject[option.name]=option.value;else{if(!resourceObject.config)resourceObject.config={};resourceObject.config[option.name]=option.value}}var label=""+resourceObject.label;resourceObject.name=mount.name||label.toLowerCase();if(resourceObject.type==="FILE_PROXY")resourceObject.path="%"+
resourceObject.name+"%";else if(resourceObject.type==="REMOTE_FILE_PROXY")resourceObject.path=resourceObject.name+"://";var _cb=function(){thiz.ls(function(data){thiz.onMountDataReady(data)})};if(!isUpdate)this.createResource(resourceObject,false,_cb);else this.updateResource(resourceObject,false,_cb)},_getStandardSettings:function(){},registerLocalMount:function(mount){var name=mount?mount.name:"";var path=mount?mount.path:"";var thiz=this;var actionDialog=new CIActionDialog({title:name?"Edit Mount "+
name:"New Local Mount",style:"max-width:400px",delegate:{onOk:function(dlg,data){thiz._onDialogOk(dlg,data,mount)}},cis:[utils.createCI("label",13,"",{group:"Common",title:"Name",value:name}),utils.createCI("path",13,"",{group:"Common",title:"Path",value:path}),utils.createCI("type",13,"",{visible:false,value:"FILE_PROXY"})]});actionDialog.show()},registerFTP:function(mount){mount=mount||{};var config=mount.config||{};var thiz=this;var actionDialog=new CIActionDialog({title:mount.name?"Edit Ftp "+
mount.name:"New Ftp",style:"max-width:400px",delegate:{onOk:function(dlg,data){thiz._onDialogOk(dlg,data,mount)}},cis:[utils.createCI("label",13,"",{group:"Common",title:"Name",value:mount.name}),utils.createCI("root",13,"",{group:"Ftp",title:"Start Path",value:config.root,user:{config:true}}),utils.createCI("adapter",13,"",{visible:false,value:"Ftp"}),utils.createCI("host",13,"",{group:"Ftp",title:"Host",user:{config:true},value:config.host}),utils.createCI("username",13,"",{group:"Ftp",title:"User",
user:{config:true},value:config.username}),utils.createCI("password",13,"",{group:"Ftp",title:"Password",user:{config:true},value:config.password}),utils.createCI("passive",0,"",{group:"Ftp",title:"Passive",user:{config:true},value:config.passive}),utils.createCI("ssl",0,"",{group:"Ftp",title:"SSL",user:{config:true},value:config.ssl!=null?config.ssl:false}),utils.createCI("port",13,"",{group:"Ftp",title:"Port",user:{config:true},value:config.port!=null?config.port:21}),utils.createCI("type",13,"",
{visible:false,value:"REMOTE_FILE_PROXY"})]});actionDialog.show()},registerSFTP:function(mount){mount=mount||{};var config=mount.config||{};var thiz=this;var actionDialog=new CIActionDialog({title:mount.name?"Edit Ftp "+mount.name:"New Ftp",style:"max-width:400px",delegate:{onOk:function(dlg,data){thiz._onDialogOk(dlg,data,mount)}},cis:[utils.createCI("label",13,"",{group:"Common",title:"Name",value:mount.name}),utils.createCI("root",13,"",{group:"SFtp",title:"Start Path",value:config.root,user:{config:true}}),
utils.createCI("adapter",13,"",{visible:false,value:"SFtp"}),utils.createCI("host",13,"",{group:"SFtp",title:"Host",user:{config:true},value:config.host}),utils.createCI("username",13,"",{group:"SFtp",title:"User",user:{config:true},value:config.username}),utils.createCI("password",13,"",{group:"SFtp",title:"Password",user:{config:true},value:config.password}),utils.createCI("port",13,"",{group:"SFtp",title:"Port",user:{config:true},value:config.port!=null?config.port:22}),utils.createCI("type",13,
"",{visible:false,value:"REMOTE_FILE_PROXY"})]});actionDialog.show()},registerDropbox:function(){var thiz=this;var actionDialog=new CIActionDialog({title:"New Dropbox",style:"max-width:400px",delegate:{onOk:function(dlg,data){thiz._onDialogOk(dlg,data)}},cis:[utils.createCI("label",13,"",{group:"Common",title:"Name",value:"Dropbox1"}),utils.createCI("pathPrefix",13,"",{group:"Common",title:"Start Path",user:{config:true}}),utils.createCI("adapter",13,"",{visible:false,value:"Dropbox"}),utils.createCI("token",
13,"",{group:"Dropbox",title:"Token",user:{config:true},value:"h16UVItP7qQAAAAAAAAABP3qmBJFOHj3fA5ffKyaHH-j7HCLvFOceZxhENV0sy24"}),utils.createCI("appname",13,"",{group:"Dropbox",title:"App Name",user:{config:true},value:"xapp_local"}),utils.createCI("type",13,"",{visible:false,value:"REMOTE_FILE_PROXY"})]});actionDialog.show()},registerWebDav:function(){var thiz=this;var actionDialog=new CIActionDialog({title:"New Webdav",style:"max-width:400px",delegate:{onOk:function(dlg,data){thiz._onDialogOk(dlg,
data)}},cis:[utils.createCI("label",13,"",{group:"Common",title:"name"}),utils.createCI("pathPrefix",13,"",{group:"Common",title:"Start Path"}),utils.createCI("adapter",13,"",{visible:false,value:"WebDav"}),utils.createCI("host",13,"",{group:"WebDav",title:"Host"}),utils.createCI("baseUri",13,"",{group:"WebDav",title:"Base URI"}),utils.createCI("userName",13,"",{group:"WebDav",title:"User Name"}),utils.createCI("password",13,"",{group:"WebDav",title:"Password"}),utils.createCI("type",13,"",{visible:false,
value:"REMOTE_FILE_PROXY"})]});actionDialog.show()},onSourceMenuOpened:function(evt){0&&console.log("source menu open");var menu=evt["menu"];if(this.config.ALLOWED_ACTIONS[types.OPERATION_INT.ADD_MOUNT])if(!menu["mountMenu"]){var pSubMenu=new dijit.Menu({parentMenu:menu});this._patchMenu(pSubMenu);var local=new dijit.MenuItem({label:"Local",onClick:lang.hitch(this,"registerLocalMount"),"iconClass":"el-icon-folder-open"});pSubMenu.addChild(local);var db=new dijit.MenuItem({label:"Dropbox",onClick:lang.hitch(this,
"registerDropbox"),"iconClass":"fa-dropbox"});pSubMenu.addChild(db);var webdav=new dijit.MenuItem({label:"WEB DAV",onClick:lang.hitch(this,"registerWebDav"),"iconClass":"fa-cloud"});pSubMenu.addChild(webdav);var ftp=new dijit.MenuItem({label:"FTP",onClick:lang.hitch(this,"registerFTP"),"iconClass":"fa-cloud"});pSubMenu.addChild(ftp);var sftp=new dijit.MenuItem({label:"SFTP",onClick:lang.hitch(this,"registerSFTP"),"iconClass":"fa-cloud"});pSubMenu.addChild(sftp);menu.addChild(new dijit.PopupMenuItem({label:"Add",
popup:pSubMenu,iconClass:"el-icon-plus"}));menu["mountMenu"]=pSubMenu}},onReloaded:function(){0&&console.log("mount manager reloaded")},onMountDataReady:function(data){this.mountData=data;this.publish(types.EVENTS.ON_MOUNT_DATA_READY,{data:data});var thiz=this;setTimeout(function(){thiz.publish(types.EVENTS.ON_MOUNT_DATA_READY,{data:data})},4E3)},check:function(){if(!this.serviceObject)this._initService()},init:function(){if(this.ctx.getFileManager())this.serviceObject=this.ctx.getFileManager().serviceObject;
this.inherited(arguments);this.initReload();var thiz=this;this.ls(function(data){thiz.onMountDataReady(data)});try{this.subscribe(types.EVENTS.ON_SOURCE_MENU_OPEN,this.onSourceMenuOpened)}catch(e){debugger}},createResource:function(resource,test,readyCB){return this.callMethodEx(null,"createResource",[resource,test],readyCB,true)},removeResource:function(resource,test,readyCB){return this.callMethodEx(null,"removeResource",[resource,true],readyCB,true)},updateResource:function(resource,test,readyCB){return this.callMethodEx(null,
"updateResource",[resource,true],readyCB,true)},ls:function(readyCB){var thiz=this;var _cb=function(data){thiz.mountData=data;if(readyCB)readyCB(data)};return this.callMethodEx(null,"ls",[],_cb,false)}})})},"xapp/widgets/_CSSMixin":function(){define("xapp/widgets/_CSSMixin",["dojo/_base/declare","dojo/dom-class"],function(declare,domClass){return declare("xapp.widgets._CSSMixin",null,{buildRendering:function(){this.inherited(arguments);if(this.cssClass)if(this.cssClass.indexOf(" ")==-1)domClass.add(this.containerNode||
this.domNode,this.cssClass);else{var _cssNames=this.cssClass.split(" ");for(var i=0;i<_cssNames.length;i++)domClass.add(this.containerNode||this.domNode,_cssNames[i])}}})})},"dojox/mobile/ListItem":function(){define("dojox/mobile/ListItem",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/dom-class","dojo/dom-construct","dojo/dom-style","dojo/dom-attr","dijit/registry","dijit/_WidgetBase","./iconUtils","./_ItemBase","./ProgressIndicator","dojo/has","require"],function(array,declare,
lang,domClass,domConstruct,domStyle,domAttr,registry,WidgetBase,iconUtils,ItemBase,ProgressIndicator,has,BidiListItem){var ListItem=declare(0?"dojox.mobile.NonBidiListItem":"dojox.mobile.ListItem",ItemBase,{rightText:"",rightIcon:"",rightIcon2:"",deleteIcon:"",anchorLabel:false,noArrow:false,checked:false,arrowClass:"",checkClass:"",uncheckClass:"",variableHeight:false,rightIconTitle:"",rightIcon2Title:"",header:false,tag:"li",busy:false,progStyle:"",paramsToInherit:"variableHeight,transition,deleteIcon,icon,rightIcon,rightIcon2,uncheckIcon,arrowClass,checkClass,uncheckClass,deleteIconTitle,deleteIconRole",
baseClass:"mblListItem",_selStartMethod:"touch",_selEndMethod:"timer",_delayedSelection:true,_selClass:"mblListItemSelected",buildRendering:function(){this._templated=!!this.templateString;if(!this._templated)this.domNode=this.containerNode=this.srcNodeRef||domConstruct.create(this.tag);this.inherited(arguments);if(this.selected)domClass.add(this.domNode,this._selClass);if(this.header)domClass.replace(this.domNode,"mblEdgeToEdgeCategory",this.baseClass);if(!this._templated){this.labelNode=domConstruct.create("div",
{className:"mblListItemLabel"});var ref=this.srcNodeRef;if(ref&&ref.childNodes.length===1&&ref.firstChild.nodeType===3)this.labelNode.appendChild(ref.firstChild);this.domNode.appendChild(this.labelNode)}this._layoutChildren=[]},startup:function(){if(this._started)return;var parent=this.getParent();var opts=this.getTransOpts();if((!this._templated||this.labelNode)&&this.anchorLabel){this.labelNode.style.display="inline";this.labelNode.style.cursor="pointer";this.connect(this.labelNode,"onclick","_onClick");
this.onTouchStart=function(e){return e.target!==this.labelNode}}if(opts.moveTo||opts.href||opts.url||this.clickable||parent&&parent.select){this.connect(this.domNode,"onkeydown","_onClick");domAttr.set(this.domNode,"role","button")}else this._handleClick=false;this.inherited(arguments);if(domClass.contains(this.domNode,"mblVariableHeight"))this.variableHeight=true;if(this.variableHeight){domClass.add(this.domNode,"mblVariableHeight");this.defer("layoutVariableHeight")}if(!this._isOnLine){this._isOnLine=
true;this.set({icon:this._pending_icon!==undefined?this._pending_icon:this.icon,deleteIcon:this._pending_deleteIcon!==undefined?this._pending_deleteIcon:this.deleteIcon,rightIcon:this._pending_rightIcon!==undefined?this._pending_rightIcon:this.rightIcon,rightIcon2:this._pending_rightIcon2!==undefined?this._pending_rightIcon2:this.rightIcon2,uncheckIcon:this._pending_uncheckIcon!==undefined?this._pending_uncheckIcon:this.uncheckIcon});delete this._pending_icon;delete this._pending_deleteIcon;delete this._pending_rightIcon;
delete this._pending_rightIcon2;delete this._pending_uncheckIcon}if(parent&&parent.select){this.set("checked",this._pendingChecked!==undefined?this._pendingChecked:this.checked);delete this._pendingChecked}this.setArrow();this.layoutChildren()},_updateHandles:function(){var parent=this.getParent();var opts=this.getTransOpts();if(opts.moveTo||opts.href||opts.url||this.clickable||parent&&parent.select){if(!this._keydownHandle)this._keydownHandle=this.connect(this.domNode,"onkeydown","_onClick");this._handleClick=
true}else{if(this._keydownHandle){this.disconnect(this._keydownHandle);this._keydownHandle=null}this._handleClick=false}this.inherited(arguments)},layoutChildren:function(){var centerNode;array.forEach(this.domNode.childNodes,function(n){if(n.nodeType!==1)return;var layout=n.getAttribute("layout")||n.getAttribute("data-mobile-layout")||(registry.byNode(n)||{}).layout;if(layout){domClass.add(n,"mblListItemLayout"+layout.charAt(0).toUpperCase()+layout.substring(1));this._layoutChildren.push(n);if(layout===
"center")centerNode=n}},this);if(centerNode)this.domNode.insertBefore(centerNode,this.domNode.firstChild)},resize:function(){if(this.variableHeight)this.layoutVariableHeight();if(!this._templated||this.labelNode)this.labelNode.style.display=this.labelNode.firstChild?"block":"inline"},_onTouchStart:function(e){if(e.target.getAttribute("preventTouch")||e.target.getAttribute("data-mobile-prevent-touch")||(registry.getEnclosingWidget(e.target)||{}).preventTouch)return;this.inherited(arguments)},_onClick:function(e){if(this.getParent().isEditing||
e&&e.type==="keydown"&&e.keyCode!==13)return;if(this.onClick(e)===false)return;var n=this.labelNode;if((this._templated||n)&&this.anchorLabel&&e.currentTarget===n){domClass.add(n,"mblListItemLabelSelected");this.defer(function(){domClass.remove(n,"mblListItemLabelSelected")},this._duration);this.onAnchorLabelClicked(e);return}var parent=this.getParent();if(parent.select)if(parent.select==="single"){if(!this.checked)this.set("checked",true)}else if(parent.select==="multiple")this.set("checked",!this.checked);
this.defaultClickAction(e)},onClick:function(){},onAnchorLabelClicked:function(e){},layoutVariableHeight:function(){var h=this.domNode.offsetHeight;if(h===this.domNodeHeight)return;this.domNodeHeight=h;array.forEach(this._layoutChildren.concat([this.rightTextNode,this.rightIcon2Node,this.rightIconNode,this.uncheckIconNode,this.iconNode,this.deleteIconNode,this.knobIconNode]),function(n){if(n){var domNode=this.domNode;var f=function(){var t=Math.round((domNode.offsetHeight-n.offsetHeight)/2)-domStyle.get(domNode,
"paddingTop");n.style.marginTop=t+"px"};if(n.offsetHeight===0&&n.tagName==="IMG")n.onload=f;else f()}},this)},setArrow:function(){if(this.checked)return;var c="";var parent=this.getParent();var opts=this.getTransOpts();if(opts.moveTo||opts.href||opts.url||this.clickable)if(!this.noArrow&&!(parent&&parent.selectOne))c=this.arrowClass||"mblDomButtonArrow";if(c)this._setRightIconAttr(c)},_findRef:function(type){var i,node,list=["deleteIcon","icon","rightIcon","uncheckIcon","rightIcon2","rightText"];
for(i=array.indexOf(list,type)+1;i<list.length;i++){node=this[list[i]+"Node"];if(node)return node}for(i=list.length-1;i>=0;i--){node=this[list[i]+"Node"];if(node)return node.nextSibling}return this.domNode.firstChild},_setIcon:function(icon,type){if(!this._isOnLine){this["_pending_"+type]=icon;return}this._set(type,icon);this[type+"Node"]=iconUtils.setIcon(icon,this[type+"Pos"],this[type+"Node"],this[type+"Title"]||this.alt,this.domNode,this._findRef(type),"before");if(this[type+"Node"]){var cap=
type.charAt(0).toUpperCase()+type.substring(1);domClass.add(this[type+"Node"],"mblListItem"+cap)}var role=this[type+"Role"];if(role)this[type+"Node"].setAttribute("role",role)},_setDeleteIconAttr:function(icon){this._setIcon(icon,"deleteIcon")},_setIconAttr:function(icon){this._setIcon(icon,"icon")},_setRightTextAttr:function(text){if(!this._templated&&!this.rightTextNode)this.rightTextNode=domConstruct.create("div",{className:"mblListItemRightText"},this.labelNode,"before");this.rightText=text;this.rightTextNode.innerHTML=
this._cv?this._cv(text):text},_setRightIconAttr:function(icon){this._setIcon(icon,"rightIcon")},_setUncheckIconAttr:function(icon){this._setIcon(icon,"uncheckIcon")},_setRightIcon2Attr:function(icon){this._setIcon(icon,"rightIcon2")},_setCheckedAttr:function(checked){if(!this._isOnLine){this._pendingChecked=checked;return}var parent=this.getParent();if(parent&&parent.select==="single"&&checked)array.forEach(parent.getChildren(),function(child){child!==this&&child.checked&&child.set("checked",false)},
this);this._setRightIconAttr(this.checkClass||"mblDomButtonCheck");this._setUncheckIconAttr(this.uncheckClass);domClass.toggle(this.domNode,"mblListItemChecked",checked);domClass.toggle(this.domNode,"mblListItemUnchecked",!checked);domClass.toggle(this.domNode,"mblListItemHasUncheck",!!this.uncheckIconNode);this.rightIconNode.style.position=this.uncheckIconNode&&!checked?"absolute":"";if(parent&&this.checked!==checked)parent.onCheckStateChanged(this,checked);this._set("checked",checked)},_setBusyAttr:function(busy){var prog=
this._prog;if(busy){if(!this._progNode){this._progNode=domConstruct.create("div",{className:"mblListItemIcon"});prog=this._prog=new ProgressIndicator({size:25,center:false,removeOnStop:false});domClass.add(prog.domNode,this.progStyle);this._progNode.appendChild(prog.domNode)}if(this.iconNode)this.domNode.replaceChild(this._progNode,this.iconNode);else domConstruct.place(this._progNode,this._findRef("icon"),"before");prog.start()}else if(this._progNode){if(this.iconNode)this.domNode.replaceChild(this.iconNode,
this._progNode);else this.domNode.removeChild(this._progNode);prog.stop()}this._set("busy",busy)},_setSelectedAttr:function(selected){this.inherited(arguments);domClass.toggle(this.domNode,this._selClass,selected)},_setClickableAttr:function(clickable){this._set("clickable",clickable);this._updateHandles()},_setMoveToAttr:function(moveTo){this._set("moveTo",moveTo);this._updateHandles()},_setHrefAttr:function(href){this._set("href",href);this._updateHandles()},_setUrlAttr:function(url){this._set("url",
url);this._updateHandles()}});ListItem.ChildWidgetProperties={layout:"",preventTouch:false};lang.extend(WidgetBase,ListItem.ChildWidgetProperties);return 0?declare("dojox.mobile.ListItem",[ListItem,BidiListItem]):ListItem})},"xfile/manager/ClipboardManager":function(){define("xfile/manager/ClipboardManager",["dojo/_base/declare","dojo/_base/lang","xide/factory","xide/types","xide/widgets/TemplatedWidgetBase"],function(declare,lang,factory,types,TemplatedWidgetBase){return declare("xfile.manager.ClipboardManager",
[TemplatedWidgetBase],{templateString:"\x3cdiv\x3e\x3c/div\x3e",currentCopySelection:null,currentCutSelection:null,onPaste:function(data){var selection=this.currentCopySelection||this.currentCutSelection;var owner=data?data?data.owner?data.owner:null:null:null;var isCopy=this.currentCopySelection!=null;if(selection&&owner){var dst=null;var panelDelegate=owner.panelDelegate||owner;if(panelDelegate&&panelDelegate.getCurrentPathItem)dst=panelDelegate.getCurrentPathItem();var path=panelDelegate.getCurrentPath();
if(path&&owner&&owner.store)dst=owner.store.getItemByPath(null,path);if(dst){var delegate=owner.panelManager?owner.panelManager:null;if(delegate)if(isCopy)delegate.copyItems(null,selection,dst,null,true);else{delegate.moveItems(null,selection,dst,null,true);this.currentCutSelection=null;this.currentCopySelection=null}}}},onCopy:function(data){var selection=data?data.items?data.items:null:null;if(selection)this.currentCopySelection=selection;this.currentCutSelection=null},onCut:function(data){var selection=
data?data.items?data.items:null:null;if(selection)this.currentCutSelection=selection;this.currentCopySelection=null},init:function(){factory.subscribe(types.EVENTS.ON_CLIPBOARD_COPY,this.onCopy,this);factory.subscribe(types.EVENTS.ON_CLIPBOARD_PASTE,this.onPaste,this);factory.subscribe(types.EVENTS.ON_CLIPBOARD_CUT,this.onCut,this);this._setupTranslations()}})})},"xide/utils/_LogMixin":function(){define(["dojo/_base/declare","xide/utils"],function(declare,utils){return declare("xide.utils._LogMixin",
null,{debug_conf:null,initLogger:function(debug_config){this.debug_conf=debug_config},log:function(msg,msg_context){if(!msg_context)msg_context=this._debugContext()["main"];if(this.showDebugMsg(msg_context))0&&console.log(msg)},showDebugMsg:function(msg_context){if(this.debug_conf!=null)if(this.debug_conf["all"])return true;else if(this.debug_conf[msg_context])return true;else return false;else{0&&console.log("No debug config, showing all.");this.debug_conf={"all":true};return true}}})})},"dojo/parser":function(){define(["require",
"./_base/kernel","./_base/lang","./_base/array","./_base/config","./dom","./_base/window","./_base/url","./aspect","./promise/all","./date/stamp","./Deferred","./has","./query","./on","./ready"],function(require,dojo,dlang,darray,config,dom,dwindow,_Url,aspect,all,dates,Deferred,has,query,don,ready){JSCOMPILER_PRESERVE(new Date("X"));function myEval(text){return eval("("+text+")")}var extendCnt=0;aspect.after(dlang,"extend",function(){extendCnt++},true);function getNameMap(ctor){var map=ctor._nameCaseMap,
proto=ctor.prototype;if(!map||map._extendCnt<extendCnt){map=ctor._nameCaseMap={};for(var name in proto){if(name.charAt(0)==="_")continue;map[name.toLowerCase()]=name}map._extendCnt=extendCnt}return map}var _ctorMap={};function getCtor(types,contextRequire){var ts=types.join();if(!_ctorMap[ts]){var mixins=[];for(var i=0,l=types.length;i<l;i++){var t=types[i];mixins[mixins.length]=_ctorMap[t]=_ctorMap[t]||dlang.getObject(t)||~t.indexOf("/")&&(contextRequire?contextRequire(t):require(t))}var ctor=mixins.shift();
_ctorMap[ts]=mixins.length?ctor.createSubclass?ctor.createSubclass(mixins):ctor.extend.apply(ctor,mixins):ctor}return _ctorMap[ts]}var parser={_clearCache:function(){extendCnt++;_ctorMap={}},_functionFromScript:function(script,attrData){var preamble="",suffix="",argsStr=script.getAttribute(attrData+"args")||script.getAttribute("args"),withStr=script.getAttribute("with");var fnArgs=(argsStr||"").split(/\s*,\s*/);if(withStr&&withStr.length)darray.forEach(withStr.split(/\s*,\s*/),function(part){preamble+=
"with("+part+"){";suffix+="}"});return new Function(fnArgs,preamble+script.innerHTML+suffix)},instantiate:function(nodes,mixin,options){mixin=mixin||{};options=options||{};var dojoType=(options.scope||dojo._scopeName)+"Type",attrData="data-"+(options.scope||dojo._scopeName)+"-",dataDojoType=attrData+"type",dataDojoMixins=attrData+"mixins";var list=[];darray.forEach(nodes,function(node){var type=dojoType in mixin?mixin[dojoType]:node.getAttribute(dataDojoType)||node.getAttribute(dojoType);if(type){var mixinsValue=
node.getAttribute(dataDojoMixins),types=mixinsValue?[type].concat(mixinsValue.split(/\s*,\s*/)):[type];list.push({node:node,types:types})}});return this._instantiate(list,mixin,options)},_instantiate:function(nodes,mixin,options,returnPromise){var thelist=darray.map(nodes,function(obj){var ctor=obj.ctor||getCtor(obj.types,options.contextRequire);if(!ctor)throw new Error("Unable to resolve constructor for: '"+obj.types.join()+"'");return this.construct(ctor,obj.node,mixin,options,obj.scripts,obj.inherited)},
this);function onConstruct(thelist){if(!mixin._started&&!options.noStart)darray.forEach(thelist,function(instance){if(typeof instance.startup==="function"&&!instance._started)instance.startup()});return thelist}if(returnPromise)return all(thelist).then(onConstruct);else return onConstruct(thelist)},construct:function(ctor,node,mixin,options,scripts,inherited){var proto=ctor&&ctor.prototype;options=options||{};var params={};if(options.defaults)dlang.mixin(params,options.defaults);if(inherited)dlang.mixin(params,
inherited);var attributes;if(has("dom-attributes-explicit"))attributes=node.attributes;else if(has("dom-attributes-specified-flag"))attributes=darray.filter(node.attributes,function(a){return a.specified});else{var clone=/^input$|^img$/i.test(node.nodeName)?node:node.cloneNode(false),attrs=clone.outerHTML.replace(/=[^\s"']+|="[^"]*"|='[^']*'/g,"").replace(/^\s*<[a-zA-Z0-9]*\s*/,"").replace(/\s*>.*$/,"");attributes=darray.map(attrs.split(/\s+/),function(name){var lcName=name.toLowerCase();return{name:name,
value:node.nodeName=="LI"&&name=="value"||lcName=="enctype"?node.getAttribute(lcName):node.getAttributeNode(lcName).value}})}var scope=options.scope||dojo._scopeName,attrData="data-"+scope+"-",hash={};if(scope!=="dojo"){hash[attrData+"props"]="data-dojo-props";hash[attrData+"type"]="data-dojo-type";hash[attrData+"mixins"]="data-dojo-mixins";hash[scope+"type"]="dojoType";hash[attrData+"id"]="data-dojo-id"}var i=0,item,funcAttrs=[],jsname,extra;while(item=attributes[i++]){var name=item.name,lcName=
name.toLowerCase(),value=item.value;switch(hash[lcName]||lcName){case "data-dojo-type":case "dojotype":case "data-dojo-mixins":break;case "data-dojo-props":extra=value;break;case "data-dojo-id":case "jsid":jsname=value;break;case "data-dojo-attach-point":case "dojoattachpoint":params.dojoAttachPoint=value;break;case "data-dojo-attach-event":case "dojoattachevent":params.dojoAttachEvent=value;break;case "class":params["class"]=node.className;break;case "style":params["style"]=node.style&&node.style.cssText;
break;default:if(!(name in proto)){var map=getNameMap(ctor);name=map[lcName]||name}if(name in proto)switch(typeof proto[name]){case "string":params[name]=value;break;case "number":params[name]=value.length?Number(value):NaN;break;case "boolean":params[name]=value.toLowerCase()!="false";break;case "function":if(value===""||value.search(/[^\w\.]+/i)!=-1)params[name]=new Function(value);else params[name]=dlang.getObject(value,false)||new Function(value);funcAttrs.push(name);break;default:var pVal=proto[name];
params[name]=pVal&&"length"in pVal?value?value.split(/\s*,\s*/):[]:pVal instanceof Date?value==""?new Date(""):value=="now"?new Date:dates.fromISOString(value):pVal instanceof _Url?dojo.baseUrl+value:myEval(value)}else params[name]=value}}for(var j=0;j<funcAttrs.length;j++){var lcfname=funcAttrs[j].toLowerCase();node.removeAttribute(lcfname);node[lcfname]=null}if(extra)try{extra=myEval.call(options.propsThis,"{"+extra+"}");dlang.mixin(params,extra)}catch(e){throw new Error(e.toString()+" in data-dojo-props\x3d'"+
extra+"'");}dlang.mixin(params,mixin);if(!scripts)scripts=ctor&&(ctor._noScript||proto._noScript)?[]:query("\x3e script[type^\x3d'dojo/']",node);var aspects=[],calls=[],watches=[],ons=[];if(scripts)for(i=0;i<scripts.length;i++){var script=scripts[i];node.removeChild(script);var event=script.getAttribute(attrData+"event")||script.getAttribute("event"),prop=script.getAttribute(attrData+"prop"),method=script.getAttribute(attrData+"method"),advice=script.getAttribute(attrData+"advice"),scriptType=script.getAttribute("type"),
nf=this._functionFromScript(script,attrData);if(event)if(scriptType=="dojo/connect")aspects.push({method:event,func:nf});else if(scriptType=="dojo/on")ons.push({event:event,func:nf});else params[event]=nf;else if(scriptType=="dojo/aspect")aspects.push({method:method,advice:advice,func:nf});else if(scriptType=="dojo/watch")watches.push({prop:prop,func:nf});else calls.push(nf)}var markupFactory=ctor.markupFactory||proto.markupFactory;var instance=markupFactory?markupFactory(params,node,ctor):new ctor(params,
node);function onInstantiate(instance){if(jsname)dlang.setObject(jsname,instance);for(i=0;i<aspects.length;i++)aspect[aspects[i].advice||"after"](instance,aspects[i].method,dlang.hitch(instance,aspects[i].func),true);for(i=0;i<calls.length;i++)calls[i].call(instance);for(i=0;i<watches.length;i++)instance.watch(watches[i].prop,watches[i].func);for(i=0;i<ons.length;i++)don(instance,ons[i].event,ons[i].func);return instance}if(instance.then)return instance.then(onInstantiate);else return onInstantiate(instance)},
scan:function(root,options){var list=[],mids=[],midsHash={};var dojoType=(options.scope||dojo._scopeName)+"Type",attrData="data-"+(options.scope||dojo._scopeName)+"-",dataDojoType=attrData+"type",dataDojoTextDir=attrData+"textdir",dataDojoMixins=attrData+"mixins";var node=root.firstChild;var inherited=options.inherited;if(!inherited){function findAncestorAttr(node,attr){return node.getAttribute&&node.getAttribute(attr)||node.parentNode&&findAncestorAttr(node.parentNode,attr)}inherited={dir:findAncestorAttr(root,
"dir"),lang:findAncestorAttr(root,"lang"),textDir:findAncestorAttr(root,dataDojoTextDir)};for(var key in inherited)if(!inherited[key])delete inherited[key]}var parent={inherited:inherited};var scripts;var scriptsOnly;function getEffective(parent){if(!parent.inherited){parent.inherited={};var node=parent.node,grandparent=getEffective(parent.parent);var inherited={dir:node.getAttribute("dir")||grandparent.dir,lang:node.getAttribute("lang")||grandparent.lang,textDir:node.getAttribute(dataDojoTextDir)||
grandparent.textDir};for(var key in inherited)if(inherited[key])parent.inherited[key]=inherited[key]}return parent.inherited}while(true){if(!node){if(!parent||!parent.node)break;node=parent.node.nextSibling;scriptsOnly=false;parent=parent.parent;scripts=parent.scripts;continue}if(node.nodeType!=1){node=node.nextSibling;continue}if(scripts&&node.nodeName.toLowerCase()=="script"){type=node.getAttribute("type");if(type&&/^dojo\/\w/i.test(type))scripts.push(node);node=node.nextSibling;continue}if(scriptsOnly){node=
node.nextSibling;continue}var type=node.getAttribute(dataDojoType)||node.getAttribute(dojoType);var firstChild=node.firstChild;if(!type&&(!firstChild||firstChild.nodeType==3&&!firstChild.nextSibling)){node=node.nextSibling;continue}var current;var ctor=null;if(type){var mixinsValue=node.getAttribute(dataDojoMixins),types=mixinsValue?[type].concat(mixinsValue.split(/\s*,\s*/)):[type];try{ctor=getCtor(types,options.contextRequire)}catch(e){}if(!ctor)darray.forEach(types,function(t){if(~t.indexOf("/")&&
!midsHash[t]){midsHash[t]=true;mids[mids.length]=t}});var childScripts=ctor&&!ctor.prototype._noScript?[]:null;current={types:types,ctor:ctor,parent:parent,node:node,scripts:childScripts};current.inherited=getEffective(current);list.push(current)}else current={node:node,scripts:scripts,parent:parent};scripts=childScripts;scriptsOnly=node.stopParser||ctor&&ctor.prototype.stopParser&&!options.template;parent=current;node=firstChild}var d=new Deferred;if(mids.length){if(has("dojo-debug-messages"))0&&
console.warn("WARNING: Modules being Auto-Required: "+mids.join(", "));var r=options.contextRequire||require;r(mids,function(){d.resolve(darray.filter(list,function(widget){if(!widget.ctor)try{widget.ctor=getCtor(widget.types,options.contextRequire)}catch(e){}var parent=widget.parent;while(parent&&!parent.types)parent=parent.parent;var proto=widget.ctor&&widget.ctor.prototype;widget.instantiateChildren=!(proto&&proto.stopParser&&!options.template);widget.instantiate=!parent||parent.instantiate&&parent.instantiateChildren;
return widget.instantiate}))})}else d.resolve(list);return d.promise},_require:function(script,options){var hash=myEval("{"+script.innerHTML+"}"),vars=[],mids=[],d=new Deferred;var contextRequire=options&&options.contextRequire||require;for(var name in hash){vars.push(name);mids.push(hash[name])}contextRequire(mids,function(){for(var i=0;i<vars.length;i++)dlang.setObject(vars[i],arguments[i]);d.resolve(arguments)});return d.promise},_scanAmd:function(root,options){var deferred=new Deferred,promise=
deferred.promise;deferred.resolve(true);var self=this;query("script[type\x3d'dojo/require']",root).forEach(function(node){promise=promise.then(function(){return self._require(node,options)});node.parentNode.removeChild(node)});return promise},parse:function(rootNode,options){var root;if(!options&&rootNode&&rootNode.rootNode){options=rootNode;root=options.rootNode}else if(rootNode&&dlang.isObject(rootNode)&&!("nodeType"in rootNode))options=rootNode;else root=rootNode;root=root?dom.byId(root):dwindow.body();
options=options||{};var mixin=options.template?{template:true}:{},instances=[],self=this;var p=this._scanAmd(root,options).then(function(){return self.scan(root,options)}).then(function(parsedNodes){return self._instantiate(parsedNodes,mixin,options,true)}).then(function(_instances){return instances=instances.concat(_instances)}).otherwise(function(e){console.error("dojo/parser::parse() error",e);throw e;});dlang.mixin(instances,p);return instances}};if(1)dojo.parser=parser;if(config.parseOnLoad)ready(100,
parser,"parse");return parser})},"dijit/layout/BorderContainer":function(){define("dijit/layout/BorderContainer",["dojo/_base/array","dojo/cookie","dojo/_base/declare","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/keys","dojo/_base/lang","dojo/on","dojo/touch","../_WidgetBase","../_Widget","../_TemplatedMixin","./LayoutContainer","./utils"],function(array,cookie,declare,domClass,domConstruct,domGeometry,domStyle,keys,lang,on,touch,_WidgetBase,_Widget,_TemplatedMixin,
LayoutContainer,layoutUtils){var _Splitter=declare("dijit.layout._Splitter",[_Widget,_TemplatedMixin],{live:true,templateString:'\x3cdiv class\x3d"dijitSplitter" data-dojo-attach-event\x3d"onkeydown:_onKeyDown,press:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse" tabIndex\x3d"0" role\x3d"separator"\x3e\x3cdiv class\x3d"dijitSplitterThumb"\x3e\x3c/div\x3e\x3c/div\x3e',constructor:function(){this._handlers=[]},postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);
this._factor=/top|left/.test(this.region)?1:-1;this._cookieName=this.container.id+"_"+this.region},buildRendering:function(){this.inherited(arguments);domClass.add(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V"));if(this.container.persist){var persistSize=cookie(this._cookieName);if(persistSize)this.child.domNode.style[this.horizontal?"height":"width"]=persistSize}},_computeMaxSize:function(){var dim=this.horizontal?"h":"w",childSize=domGeometry.getMarginBox(this.child.domNode)[dim],center=
array.filter(this.container.getChildren(),function(child){return child.region=="center"})[0];var spaceAvailable=domGeometry.getContentBox(center.domNode)[dim]-10;return Math.min(this.child.maxSize,childSize+spaceAvailable)},_startDrag:function(e){if(!this.cover)this.cover=domConstruct.place("\x3cdiv class\x3ddijitSplitterCover\x3e\x3c/div\x3e",this.child.domNode,"after");domClass.add(this.cover,"dijitSplitterCoverActive");if(this.fake)domConstruct.destroy(this.fake);if(!(this._resize=this.live)){(this.fake=
this.domNode.cloneNode(true)).removeAttribute("id");domClass.add(this.domNode,"dijitSplitterShadow");domConstruct.place(this.fake,this.domNode,"after")}domClass.add(this.domNode,"dijitSplitterActive dijitSplitter"+(this.horizontal?"H":"V")+"Active");if(this.fake)domClass.remove(this.fake,"dijitSplitterHover dijitSplitter"+(this.horizontal?"H":"V")+"Hover");var factor=this._factor,isHorizontal=this.horizontal,axis=isHorizontal?"pageY":"pageX",pageStart=e[axis],splitterStyle=this.domNode.style,dim=
isHorizontal?"h":"w",childCS=domStyle.getComputedStyle(this.child.domNode),childStart=domGeometry.getMarginBox(this.child.domNode,childCS)[dim],max=this._computeMaxSize(),min=Math.max(this.child.minSize,domGeometry.getPadBorderExtents(this.child.domNode,childCS)[dim]+10),region=this.region,splitterAttr=region=="top"||region=="bottom"?"top":"left",splitterStart=parseInt(splitterStyle[splitterAttr],10),resize=this._resize,layoutFunc=lang.hitch(this.container,"_layoutChildren",this.child.id),de=this.ownerDocument;
this._handlers=this._handlers.concat([on(de,touch.move,this._drag=function(e,forceResize){var delta=e[axis]-pageStart,childSize=factor*delta+childStart,boundChildSize=Math.max(Math.min(childSize,max),min);if(resize||forceResize)layoutFunc(boundChildSize);splitterStyle[splitterAttr]=delta+splitterStart+factor*(boundChildSize-childSize)+"px"}),on(de,"dragstart",function(e){e.stopPropagation();e.preventDefault()}),on(this.ownerDocumentBody,"selectstart",function(e){e.stopPropagation();e.preventDefault()}),
on(de,touch.release,lang.hitch(this,"_stopDrag"))]);e.stopPropagation();e.preventDefault()},_onMouse:function(e){var o=e.type=="mouseover"||e.type=="mouseenter";domClass.toggle(this.domNode,"dijitSplitterHover",o);domClass.toggle(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover",o)},_stopDrag:function(e){try{if(this.cover)domClass.remove(this.cover,"dijitSplitterCoverActive");if(this.fake)domConstruct.destroy(this.fake);domClass.remove(this.domNode,"dijitSplitterActive dijitSplitter"+
(this.horizontal?"H":"V")+"Active dijitSplitterShadow");this._drag(e);this._drag(e,true)}finally{this._cleanupHandlers();delete this._drag}if(this.container.persist)cookie(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365})},_cleanupHandlers:function(){var h;while(h=this._handlers.pop())h.remove()},_onKeyDown:function(e){this._resize=true;var horizontal=this.horizontal;var tick=1;switch(e.keyCode){case horizontal?keys.UP_ARROW:keys.LEFT_ARROW:tick*=-1;case horizontal?
keys.DOWN_ARROW:keys.RIGHT_ARROW:break;default:return}var childSize=domGeometry.getMarginSize(this.child.domNode)[horizontal?"h":"w"]+this._factor*tick;this.container._layoutChildren(this.child.id,Math.max(Math.min(childSize,this._computeMaxSize()),this.child.minSize));e.stopPropagation();e.preventDefault()},destroy:function(){this._cleanupHandlers();delete this.child;delete this.container;delete this.cover;delete this.fake;this.inherited(arguments)}});var _Gutter=declare("dijit.layout._Gutter",[_Widget,
_TemplatedMixin],{templateString:'\x3cdiv class\x3d"dijitGutter" role\x3d"presentation"\x3e\x3c/div\x3e',postMixInProperties:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region)},buildRendering:function(){this.inherited(arguments);domClass.add(this.domNode,"dijitGutter"+(this.horizontal?"H":"V"))}});var BorderContainer=declare("dijit.layout.BorderContainer",LayoutContainer,{gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:_Splitter,
postMixInProperties:function(){if(!this.gutters)this.baseClass+="NoGutter";this.inherited(arguments)},_setupChild:function(child){this.inherited(arguments);var region=child.region;if(region)if(region!="center"&&(child.splitter||this.gutters)&&!child._splitterWidget){var _Splitter=child.splitter?this._splitterClass:_Gutter;if(lang.isString(_Splitter))_Splitter=lang.getObject(_Splitter);var splitter=new _Splitter({id:child.id+"_splitter",container:this,child:child,region:region,live:this.liveSplitters});
splitter.isSplitter=true;child._splitterWidget=splitter;var before=region=="bottom"||region==(this.isLeftToRight()?"right":"left");domConstruct.place(splitter.domNode,child.domNode,before?"before":"after");splitter.startup()}},layout:function(){this._layoutChildren()},removeChild:function(child){var splitter=child._splitterWidget;if(splitter){splitter.destroy();delete child._splitterWidget}this.inherited(arguments)},getChildren:function(){return array.filter(this.inherited(arguments),function(widget){return!widget.isSplitter})},
getSplitter:function(region){return array.filter(this.getChildren(),function(child){return child.region==region})[0]._splitterWidget},resize:function(newSize,currentSize){if(!this.cs||!this.pe){var node=this.domNode;this.cs=domStyle.getComputedStyle(node);this.pe=domGeometry.getPadExtents(node,this.cs);this.pe.r=domStyle.toPixelValue(node,this.cs.paddingRight);this.pe.b=domStyle.toPixelValue(node,this.cs.paddingBottom);domStyle.set(node,"padding","0px")}this.inherited(arguments)},_layoutChildren:function(changedChildId,
changedChildSize){if(!this._borderBox||!this._borderBox.h)return;var childrenAndSplitters=[];array.forEach(this._getOrderedChildren(),function(pane){childrenAndSplitters.push(pane);if(pane._splitterWidget)childrenAndSplitters.push(pane._splitterWidget)});var dim={l:this.pe.l,t:this.pe.t,w:this._borderBox.w-this.pe.w,h:this._borderBox.h-this.pe.h};layoutUtils.layoutChildren(this.domNode,dim,childrenAndSplitters,changedChildId,changedChildSize)},destroyRecursive:function(){array.forEach(this.getChildren(),
function(child){var splitter=child._splitterWidget;if(splitter)splitter.destroy();delete child._splitterWidget});this.inherited(arguments)}});BorderContainer.ChildWidgetProperties={splitter:false,minSize:0,maxSize:Infinity};lang.mixin(BorderContainer.ChildWidgetProperties,LayoutContainer.ChildWidgetProperties);lang.extend(_WidgetBase,BorderContainer.ChildWidgetProperties);BorderContainer._Splitter=_Splitter;BorderContainer._Gutter=_Gutter;return BorderContainer})},"dijit/form/DataList":function(){define("dijit/form/DataList",
["dojo/_base/declare","dojo/dom","dojo/_base/lang","dojo/query","dojo/store/Memory","../registry"],function(declare,dom,lang,query,MemoryStore,registry){function toItem(option){return{id:option.value,value:option.value,name:lang.trim(option.innerText||option.textContent||"")}}return declare("dijit.form.DataList",MemoryStore,{constructor:function(params,srcNodeRef){this.domNode=dom.byId(srcNodeRef);lang.mixin(this,params);if(this.id)registry.add(this);this.domNode.style.display="none";this.inherited(arguments,
[{data:query("option",this.domNode).map(toItem)}])},destroy:function(){registry.remove(this.id)},fetchSelectedItem:function(){var option=query("\x3e option[selected]",this.domNode)[0]||query("\x3e option",this.domNode)[0];return option&&toItem(option)}})})},"url:dojox/grid/resources/_Grid.html":'\x3cdiv hidefocus\x3d"hidefocus" role\x3d"grid" dojoAttachEvent\x3d"onmouseout:_mouseOut"\x3e\n\t\x3cdiv class\x3d"dojoxGridMasterHeader" dojoAttachPoint\x3d"viewsHeaderNode" role\x3d"presentation"\x3e\x3c/div\x3e\n\t\x3cdiv class\x3d"dojoxGridMasterView" dojoAttachPoint\x3d"viewsNode" role\x3d"presentation"\x3e\x3c/div\x3e\n\t\x3cdiv class\x3d"dojoxGridMasterMessages" style\x3d"display: none;" dojoAttachPoint\x3d"messagesNode"\x3e\x3c/div\x3e\n\t\x3cspan dojoAttachPoint\x3d"lastFocusNode" tabindex\x3d"0"\x3e\x3c/span\x3e\n\x3c/div\x3e\n',
"xfile/views/FileOperationView":function(){define("xfile/views/FileOperationView",["dojo/_base/array","dojo/_base/declare","dojo/_base/html","dojo/_base/connect","dojo/dom-construct","dojo/on","dojo/_base/lang","dojo/dom-geometry","dojo/dom-class","xide/widgets/TemplatedWidgetBase","xide/utils/StringUtils","dijit/layout/ContentPane","./FileSelectDialog","xide/factory"],function(array,declare,html,connect,domConstruct,on,lang,domGeometry,domClass,TemplatedWidgetBase,utils,ContentPane,FileSelectDialog,
factory){return dojo.declare("xfile.views.FileOperationView",[TemplatedWidgetBase],{root:null,dst:null,src:null,delegate:null,selectButton:null,value:null,fileNameValid:false,templateString:"\x3cdiv\x3e\x3cdiv data-dojo-attach-point\x3d'root' data-dojo-type\x3d'dijit.layout.ContentPane'\x3e\x3c/div\x3e\x3c/div\x3e",filePathValidator:function(value,constraints){var thiz=this;var result=false;var reg=new RegExp(/^[0-9a-zA-Z ..._/ ]+$/);if(value&&reg.test(value)){var doExistCheck=false;if(doExistCheck){result=
false;thiz.promptMessage="Item already exists";thiz.message="Item already exists"}else{result=true;thiz.message="Enter new file name"}}else{thiz.promptMessage="This is not a valid path, try without special characters!";thiz.message="This is not a path filename, try without special characters!";result=false}this.fileNameValid=result;if(this.owner&&this.owner.onValidated)this.owner.onValidated(result);return result},createWidgets:function(){var text=this.dst?this.dst.path:"/";var thiz=this;this.selectButton=
factory.createButton(this.root.containerNode,"el-icon-folder-open","elusiveButton","","",function(){thiz.onSelect(thiz)},this);this.editBox=factory.createValidationTextBox(this.root.containerNode,"","To:",text,this.filePathValidator,this.delegate,"Not a path!","I need some input");this.editBox.owner=this},getValue:function(){return this.editBox.get("value")},onSelect:function(dst){var thiz=dst;var delegate={onShowPanel:function(){},onOk:function(dlg){if(dlg&&dlg.filePanel){var activeItem=dlg.filePanel.getActiveItem();
if(activeItem){var path=activeItem.path;if(path){thiz.editBox.set("value",path);thiz.value=path}}}}};try{var dlg=new FileSelectDialog({title:"Select Destination",delegate:delegate,owner:thiz.owner,dst:thiz.dst,src:thiz.src,ctx:thiz.ctx});domClass.add(dlg.domNode,"fileSelectDialog");dlg.show();dlg.initWithWithDestination(dst);dlg.resize()}catch(e){}setTimeout(function(){dlg.resize()},1E3)},startup:function(){if(this.didStartup)return;this.inherited(arguments);this.createWidgets();this.didStartup=true;
this.editBox.focus()}})})},"dijit/_OnDijitClickMixin":function(){define("dijit/_OnDijitClickMixin",["dojo/on","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/has","./a11yclick"],function(on,array,keys,declare,has,a11yclick){var ret=declare("dijit._OnDijitClickMixin",null,{connect:function(obj,event,method){return this.inherited(arguments,[obj,event=="ondijitclick"?a11yclick:event,method])}});ret.a11yclick=a11yclick;return ret})},"url:dojox/grid/resources/View.html":'\x3cdiv class\x3d"dojoxGridView" role\x3d"presentation"\x3e\n\t\x3cdiv class\x3d"dojoxGridHeader" dojoAttachPoint\x3d"headerNode" role\x3d"presentation"\x3e\n\t\t\x3cdiv dojoAttachPoint\x3d"headerNodeContainer" style\x3d"width:9000em" role\x3d"presentation"\x3e\n\t\t\t\x3cdiv dojoAttachPoint\x3d"headerContentNode" role\x3d"row"\x3e\x3c/div\x3e\n\t\t\x3c/div\x3e\n\t\x3c/div\x3e\n\t\x3cinput type\x3d"checkbox" class\x3d"dojoxGridHiddenFocus" dojoAttachPoint\x3d"hiddenFocusNode" role\x3d"presentation" /\x3e\n\t\x3cinput type\x3d"checkbox" class\x3d"dojoxGridHiddenFocus" role\x3d"presentation" /\x3e\n\t\x3cdiv class\x3d"dojoxGridScrollbox" dojoAttachPoint\x3d"scrollboxNode" role\x3d"presentation"\x3e\n\t\t\x3cdiv class\x3d"dojoxGridContent" dojoAttachPoint\x3d"contentNode" hidefocus\x3d"hidefocus" role\x3d"presentation"\x3e\x3c/div\x3e\n\t\x3c/div\x3e\n\x3c/div\x3e\n',
"dojox/mdnd/AutoScroll":function(){define("dojox/mdnd/AutoScroll",["dojo/_base/kernel","dojo/_base/declare","dojo/_base/lang","dojo/_base/connect","dojo/_base/sniff","dojo/ready","dojo/_base/window"],function(dojo,declare,lang,connect,sniff,ready){var as=declare("dojox.mdnd.AutoScroll",null,{interval:3,recursiveTimer:10,marginMouse:50,constructor:function(){this.resizeHandler=connect.connect(dojo.global,"onresize",this,function(){this.getViewport()});ready(lang.hitch(this,"init"))},init:function(){this._html=
sniff("webkit")?dojo.body():dojo.body().parentNode;this.getViewport()},getViewport:function(){var d=dojo.doc,dd=d.documentElement,w=window,b=dojo.body();if(dojo.isMozilla)this._v={"w":dd.clientWidth,"h":w.innerHeight};else if(!dojo.isOpera&&w.innerWidth)this._v={"w":w.innerWidth,"h":w.innerHeight};else if(!dojo.isOpera&&dd&&dd.clientWidth)this._v={"w":dd.clientWidth,"h":dd.clientHeight};else if(b.clientWidth)this._v={"w":b.clientWidth,"h":b.clientHeight}},setAutoScrollNode:function(node){this._node=
node},setAutoScrollMaxPage:function(){this._yMax=this._html.scrollHeight;this._xMax=this._html.scrollWidth},checkAutoScroll:function(e){if(this._autoScrollActive)this.stopAutoScroll();this._y=e.pageY;this._x=e.pageX;if(e.clientX<this.marginMouse){this._autoScrollActive=true;this._autoScrollLeft(e)}else if(e.clientX>this._v.w-this.marginMouse){this._autoScrollActive=true;this._autoScrollRight(e)}if(e.clientY<this.marginMouse){this._autoScrollActive=true;this._autoScrollUp(e)}else if(e.clientY>this._v.h-
this.marginMouse){this._autoScrollActive=true;this._autoScrollDown()}},_autoScrollDown:function(){if(this._timer)clearTimeout(this._timer);if(this._autoScrollActive&&this._y+this.marginMouse<this._yMax){this._html.scrollTop+=this.interval;this._node.style.top=parseInt(this._node.style.top)+this.interval+"px";this._y+=this.interval;this._timer=setTimeout(lang.hitch(this,"_autoScrollDown"),this.recursiveTimer)}},_autoScrollUp:function(){if(this._timer)clearTimeout(this._timer);if(this._autoScrollActive&&
this._y-this.marginMouse>0){this._html.scrollTop-=this.interval;this._node.style.top=parseInt(this._node.style.top)-this.interval+"px";this._y-=this.interval;this._timer=setTimeout(lang.hitch(this,"_autoScrollUp"),this.recursiveTimer)}},_autoScrollRight:function(){if(this._timer)clearTimeout(this._timer);if(this._autoScrollActive&&this._x+this.marginMouse<this._xMax){this._html.scrollLeft+=this.interval;this._node.style.left=parseInt(this._node.style.left)+this.interval+"px";this._x+=this.interval;
this._timer=setTimeout(lang.hitch(this,"_autoScrollRight"),this.recursiveTimer)}},_autoScrollLeft:function(e){if(this._timer)clearTimeout(this._timer);if(this._autoScrollActive&&this._x-this.marginMouse>0){this._html.scrollLeft-=this.interval;this._node.style.left=parseInt(this._node.style.left)-this.interval+"px";this._x-=this.interval;this._timer=setTimeout(lang.hitch(this,"_autoScrollLeft"),this.recursiveTimer)}},stopAutoScroll:function(){if(this._timer)clearTimeout(this._timer);this._autoScrollActive=
false},destroy:function(){connect.disconnect(this.resizeHandler)}});dojox.mdnd.autoScroll=null;dojox.mdnd.autoScroll=new dojox.mdnd.AutoScroll;return as})},"dojox/grid/util":function(){define("dojox/grid/util",["../main","dojo/_base/lang","dojo/dom"],function(dojox,lang,dom){var dgu=lang.getObject("grid.util",true,dojox);dgu.na="...";dgu.rowIndexTag="gridRowIndex";dgu.gridViewTag="gridView";dgu.fire=function(ob,ev,args){var fn=ob&&ev&&ob[ev];return fn&&(args?fn.apply(ob,args):ob[ev]())};dgu.setStyleHeightPx=
function(inElement,inHeight){if(inHeight>=0){var s=inElement.style;var v=inHeight+"px";if(inElement&&s["height"]!=v)s["height"]=v}};dgu.mouseEvents=["mouseover","mouseout","mousedown","mouseup","click","dblclick","contextmenu"];dgu.keyEvents=["keyup","keydown","keypress"];dgu.funnelEvents=function(inNode,inObject,inMethod,inEvents){var evts=inEvents?inEvents:dgu.mouseEvents.concat(dgu.keyEvents);for(var i=0,l=evts.length;i<l;i++)inObject.connect(inNode,"on"+evts[i],inMethod)};dgu.removeNode=function(inNode){inNode=
dom.byId(inNode);inNode&&inNode.parentNode&&inNode.parentNode.removeChild(inNode);return inNode};dgu.arrayCompare=function(inA,inB){for(var i=0,l=inA.length;i<l;i++)if(inA[i]!=inB[i])return false;return inA.length==inB.length};dgu.arrayInsert=function(inArray,inIndex,inValue){if(inArray.length<=inIndex)inArray[inIndex]=inValue;else inArray.splice(inIndex,0,inValue)};dgu.arrayRemove=function(inArray,inIndex){inArray.splice(inIndex,1)};dgu.arraySwap=function(inArray,inI,inJ){var cache=inArray[inI];
inArray[inI]=inArray[inJ];inArray[inJ]=cache};return dgu})},"dijit/form/_ListBase":function(){define("dijit/form/_ListBase",["dojo/_base/declare","dojo/on","dojo/window"],function(declare,on,winUtils){return declare("dijit.form._ListBase",null,{selected:null,_listConnect:function(eventType,callbackFuncName){var self=this;return self.own(on(self.containerNode,on.selector(function(eventTarget,selector,target){return eventTarget.parentNode==target},eventType),function(evt){evt.preventDefault();self[callbackFuncName](evt,
this)}))},selectFirstNode:function(){var first=this.containerNode.firstChild;while(first&&first.style.display=="none")first=first.nextSibling;this._setSelectedAttr(first)},selectLastNode:function(){var last=this.containerNode.lastChild;while(last&&last.style.display=="none")last=last.previousSibling;this._setSelectedAttr(last)},selectNextNode:function(){var selectedNode=this.selected;if(!selectedNode)this.selectFirstNode();else{var next=selectedNode.nextSibling;while(next&&next.style.display=="none")next=
next.nextSibling;if(!next)this.selectFirstNode();else this._setSelectedAttr(next)}},selectPreviousNode:function(){var selectedNode=this.selected;if(!selectedNode)this.selectLastNode();else{var prev=selectedNode.previousSibling;while(prev&&prev.style.display=="none")prev=prev.previousSibling;if(!prev)this.selectLastNode();else this._setSelectedAttr(prev)}},_setSelectedAttr:function(node){if(this.selected!=node){var selectedNode=this.selected;if(selectedNode)this.onDeselect(selectedNode);if(node){winUtils.scrollIntoView(node);
this.onSelect(node)}this._set("selected",node)}else if(node)this.onSelect(node)}})})},"dojox/rpc/JsonRest":function(){define("dojox/rpc/JsonRest",["dojo","dojox","dojox/json/ref","dojox/rpc/Rest"],function(dojo,dojox){var dirtyObjects=[];var Rest=dojox.rpc.Rest;var jr;function resolveJson(service,deferred,value,defaultId){var timeStamp=deferred.ioArgs&&deferred.ioArgs.xhr&&deferred.ioArgs.xhr.getResponseHeader("Last-Modified");if(timeStamp&&Rest._timeStamps)Rest._timeStamps[defaultId]=timeStamp;var hrefProperty=
service._schema&&service._schema.hrefProperty;if(hrefProperty)dojox.json.ref.refAttribute=hrefProperty;value=value&&dojox.json.ref.resolveJson(value,{defaultId:defaultId,index:Rest._index,timeStamps:timeStamp&&Rest._timeStamps,time:timeStamp,idPrefix:service._store.allowNoTrailingSlash?service.servicePath+"/":service.servicePath.replace(/[^\/]*$/,""),idAttribute:jr.getIdAttribute(service),schemas:jr.schemas,loader:jr._loader,idAsRef:service.idAsRef,assignAbsoluteIds:true});dojox.json.ref.refAttribute=
"$ref";return value}jr=dojox.rpc.JsonRest={serviceClass:dojox.rpc.Rest,conflictDateHeader:"If-Unmodified-Since",commit:function(kwArgs){kwArgs=kwArgs||{};var actions=[];var alreadyRecorded={};var savingObjects=[];for(var i=0;i<dirtyObjects.length;i++){var dirty=dirtyObjects[i];var object=dirty.object;var old=dirty.old;var append=false;if(!(kwArgs.service&&(object||old)&&(object||old).__id.indexOf(kwArgs.service.servicePath))&&dirty.save){delete object.__isDirty;if(object)if(old){var pathParts;if(pathParts=
object.__id.match(/(.*)#.*/))object=Rest._index[pathParts[1]];if(!(object.__id in alreadyRecorded)){alreadyRecorded[object.__id]=object;if(kwArgs.incrementalUpdates&&!pathParts)var incremental=(typeof kwArgs.incrementalUpdates=="function"?kwArgs.incrementalUpdates:function(){incremental={};for(var j in object)if(object.hasOwnProperty(j)){if(object[j]!==old[j])incremental[j]=object[j]}else if(old.hasOwnProperty(j))return null;return incremental})(object,old);if(incremental)actions.push({method:"post",
target:object,content:incremental});else actions.push({method:"put",target:object,content:object})}}else{var service=jr.getServiceAndId(object.__id).service;var idAttribute=jr.getIdAttribute(service);if(idAttribute in object&&!kwArgs.alwaysPostNewItems)actions.push({method:"put",target:object,content:object});else actions.push({method:"post",target:{__id:service.servicePath},content:object})}else if(old)actions.push({method:"delete",target:old});savingObjects.push(dirty);dirtyObjects.splice(i--,1)}}dojo.connect(kwArgs,
"onError",function(){if(kwArgs.revertOnError!==false){var postCommitDirtyObjects=dirtyObjects;dirtyObjects=savingObjects;var numDirty=0;jr.revert();dirtyObjects=postCommitDirtyObjects}else dojo.forEach(savingObjects,function(obj){jr.changing(obj.object,!obj.object)})});jr.sendToServer(actions,kwArgs);return actions},sendToServer:function(actions,kwArgs){var xhrSendId;var plainXhr=dojo.xhr;var left=actions.length;var i,contentLocation;var timeStamp;var conflictDateHeader=this.conflictDateHeader;dojo.xhr=
function(method,args){args.headers=args.headers||{};args.headers["Transaction"]=actions.length-1==i?"commit":"open";if(conflictDateHeader&&timeStamp)args.headers[conflictDateHeader]=timeStamp;if(contentLocation)args.headers["Content-ID"]="\x3c"+contentLocation+"\x3e";return plainXhr.apply(dojo,arguments)};for(i=0;i<actions.length;i++){var action=actions[i];dojox.rpc.JsonRest._contentId=action.content&&action.content.__id;var isPost=action.method=="post";timeStamp=action.method=="put"&&Rest._timeStamps[action.content.__id];
if(timeStamp)Rest._timeStamps[action.content.__id]=new Date+"";contentLocation=isPost&&dojox.rpc.JsonRest._contentId;var serviceAndId=jr.getServiceAndId(action.target.__id);var service=serviceAndId.service;var dfd=action.deferred=service[action.method](serviceAndId.id.replace(/#/,""),dojox.json.ref.toJson(action.content,false,service.servicePath,true));(function(object,dfd,service){dfd.addCallback(function(value){try{var newId=dfd.ioArgs.xhr&&dfd.ioArgs.xhr.getResponseHeader("Location");if(newId){var startIndex=
newId.match(/(^\w+:\/\/)/)&&newId.indexOf(service.servicePath);newId=startIndex>0?newId.substring(startIndex):(service.servicePath+newId).replace(/^(.*\/)?(\w+:\/\/)|[^\/\.]+\/\.\.\/|^.*\/(\/)/,"$2$3");object.__id=newId;Rest._index[newId]=object}value=resolveJson(service,dfd,value,object&&object.__id)}catch(e){}if(!--left)if(kwArgs.onComplete)kwArgs.onComplete.call(kwArgs.scope,actions);return value})})(action.content,dfd,service);dfd.addErrback(function(value){left=-1;kwArgs.onError.call(kwArgs.scope,
value)})}dojo.xhr=plainXhr},getDirtyObjects:function(){return dirtyObjects},revert:function(service){for(var i=dirtyObjects.length;i>0;){i--;var dirty=dirtyObjects[i];var object=dirty.object;var old=dirty.old;var store=dojox.data._getStoreForItem(object||old);if(!(service&&(object||old)&&(object||old).__id.indexOf(service.servicePath))){if(object&&old){for(var j in old)if(old.hasOwnProperty(j)&&object[j]!==old[j]){if(store)store.onSet(object,j,object[j],old[j]);object[j]=old[j]}for(j in object)if(!old.hasOwnProperty(j)){if(store)store.onSet(object,
j,object[j]);delete object[j]}}else if(!old){if(store)store.onDelete(object)}else if(store)store.onNew(old);delete (object||old).__isDirty;dirtyObjects.splice(i,1)}}},changing:function(object,_deleting){if(!object.__id)return;object.__isDirty=true;for(var i=0;i<dirtyObjects.length;i++){var dirty=dirtyObjects[i];if(object==dirty.object){if(_deleting){dirty.object=false;if(!this._saveNotNeeded)dirty.save=true}return}}var old=object instanceof Array?[]:{};for(i in object)if(object.hasOwnProperty(i))old[i]=
object[i];dirtyObjects.push({object:!_deleting&&object,old:old,save:!this._saveNotNeeded})},deleteObject:function(object){this.changing(object,true)},getConstructor:function(service,schema){if(typeof service=="string"){var servicePath=service;service=new dojox.rpc.Rest(service,true);this.registerService(service,servicePath,schema)}if(service._constructor)return service._constructor;service._constructor=function(data){var self=this;var args=arguments;var properties;var initializeCalled;function addDefaults(schema){if(schema){addDefaults(schema["extends"]);
properties=schema.properties;for(var i in properties){var propDef=properties[i];if(propDef&&typeof propDef=="object"&&"default"in propDef)self[i]=propDef["default"]}}if(schema&&schema.prototype&&schema.prototype.initialize){initializeCalled=true;schema.prototype.initialize.apply(self,args)}}addDefaults(service._schema);if(!initializeCalled&&data&&typeof data=="object")dojo.mixin(self,data);var idAttribute=jr.getIdAttribute(service);Rest._index[this.__id=this.__clientId=service.servicePath+(this[idAttribute]||
Math.random().toString(16).substring(2,14)+"@"+(dojox.rpc.Client&&dojox.rpc.Client.clientId||"client"))]=this;if(dojox.json.schema&&properties)dojox.json.schema.mustBeValid(dojox.json.schema.validate(this,service._schema));dirtyObjects.push({object:this,save:true})};return dojo.mixin(service._constructor,service._schema,{load:service})},fetch:function(absoluteId){var serviceAndId=jr.getServiceAndId(absoluteId);return this.byId(serviceAndId.service,serviceAndId.id)},getIdAttribute:function(service){var schema=
service._schema;var idAttr;if(schema)if(!(idAttr=schema._idAttr))for(var i in schema.properties)if(schema.properties[i].identity||schema.properties[i].link=="self")schema._idAttr=idAttr=i;return idAttr||"id"},getServiceAndId:function(absoluteId){var serviceName="";for(var service in jr.services)if(absoluteId.substring(0,service.length)==service&&service.length>=serviceName.length)serviceName=service;if(serviceName)return{service:jr.services[serviceName],id:absoluteId.substring(serviceName.length)};
var parts=absoluteId.match(/^(.*\/)([^\/]*)$/);return{service:new jr.serviceClass(parts[1],true),id:parts[2]}},services:{},schemas:{},registerService:function(service,servicePath,schema){servicePath=service.servicePath=servicePath||service.servicePath;service._schema=jr.schemas[servicePath]=schema||service._schema||{};jr.services[servicePath]=service},byId:function(service,id){var deferred,result=Rest._index[(service.servicePath||"")+id];if(result&&!result._loadObject){deferred=new dojo.Deferred;
deferred.callback(result);return deferred}return this.query(service,id)},query:function(service,id,args){var deferred=service(id,args);deferred.addCallback(function(result){if(result.nodeType&&result.cloneNode)return result;return resolveJson(service,deferred,result,typeof id!="string"||args&&(args.start||args.count)?undefined:id)});return deferred},_loader:function(callback){var serviceAndId=jr.getServiceAndId(this.__id);var self=this;jr.query(serviceAndId.service,serviceAndId.id).addBoth(function(result){if(result==
self){delete result.$ref;delete result._loadObject}else self._loadObject=function(callback){callback(result)};callback(result)})},isDirty:function(item,store){if(!item){if(store)return dojo.some(dirtyObjects,function(dirty){return dojox.data._getStoreForItem(dirty.object||dirty.old)==store});return!!dirtyObjects.length}return item.__isDirty}};return dojox.rpc.JsonRest})},"*now":function(r){r(['dojo/i18n!*preload*dojo/nls/dojo*["ar","ca","cs","da","de","el","en-gb","en-us","es-es","fi-fi","fr-fr","he-il","hu","it-it","ja-jp","ko-kr","nl-nl","nb","pl","pt-br","pt-pt","ru","sk","sl","sv","th","tr","zh-tw","zh-cn","ROOT"]'])}}});
(function(){var require=this.require;require({cache:{}});!require.async&&require(["dojo"]);require.boot&&require.apply(null,require.boot)})();
//@ sourceMappingURL=dojo.js.map