# HG changeset patch # User ymh # Date 1358175607 -3600 # Node ID 3247fccfbd3f8d19deb6a318d37ebe3746ef015d # Parent 7b517a54b708c4729d07acc6686a000e2d24ce5d update on renkan diff -r 7b517a54b708 -r 3247fccfbd3f .classpath --- a/.classpath Tue Jan 01 09:28:03 2013 +0100 +++ b/.classpath Mon Jan 14 16:00:07 2013 +0100 @@ -2,11 +2,6 @@ - - - - - @@ -37,6 +32,19 @@ - + + + + + + + + + + + + + + diff -r 7b517a54b708 -r 3247fccfbd3f .settings/org.eclipse.core.resources.prefs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.settings/org.eclipse.core.resources.prefs Mon Jan 14 16:00:07 2013 +0100 @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +encoding//server/src/main/webapp/WEB-INF/i18n/messages_en.properties=UTF-8 +encoding//server/src/main/webapp/WEB-INF/i18n/messages_fr.properties=UTF-8 diff -r 7b517a54b708 -r 3247fccfbd3f .settings/org.eclipse.jdt.core.prefs --- a/.settings/org.eclipse.jdt.core.prefs Tue Jan 01 09:28:03 2013 +0100 +++ b/.settings/org.eclipse.jdt.core.prefs Mon Jan 14 16:00:07 2013 +0100 @@ -1,11 +1,11 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.source=1.7 diff -r 7b517a54b708 -r 3247fccfbd3f .settings/org.eclipse.jst.j2ee.ejb.annotations.xdoclet.prefs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.settings/org.eclipse.jst.j2ee.ejb.annotations.xdoclet.prefs Mon Jan 14 16:00:07 2013 +0100 @@ -0,0 +1,5 @@ +XDOCLETBUILDERACTIVE=true +XDOCLETHOME= +XDOCLETUSEGLOBAL=true +XDOCLETVERSION=1.2.1 +eclipse.preferences.version=1 diff -r 7b517a54b708 -r 3247fccfbd3f .settings/org.eclipse.wst.common.project.facet.core.xml --- a/.settings/org.eclipse.wst.common.project.facet.core.xml Tue Jan 01 09:28:03 2013 +0100 +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml Mon Jan 14 16:00:07 2013 +0100 @@ -1,8 +1,8 @@ - + diff -r 7b517a54b708 -r 3247fccfbd3f server/pom.xml --- a/server/pom.xml Tue Jan 01 09:28:03 2013 +0100 +++ b/server/pom.xml Mon Jan 14 16:00:07 2013 +0100 @@ -68,18 +68,6 @@ lib/cowebx/dojo - - - ../client - - **/*.html - **/data - - - - src/main/web-resources - - @@ -191,6 +179,21 @@ spring-web ${spring-version} + org.springframework spring-test @@ -252,7 +255,12 @@ com.fasterxml.jackson.jaxrs jackson-jaxrs-json-provider 2.1.2 - + + + commons-codec + commons-codec + 1.7 + IRI diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/Constants.java --- a/server/src/main/java/org/iri_research/renkan/Constants.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/Constants.java Mon Jan 14 16:00:07 2013 +0100 @@ -35,5 +35,8 @@ return version; } + + public final static String KEYHEX = "f2338d2299ac28ef64f82956fde37337b87a2b9e8fc03e28fa0768cac37d838113c7d0fc78c60fce1e23b1b3e03ac7db4676b3189c267f26baaab10f72544441"; + public final static int SALT_LENGTH = 24; } diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/RenkanRuntimeException.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/main/java/org/iri_research/renkan/RenkanRuntimeException.java Mon Jan 14 16:00:07 2013 +0100 @@ -0,0 +1,26 @@ +package org.iri_research.renkan; + +public class RenkanRuntimeException extends RuntimeException { + + + /** + * + */ + private static final long serialVersionUID = 736470650035855769L; + + public RenkanRuntimeException() { + } + + public RenkanRuntimeException(String message) { + super(message); + } + + public RenkanRuntimeException(Throwable exc) { + super(exc); + } + + public RenkanRuntimeException(String message, Throwable exc) { + super(message, exc); + } + +} diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/controller/RenkanController.java --- a/server/src/main/java/org/iri_research/renkan/controller/RenkanController.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/controller/RenkanController.java Mon Jan 14 16:00:07 2013 +0100 @@ -3,38 +3,59 @@ import java.util.HashMap; import java.util.Map; +import org.iri_research.renkan.RenkanException; import org.iri_research.renkan.models.Project; import org.iri_research.renkan.repositories.ProjectsRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; -import org.springframework.web.HttpMediaTypeNotAcceptableException; import org.springframework.web.HttpMediaTypeNotSupportedException; -import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.servlet.ModelAndView; @Controller -@RequestMapping("/") +@RequestMapping("/p") public class RenkanController { private final Logger logger = LoggerFactory.getLogger(RenkanController.class); - + @Autowired private ProjectsRepository projectRepository; - @RequestMapping(value="/{project_id}", method = RequestMethod.GET, produces={"text/html", "!image/*"}) - public ModelAndView renkanProject(@PathVariable(value="project_id") String project_id, @RequestHeader(value="Accept") String accept_header) throws HttpMediaTypeNotSupportedException { + private void checkCowebkey(String cowebkey, Project project) { + if(cowebkey == null || cowebkey.isEmpty()) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Cowebkey missing"); + } + try { + if(!project.checkKey(cowebkey)) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Bad cowebkey"); + } + } catch (RenkanException e) { + throw new HttpServerErrorException(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage()); + } + } + + + @RequestMapping(value="/{project_id}", method = RequestMethod.GET, produces={"text/html;charset=UTF-8", "!image/*"}) + public ModelAndView renkanProject( + @PathVariable(value="project_id") String project_id, + @RequestHeader(value="Accept") String accept_header, + @RequestParam(value="cowebkey") String cowebkey + ) throws HttpMediaTypeNotSupportedException { - this.logger.debug("renkanProject : " + project_id + " Accept : " + accept_header!=null?accept_header:""); - + this.logger.debug("renkanProject : " + project_id + " Accept : " + accept_header!=null?accept_header:"" + ", cowebkey: "+ cowebkey!=null?cowebkey:""); + if(accept_header != null && accept_header.matches(".*image/.*")) { - throw new HttpMediaTypeNotSupportedException("Do not orduce image"); + throw new HttpMediaTypeNotSupportedException("Do not produce image"); } if(project_id == null || project_id.length() == 0) { @@ -42,17 +63,19 @@ } Project project = this.projectRepository.findOne(project_id); - + if(project == null) { - project = new Project(project_id, "(New project)", "(Project Description)", ""); - this.projectRepository.save(project); + throw new HttpClientErrorException(HttpStatus.NOT_FOUND, "Project " + project_id + " not found."); } + this.checkCowebkey(cowebkey, project); + Map model = new HashMap(); model.put("project", project); return new ModelAndView("renkanProjectEdit", model); } + /*@RequestMapping("/test") public ModelAndView projectPrompt() { diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/controller/RenkanRootController.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/main/java/org/iri_research/renkan/controller/RenkanRootController.java Mon Jan 14 16:00:07 2013 +0100 @@ -0,0 +1,40 @@ +package org.iri_research.renkan.controller; + +import java.util.HashMap; +import java.util.Map; + +import org.iri_research.renkan.models.Project; +import org.iri_research.renkan.repositories.ProjectsRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + + +@Controller +@RequestMapping("/") +public class RenkanRootController { + + @SuppressWarnings("unused") + private final Logger logger = LoggerFactory.getLogger(RenkanRootController.class); + + @Autowired + private ProjectsRepository projectRepository; + + @RequestMapping(value="", method = RequestMethod.GET, produces={"text/html;charset=UTF-8"}) + public ModelAndView renkanIndex() { + + Map model = new HashMap(); + + Iterable projects = this.projectRepository.findAll(); + + model.put("projects", projects); + + return new ModelAndView("renkanIndex", model); + } + + +} diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/coweb/RenkanSessionModerator.java --- a/server/src/main/java/org/iri_research/renkan/coweb/RenkanSessionModerator.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/coweb/RenkanSessionModerator.java Mon Jan 14 16:00:07 2013 +0100 @@ -45,9 +45,13 @@ return; } + if(sync_type.startsWith("_")) { + this.logger.debug("onSync : type sync begin with _, ignore. " + sync_type); + return; + } + ApplicationContext context = SpringConfigurer.getInstance().getApplicationContext(); - //String className = String.format("org.iri_research.renkan.coweb.event.%sSyncEventManager", sync_type.substring(0, 1).toUpperCase()+sync_type.substring(1)); String beanName = String.format("%sSyncEventManager", sync_type.toLowerCase()); try { @@ -58,13 +62,6 @@ catch(Throwable e) { this.logger.error(String.format("onSync EventManagerClass %s not found : error %s : %s", sync_type, e.toString(), e.getMessage())); } - /*catch (ClassNotFoundException e) { - this.logger.error(String.format("onSync EventManagerClass %s not found : ClassNotFoundException : %s", sync_type, e.getMessage())); - } catch (InstantiationException e) { - this.logger.error(String.format("onSync EventManagerClass %s not found : InstantiationException : %s", sync_type, e.getMessage())); - } catch (IllegalAccessException e) { - this.logger.error(String.format("onSync EventManagerClass %s not found : IllegalAccessException : %s", sync_type, e.getMessage())); - }*/ } diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/coweb/event/AbstractSyncEventManager.java --- a/server/src/main/java/org/iri_research/renkan/coweb/event/AbstractSyncEventManager.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/coweb/event/AbstractSyncEventManager.java Mon Jan 14 16:00:07 2013 +0100 @@ -68,6 +68,7 @@ private void saveSyncEvent(Map data) { String project_id = null; + String user_id = null; @SuppressWarnings("unchecked") Map values = (Map) data.get("value"); @@ -88,13 +89,18 @@ return; } + user_id = (String) values.get("_user_id"); + + if (user_id == null) { + logger.warn("saveSyncEvent : No user id"); + } try { - ProjectSync ps = this.projectSyncsRepository.getProjectSync(data.toString(), p); + ProjectSync ps = this.projectSyncsRepository.getProjectSync(data.toString(), p, user_id); this.projectSyncsRepository.save(ps); } catch (RenkanException e) { logger.warn("saveSyncEvent : Error when getting Projectr syn object",e); - } + } } diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/models/AbstractRenkanModel.java --- a/server/src/main/java/org/iri_research/renkan/models/AbstractRenkanModel.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/models/AbstractRenkanModel.java Mon Jan 14 16:00:07 2013 +0100 @@ -2,6 +2,8 @@ import java.io.Serializable; +import org.iri_research.renkan.RenkanRuntimeException; + public abstract class AbstractRenkanModel implements IRenkanModel { @@ -40,5 +42,13 @@ public ID getId() { return this.id; } + + @Override + public void setId(ID id) throws RenkanRuntimeException { + if(this.id != null) { + throw new RenkanRuntimeException("Current id is not null, can not change object id"); + } + this.id = id; + } } diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/models/IRenkanModel.java --- a/server/src/main/java/org/iri_research/renkan/models/IRenkanModel.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/models/IRenkanModel.java Mon Jan 14 16:00:07 2013 +0100 @@ -2,10 +2,19 @@ import java.io.Serializable; +import org.iri_research.renkan.RenkanRuntimeException; + public interface IRenkanModel { - public ID getId(); + public ID getId(); + /** + * Set the object id. + * This method must throw a RenkanException if the current object id is not null + * @param id + * @throws RenkanRuntimeException if the current id is not null + */ + public void setId(ID id) throws RenkanRuntimeException; public String getTitle(); public String getDescription(); public String getUri(); diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/models/Project.java --- a/server/src/main/java/org/iri_research/renkan/models/Project.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/models/Project.java Mon Jan 14 16:00:07 2013 +0100 @@ -1,8 +1,16 @@ package org.iri_research.renkan.models; +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import org.apache.commons.codec.binary.Hex; +import org.iri_research.renkan.Constants; +import org.iri_research.renkan.RenkanException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.mongodb.core.mapping.DBRef; @@ -15,6 +23,8 @@ private static Logger logger = LoggerFactory.getLogger(Project.class); private int revCounter = 1; + + private Date created; // Nodes @DBRef @@ -27,17 +37,20 @@ // Users @DBRef private List users = new ArrayList(); - - public Project(String id, String title, String description, String uri, + public Project(String id, String title, String description, String uri, Date created, int revCounter) { super(id,title, description, uri); this.revCounter = revCounter; + this.created = created; + if(this.created == null) { + this.created = new Date(); + } } - public Project(String id, String title, String description, String uri) { - this(id,title, description, uri, 1); + public Project(String id, String title, String description, String uri, Date created) { + this(id,title, description, uri, created, 1); } @SuppressWarnings("unused") @@ -60,4 +73,80 @@ return this.users; } + public Date getCreated() { + return created; + } + + public void setCreated(Date date) { + this.created = date; + + } + + private String getRawKey(String prefix) { + StringBuffer key = new StringBuffer(prefix!=null?prefix+"|":""); + key.append(Constants.KEYHEX); + key.append(this.getId()); + key.append('|'); + key.append(this.getCreated().getTime()); + return key.toString(); + } + + public String getKey() throws RenkanException { + + // get salt + SecureRandom rand; + try { + rand = SecureRandom.getInstance("SHA1PRNG"); + } catch (NoSuchAlgorithmException e) { + throw new RenkanException("NoSuchAlgorithmException random: " + e.getMessage(), e); + } + byte[] salt = new byte[Constants.SALT_LENGTH]; + rand.nextBytes(salt); + String hex_salt = Hex.encodeHexString(salt); + + return hex_salt+"-"+this.getKey(hex_salt); + + } + + private String getKey(String hex_salt) throws RenkanException { + + String rawKey = this.getRawKey(hex_salt); + + MessageDigest md; + try { + md = MessageDigest.getInstance("SHA-256"); + } catch (NoSuchAlgorithmException e) { + throw new RenkanException("NoSuchAlgorithmException digest: " + e.getMessage(), e); + } + String key; + try { + key = Hex.encodeHexString(md.digest(rawKey.getBytes("UTF-8"))); + } catch (UnsupportedEncodingException e) { + throw new RenkanException("UnsupportedEncodingException digest: " + e.getMessage(), e); + } + + return key; + } + + public boolean checkKey(String key) throws RenkanException { + + + if(key == null || key.isEmpty()) { + return false; + } + + String[] key_parts = key.split("-", 2); + if(key_parts.length < 2) { + return false; + } + + String salt = key_parts[0]; + String signature = key_parts[1]; + + String new_key = this.getKey(salt); + + return new_key.equals(signature); + } + + } diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/models/ProjectSync.java --- a/server/src/main/java/org/iri_research/renkan/models/ProjectSync.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/models/ProjectSync.java Mon Jan 14 16:00:07 2013 +0100 @@ -20,14 +20,17 @@ private int revision; private Date created; + + private String user; public ProjectSync(ObjectId id, String data, Project project, int revision, - Date created) { + Date created, String user) { this.id = id; this.data = data; this.project = project; this.revision = revision; this.created = created; + this.user = user; if(this.created == null) { this.created = new Date(System.currentTimeMillis()); } @@ -48,6 +51,10 @@ public int getRevision() { return revision; } + + public String getUser() { + return user; + } } diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/repositories/ProjectSyncsRepositoryCustom.java --- a/server/src/main/java/org/iri_research/renkan/repositories/ProjectSyncsRepositoryCustom.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/repositories/ProjectSyncsRepositoryCustom.java Mon Jan 14 16:00:07 2013 +0100 @@ -6,8 +6,8 @@ public interface ProjectSyncsRepositoryCustom { - public ProjectSync getProjectSync(String data, Project project) throws RenkanException; + public ProjectSync getProjectSync(String data, Project project, String user) throws RenkanException; - public ProjectSync getProjectSync(String data, String project_id) throws RenkanException; + public ProjectSync getProjectSync(String data, String project_id, String user) throws RenkanException; } diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/repositories/ProjectSyncsRepositoryImpl.java --- a/server/src/main/java/org/iri_research/renkan/repositories/ProjectSyncsRepositoryImpl.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/repositories/ProjectSyncsRepositoryImpl.java Mon Jan 14 16:00:07 2013 +0100 @@ -16,7 +16,7 @@ private ProjectsRepository projectRepository; @Override - public ProjectSync getProjectSync(String data, Project project) throws RenkanException { + public ProjectSync getProjectSync(String data, Project project, String user) throws RenkanException { if(project == null) { throw new RenkanException("ProjectSyncsRepository : Null Project."); @@ -27,14 +27,15 @@ data, project, this.projectRepository.getRevCounter(project.getId()), - new Date(System.currentTimeMillis()) + new Date(System.currentTimeMillis()), + user ); return ps; } @Override - public ProjectSync getProjectSync(String data, String project_id) + public ProjectSync getProjectSync(String data, String project_id, String user) throws RenkanException { if(project_id == null || "".equals(project_id) ) { @@ -47,7 +48,7 @@ throw new RenkanException("ProjectSyncsRepository : project not found for id " + project_id); } - return this.getProjectSync(data, p); + return this.getProjectSync(data, p, user); } diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/java/org/iri_research/renkan/rest/ProjectsResource.java --- a/server/src/main/java/org/iri_research/renkan/rest/ProjectsResource.java Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/rest/ProjectsResource.java Mon Jan 14 16:00:07 2013 +0100 @@ -1,6 +1,7 @@ package org.iri_research.renkan.rest; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.UUID; @@ -30,7 +31,6 @@ import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; -import com.mongodb.WriteResult; import com.mongodb.util.JSON; import com.sun.jersey.spi.resource.Singleton; @@ -55,7 +55,7 @@ @GET @Path("{id : [a-zA-Z\\-0-9]+}") @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") - public Project getProjectSd(@PathParam("id") String projectId) { + public Project getProject(@PathParam("id") String projectId) { this.logger.debug("GetProject: " + projectId); @@ -89,20 +89,35 @@ @PUT @Path("{id : [a-zA-Z\\-0-9]+}") @Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8") - public Response putProject(@PathParam("id") String projectId, String projectContent) { + public Response putProject(@PathParam("id") String projectId, Project project) { + + if(!projectId.equals(project.getId())) { + throw new WebApplicationException(Response.status(Status.BAD_REQUEST).entity("Id parameter and id in JSON do not match").build()); + } + if(project.getCreated() == null) { + project.setCreated(new Date()); + } + this.projectRepository.save(project); + return Response.noContent().build(); - return this.createOrUpdateProject(projectId, projectContent); } + @POST @Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8") - public Response postProject(String projectContent) { - - return this.createOrUpdateProject(null, projectContent); + public Response postProject(Project project) { + if(project.getId() != null) { + throw new WebApplicationException(Response.status(Status.BAD_REQUEST).entity("Id in JSON must be null").build()); + } + project.setId(UUID.randomUUID().toString()); + if(project.getCreated() == null) { + project.setCreated(new Date()); + } + project = this.projectRepository.save(project); + return Response.created(this.uriInfo.getAbsolutePathBuilder().segment(project.getId()).build()).entity(project).build(); } - - //TODO: uses spring data + @GET @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") public String getProjectList() { @@ -112,6 +127,7 @@ keys.put("description", 1); keys.put("title", 1); keys.put("uri", 1); + keys.put("created", 1); DBCursor cursor = projectCollection.find(new BasicDBObject(), keys); List res = new ArrayList(); @@ -148,43 +164,5 @@ return JSON.serialize(res); } - - //TODO: rewrite for recursive object and use spring data - private Response createOrUpdateProject(String projectId, String projectContent) { - if(null == projectContent || projectContent.isEmpty()) { - throw new WebApplicationException(Response.status(Status.BAD_REQUEST).entity("No content").build()); - } - - DBCollection projectCollection = this.getCollection(); - - DBObject obj = (DBObject)JSON.parse(projectContent); - if(obj == null) { - throw new WebApplicationException(Response.status(Status.BAD_REQUEST).entity("Parse error").build()); - } - - String newProjectId = projectId; - - if(newProjectId == null) { - newProjectId = UUID.randomUUID().toString(); - } - - obj.put("_id", newProjectId); - - WriteResult res = projectCollection.update(new BasicDBObject("_id", newProjectId), obj, true, false); - - if(res.getLastError().ok()) { - if(projectId == null) { - return Response.created(this.uriInfo.getAbsolutePathBuilder().segment(newProjectId).build()).build(); - } - else { - return Response.noContent().build(); - } - } - else { - throw new WebApplicationException(Response.status(Status.BAD_REQUEST).entity(res.getError()).build()); - } - - } - } diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/resources/log4j.xml --- a/server/src/main/resources/log4j.xml Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/resources/log4j.xml Mon Jan 14 16:00:07 2013 +0100 @@ -1,5 +1,5 @@ - + diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/LICENSE --- a/server/src/main/web-resources/_firebug/LICENSE Tue Jan 01 09:28:03 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -License Disclaimer: - -All contents of this directory are Copyright (c) the Dojo Foundation, with the -following exceptions: -------------------------------------------------------------------------------- - -firebug.html, firebug.js, errIcon.png, infoIcon.png, warningIcon.png: - * Copyright (c) 2006-2007, Joe Hewitt, All rights reserved. - Distributed under the terms of the BSD License (see below) - -------------------------------------------------------------------------------- - -Copyright (c) 2006-2007, Joe Hewitt -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of the Dojo Foundation nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/errorIcon.png Binary file server/src/main/web-resources/_firebug/errorIcon.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/firebug.css --- a/server/src/main/web-resources/_firebug/firebug.css Tue Jan 01 09:28:03 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +0,0 @@ -.firebug { - margin: 0; - background:#fff; - font-family: Lucida Grande, Tahoma, sans-serif; - font-size: 11px; - overflow: hidden; - border: 1px solid black; - position: relative; -} -.firebug a { - text-decoration: none; -} -.firebug a:hover { - text-decoration: underline; -} -.firebug a:visited{ - color:#0000FF; -} -.firebug #firebugToolbar { - height: 18px; - line-height:18px; - border-top: 1px solid ThreeDHighlight; - border-bottom: 1px solid ThreeDShadow; - padding: 2px 6px; - - background:#f0f0f0; -} -.firebug #firebugLog, .firebug #objectLog { - overflow: auto; - position: absolute; - left: 0; - width: 100%; -} -#objectLog{ - overflow:scroll; - height:258px; -} -.firebug #firebugCommandLine { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 18px; - border: none; - border-top: 1px solid ThreeDShadow; -} -.firebug .logRow { - position: relative; - border-bottom: 1px solid #D7D7D7; - padding: 2px 4px 1px 6px; - background-color: #FFFFFF; -} -.firebug .logRow-command { - font-family: Monaco, monospace; - color: blue; -} -.firebug .objectBox-null { - padding: 0 2px; - border: 1px solid #666666; - background-color: #888888; - color: #FFFFFF; -} -.firebug .objectBox-string { - font-family: Monaco, monospace; - color: red; - white-space: pre; -} -.firebug .objectBox-number { - color: #000088; -} -.firebug .objectBox-function { - font-family: Monaco, monospace; - color: DarkGreen; -} -.firebug .objectBox-object { - color: DarkGreen; - font-weight: bold; -} -.firebug .logRow-info, -.firebug .logRow-error, -.firebug .logRow-warning - { - background: #00FFFF no-repeat 2px 2px; - padding-left: 20px; - padding-bottom: 3px; -} -.firebug .logRow-info { - background: #FFF url(infoIcon.png) no-repeat 2px 2px; - padding-left: 20px; - padding-bottom: 3px; -} -.firebug .logRow-warning { - - background: #00FFFF url(warningIcon.png) no-repeat 2px 2px; - padding-left: 20px; - padding-bottom: 3px; -} -.firebug .logRow-error { - background: LightYellow url(errorIcon.png) no-repeat 2px 2px; - padding-left: 20px; - padding-bottom: 3px; -} -.firebug .errorMessage { - vertical-align: top; - color: #FF0000; -} -.firebug .objectBox-sourceLink { - position: absolute; - right: 4px; - top: 2px; - padding-left: 8px; - font-family: Lucida Grande, sans-serif; - font-weight: bold; - color: #0000FF; -} -.firebug .logRow-group { - background: #EEEEEE; - border-bottom: none; -} -.firebug .logGroup { - background: #EEEEEE; -} -.firebug .logGroupBox { - margin-left: 24px; - border-top: 1px solid #D7D7D7; - border-left: 1px solid #D7D7D7; -} -.firebug .selectorTag, -.firebug .selectorId, -.firebug .selectorClass { - font-family: Monaco, monospace; - font-weight: normal; -} -.firebug .selectorTag { - color: #0000FF; -} -.firebug .selectorId { - color: DarkBlue; -} -.firebug .selectorClass { - color: red; -} -.firebug .objectBox-element { - font-family: Monaco, monospace; - color: #000088; -} -.firebug .nodeChildren { - margin-left: 16px; -} -.firebug .nodeTag { - color: blue; -} -.firebug .nodeValue { - color: #FF0000; - font-weight: normal; -} -.firebug .nodeText, -.firebug .nodeComment { - margin: 0 2px; - vertical-align: top; -} -.firebug .nodeText { - color: #333333; -} -.firebug .nodeComment { - color: DarkGreen; -} -.firebug .propertyNameCell { - vertical-align: top; -} -.firebug .propertyName { - font-weight: bold; -} -#firebugToolbar ul.tabs{ - margin:0 !important; - padding:0; -} -#firebugToolbar ul.tabs li{ - list-style:none; - background:transparent url(tab_lft_norm.png) no-repeat left; - line-height:18px; - float:left; - margin-left:5px; -} -#firebugToolbar ul.tabs li.right{ - float:right; - margin-right:5px; - margin-left:0; -} -#firebugToolbar ul.tabs li.gap{ - margin-left:20px; -} -#firebugToolbar .tabs a{ - text-decoration:none; - background:transparent url(tab_rgt_norm.png) no-repeat right; - line-height:18px; - padding:3px 9px 4px 0px; - margin-left:9px; - color:#333333; -} -#firebugToolbar .tabs li:hover{ - background:transparent url(tab_lft_over.png) no-repeat left; -} -#firebugToolbar .tabs a:hover{ - text-decoration:none; - background:transparent url(tab_rgt_over.png) no-repeat right; - color:#FFFFFF; -} diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/firebug.js --- a/server/src/main/web-resources/_firebug/firebug.js Tue Jan 01 09:28:03 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,898 +0,0 @@ -/* - Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved. - Available via Academic Free License >= 2.1 OR the modified BSD license. - see: http://dojotoolkit.org/license for details -*/ - -//>>built -define("dojo/_firebug/firebug",["../_base/kernel","require","../_base/html","../sniff","../_base/array","../_base/lang","../_base/event","../_base/unload"],function(_1,_2,_3,_4){ -var _5=(/Trident/.test(window.navigator.userAgent)); -if(_5){ -var _6=["log","info","debug","warn","error"]; -for(var i=0;i<_6.length;i++){ -var m=_6[i]; -if(!console[m]||console[m]._fake){ -continue; -} -var n="_"+_6[i]; -console[n]=console[m]; -console[m]=(function(){ -var _7=n; -return function(){ -console[_7](Array.prototype.join.call(arguments," ")); -}; -})(); -} -try{ -console.clear(); -} -catch(e){ -} -} -if(_4("ff")||_4("chrome")||_4("safari")||_5||window.firebug||(typeof console!="undefined"&&console.firebug)||_1.config.useCustomLogger||_4("air")){ -return; -} -try{ -if(window!=window.parent){ -if(window.parent["console"]){ -window.console=window.parent.console; -} -return; -} -} -catch(e){ -} -var _8=document; -var _9=window; -var _a=0; -var _b=null; -var _c=null; -var _d=null; -var _e=null; -var _f=null; -var _10=null; -var _11=false; -var _12=[]; -var _13=[]; -var _14={}; -var _15={}; -var _16=null; -var _17; -var _18; -var _19=false; -var _1a=null; -var _1b=document.createElement("div"); -var _1c; -var _1d; -window.console={_connects:[],log:function(){ -_1e(arguments,""); -},debug:function(){ -_1e(arguments,"debug"); -},info:function(){ -_1e(arguments,"info"); -},warn:function(){ -_1e(arguments,"warning"); -},error:function(){ -_1e(arguments,"error"); -},assert:function(_1f,_20){ -if(!_1f){ -var _21=[]; -for(var i=1;i"); -str=str.replace(/\t/g,"    "); -_23([str],"dir"); -},dirxml:function(_24){ -var _25=[]; -_26(_24,_25); -_23(_25,"dirxml"); -},group:function(){ -_23(arguments,"group",_27); -},groupEnd:function(){ -_23(arguments,"",_28); -},time:function(_29){ -_14[_29]=new Date().getTime(); -},timeEnd:function(_2a){ -if(_2a in _14){ -var _2b=(new Date()).getTime()-_14[_2a]; -_1e([_2a+":",_2b+"ms"]); -delete _14[_2a]; -} -},count:function(_2c){ -if(!_15[_2c]){ -_15[_2c]=0; -} -_15[_2c]++; -_1e([_2c+": "+_15[_2c]]); -},trace:function(_2d){ -var _2e=_2d||3; -var f=console.trace.caller; -for(var i=0;i<_2e;i++){ -var _2f=f.toString(); -var _30=[]; -for(var a=0;a=0&&s.href){ -var h=s.href.replace(/(&|%5C?)forceReload=\d+/,""); -s.href=h+(h.indexOf("?")>=0?"&":"?")+"forceReload="+new Date().valueOf(); -} -} -}}; -function _31(_35){ -_11=_35||!_11; -if(_b){ -_b.style.display=_11?"block":"none"; -} -}; -function _36(){ -_31(true); -if(_f){ -_f.focus(); -} -}; -function _37(x,y,w,h){ -var win=window.open("","_firebug","status=0,menubar=0,resizable=1,top="+y+",left="+x+",width="+w+",height="+h+",scrollbars=1,addressbar=0"); -if(!win){ -var msg="Firebug Lite could not open a pop-up window, most likely because of a blocker.\n"+"Either enable pop-ups for this domain, or change the djConfig to popup=false."; -alert(msg); -} -_38(win); -var _39=win.document; -var _3a="Firebug Lite\n"+"\n"+"
"+""; -_39.write(_3a); -_39.close(); -return win; -}; -function _38(wn){ -var d=new Date(); -d.setTime(d.getTime()+(60*24*60*60*1000)); -d=d.toUTCString(); -var dc=wn.document,_3b; -if(wn.innerWidth){ -_3b=function(){ -return {w:wn.innerWidth,h:wn.innerHeight}; -}; -}else{ -if(dc.documentElement&&dc.documentElement.clientWidth){ -_3b=function(){ -return {w:dc.documentElement.clientWidth,h:dc.documentElement.clientHeight}; -}; -}else{ -if(dc.body){ -_3b=function(){ -return {w:dc.body.clientWidth,h:dc.body.clientHeight}; -}; -} -} -} -window.onFirebugResize=function(){ -_49(_3b().h); -clearInterval(wn._firebugWin_resize); -wn._firebugWin_resize=setTimeout(function(){ -var x=wn.screenLeft,y=wn.screenTop,w=wn.outerWidth||wn.document.body.offsetWidth,h=wn.outerHeight||wn.document.body.offsetHeight; -document.cookie="_firebugPosition="+[x,y,w,h].join(",")+"; expires="+d+"; path=/"; -},5000); -}; -}; -function _3c(){ -if(_b){ -return; -} -_31(true); -if(_1.config.popup){ -var _3d="100%"; -var _3e=document.cookie.match(/(?:^|; )_firebugPosition=([^;]*)/); -var p=_3e?_3e[1].split(","):[2,2,320,480]; -_9=_37(p[0],p[1],p[2],p[3]); -_8=_9.document; -_1.config.debugContainerId="fb"; -_9.console=window.console; -_9.dojo=window.dojo; -}else{ -_8=document; -_3d=(_1.config.debugHeight||300)+"px"; -} -var _3f=_8.createElement("link"); -_3f.href=_2.toUrl("./firebug.css"); -_3f.rel="stylesheet"; -_3f.type="text/css"; -var _40=_8.getElementsByTagName("head"); -if(_40){ -_40=_40[0]; -} -if(!_40){ -_40=_8.getElementsByTagName("html")[0]; -} -if(_4("ie")){ -window.setTimeout(function(){ -_40.appendChild(_3f); -},0); -}else{ -_40.appendChild(_3f); -} -if(_1.config.debugContainerId){ -_b=_8.getElementById(_1.config.debugContainerId); -} -if(!_b){ -_b=_8.createElement("div"); -_8.body.appendChild(_b); -} -_b.className+=" firebug"; -_b.id="firebug"; -_b.style.height=_3d; -_b.style.display=(_11?"block":"none"); -var _41=function(_42,_43,_44,_45){ -return "
  • "+_42+"
  • "; -}; -_b.innerHTML="
    "+"
      "+_41("Clear","Remove All Console Logs","clear","")+_41("ReCSS","Refresh CSS without reloading page","recss","")+_41("Console","Show Console Logs","openConsole","gap")+_41("DOM","Show DOM Inspector","openDomInspector","")+_41("Object","Show Object Inspector","openObjectInspector","")+((_1.config.popup)?"":_41("Close","Close the console","close","gap"))+"\t
    "+"
    "+""+"
    "+"
    Click on an object in the Log display
    "+"
    Hover over HTML elements in the main page. Click to hold selection.
    "; -_10=_8.getElementById("firebugToolbar"); -_f=_8.getElementById("firebugCommandLine"); -_46(_f,"keydown",_47); -_46(_8,_4("ie")||_4("safari")?"keydown":"keypress",_48); -_c=_8.getElementById("firebugLog"); -_d=_8.getElementById("objectLog"); -_16=_8.getElementById("domInspect"); -_e=_8.getElementById("fireBugTabs"); -_49(); -_4a(); -}; -_1.addOnLoad(_3c); -function _4b(){ -_8=null; -if(_9.console){ -_9.console.clear(); -} -_9=null; -_b=null; -_c=null; -_d=null; -_16=null; -_f=null; -_12=[]; -_13=[]; -_14={}; -}; -function _4c(){ -var _4d=_f.value; -_f.value=""; -_23(["> ",_4d],"command"); -var _4e; -try{ -_4e=eval(_4d); -} -catch(e){ -} -}; -function _49(h){ -var _4f=25; -var _50=h?h-(_4f+_f.offsetHeight+25+(h*0.01))+"px":(_b.offsetHeight-_4f-_f.offsetHeight)+"px"; -_c.style.top=_4f+"px"; -_c.style.height=_50; -_d.style.height=_50; -_d.style.top=_4f+"px"; -_16.style.height=_50; -_16.style.top=_4f+"px"; -_f.style.bottom=0; -_1.addOnWindowUnload(_4b); -}; -function _23(_51,_52,_53){ -if(_c){ -_54(_51,_52,_53); -}else{ -_12.push([_51,_52,_53]); -} -}; -function _4a(){ -var _55=_12; -_12=[]; -for(var i=0;i<_55.length;++i){ -_54(_55[i][0],_55[i][1],_55[i][2]); -} -}; -function _54(_56,_57,_58){ -var _59=_c.scrollTop+_c.offsetHeight>=_c.scrollHeight; -_58=_58||_5a; -_58(_56,_57); -if(_59){ -_c.scrollTop=_c.scrollHeight-_c.offsetHeight; -} -}; -function _5b(row){ -var _5c=_13.length?_13[_13.length-1]:_c; -_5c.appendChild(row); -}; -function _5a(_5d,_5e){ -var row=_c.ownerDocument.createElement("div"); -row.className="logRow"+(_5e?" logRow-"+_5e:""); -row.innerHTML=_5d.join(""); -_5b(row); -}; -function _27(_5f,_60){ -_1e(_5f,_60); -var _61=_c.ownerDocument.createElement("div"); -_61.className="logGroupBox"; -_5b(_61); -_13.push(_61); -}; -function _28(){ -_13.pop(); -}; -function _1e(_62,_63){ -var _64=[]; -var _65=_62[0]; -var _66=0; -if(typeof (_65)!="string"){ -_65=""; -_66=-1; -} -var _67=_68(_65); -for(var i=0;i<_67.length;++i){ -var _69=_67[i]; -if(_69&&typeof _69=="object"){ -_69.appender(_62[++_66],_64); -}else{ -_6a(_69,_64); -} -} -var ids=[]; -var obs=[]; -for(i=_66+1;i<_62.length;++i){ -_6a(" ",_64); -var _6b=_62[i]; -if(_6b===undefined||_6b===null){ -_6c(_6b,_64); -}else{ -if(typeof (_6b)=="string"){ -_6a(_6b,_64); -}else{ -if(_6b instanceof Date){ -_6a(_6b.toString(),_64); -}else{ -if(_6b.nodeType==9){ -_6a("[ XmlDoc ]",_64); -}else{ -var id="_a"+_a++; -ids.push(id); -obs.push(_6b); -var str=""+_6d(_6b)+""; -_6e(str,_64); -} -} -} -} -} -_23(_64,_63); -for(i=0;i"; -})); -} -}; -function _68(_6f){ -var _70=[]; -var reg=/((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/; -var _71={s:_6a,d:_72,i:_72,f:_73}; -for(var m=reg.exec(_6f);m;m=reg.exec(_6f)){ -var _74=m[8]?m[8]:m[5]; -var _75=_74 in _71?_71[_74]:_76; -var _77=m[3]?parseInt(m[3]):(m[4]=="."?-1:0); -_70.push(_6f.substr(0,m[0][0]=="%"?m.index:m.index+1)); -_70.push({appender:_75,precision:_77}); -_6f=_6f.substr(m.index+m[0].length); -} -_70.push(_6f); -return _70; -}; -function _78(_79){ -function _7a(ch){ -switch(ch){ -case "<": -return "<"; -case ">": -return ">"; -case "&": -return "&"; -case "'": -return "'"; -case "\"": -return """; -} -return "?"; -}; -return String(_79).replace(/[<>&"']/g,_7a); -}; -function _7b(_7c){ -try{ -return _7c+""; -} -catch(e){ -return null; -} -}; -function _6e(_7d,_7e){ -_7e.push(_7b(_7d)); -}; -function _6a(_7f,_80){ -_80.push(_78(_7b(_7f))); -}; -function _6c(_81,_82){ -_82.push("",_78(_7b(_81)),""); -}; -function _83(_84,_85){ -_85.push(""",_78(_7b(_84)),"""); -}; -function _72(_86,_87){ -_87.push("",_78(_7b(_86)),""); -}; -function _73(_88,_89){ -_89.push("",_78(_7b(_88)),""); -}; -function _8a(_8b,_8c){ -_8c.push("",_6d(_8b),""); -}; -function _76(_8d,_8e){ -try{ -if(_8d===undefined){ -_6c("undefined",_8e); -}else{ -if(_8d===null){ -_6c("null",_8e); -}else{ -if(typeof _8d=="string"){ -_83(_8d,_8e); -}else{ -if(typeof _8d=="number"){ -_72(_8d,_8e); -}else{ -if(typeof _8d=="function"){ -_8a(_8d,_8e); -}else{ -if(_8d.nodeType==1){ -_8f(_8d,_8e); -}else{ -if(typeof _8d=="object"){ -_90(_8d,_8e); -}else{ -_6a(_8d,_8e); -} -} -} -} -} -} -} -} -catch(e){ -} -}; -function _90(_91,_92){ -var _93=_7b(_91); -var _94=/\[object (.*?)\]/; -var m=_94.exec(_93); -_92.push("",m?m[1]:_93,""); -}; -function _8f(_95,_96){ -_96.push(""); -_96.push("",_78(_95.nodeName.toLowerCase()),""); -if(_95.id){ -_96.push("#",_78(_95.id),""); -} -if(_95.className){ -_96.push(".",_78(_95.className),""); -} -_96.push(""); -}; -function _26(_97,_98){ -if(_97.nodeType==1){ -_98.push("
    ","<",_97.nodeName.toLowerCase(),""); -for(var i=0;i<_97.attributes.length;++i){ -var _99=_97.attributes[i]; -if(!_99.specified){ -continue; -} -_98.push(" ",_99.nodeName.toLowerCase(),"="",_78(_99.nodeValue),"""); -} -if(_97.firstChild){ -_98.push(">
    "); -for(var _9a=_97.firstChild;_9a;_9a=_9a.nextSibling){ -_26(_9a,_98); -} -_98.push("
    </",_97.nodeName.toLowerCase(),">
    "); -}else{ -_98.push("/>"); -} -}else{ -if(_97.nodeType==3){ -_98.push("
    ",_78(_97.nodeValue),"
    "); -} -} -}; -function _46(_9b,_9c,_9d){ -if(document.all){ -_9b.attachEvent("on"+_9c,_9d); -}else{ -_9b.addEventListener(_9c,_9d,false); -} -}; -function _9e(_9f,_a0,_a1){ -if(document.all){ -_9f.detachEvent("on"+_a0,_a1); -}else{ -_9f.removeEventListener(_a0,_a1,false); -} -}; -function _a2(_a3){ -if(document.all){ -_a3.cancelBubble=true; -}else{ -_a3.stopPropagation(); -} -}; -function _a4(msg,_a5,_a6){ -var _a7=_a5.lastIndexOf("/"); -var _a8=_a7==-1?_a5:_a5.substr(_a7+1); -var _a9=["",msg,"","
    ",_a8," (line ",_a6,")
    "]; -_23(_a9,"error"); -}; -var _aa=new Date().getTime(); -function _48(_ab){ -var _ac=(new Date()).getTime(); -if(_ac>_aa+200){ -_ab=_1.fixEvent(_ab); -var _ad=_1.keys; -var ekc=_ab.keyCode; -_aa=_ac; -if(ekc==_ad.F12){ -_31(); -}else{ -if((ekc==_ad.NUMPAD_ENTER||ekc==76)&&_ab.shiftKey&&(_ab.metaKey||_ab.ctrlKey)){ -_36(); -}else{ -return; -} -} -_a2(_ab); -} -}; -function _47(e){ -var dk=_1.keys; -if(e.keyCode==13&&_f.value){ -_ae(_f.value); -_4c(); -}else{ -if(e.keyCode==27){ -_f.value=""; -}else{ -if(e.keyCode==dk.UP_ARROW||e.charCode==dk.UP_ARROW){ -_af("older"); -}else{ -if(e.keyCode==dk.DOWN_ARROW||e.charCode==dk.DOWN_ARROW){ -_af("newer"); -}else{ -if(e.keyCode==dk.HOME||e.charCode==dk.HOME){ -_b0=1; -_af("older"); -}else{ -if(e.keyCode==dk.END||e.charCode==dk.END){ -_b0=999999; -_af("newer"); -} -} -} -} -} -} -}; -var _b0=-1; -var _b1=null; -function _ae(_b2){ -var _b3=_b4("firebug_history"); -_b3=(_b3)?_1.fromJson(_b3):[]; -var pos=_1.indexOf(_b3,_b2); -if(pos!=-1){ -_b3.splice(pos,1); -} -_b3.push(_b2); -_b4("firebug_history",_1.toJson(_b3),30); -while(_b3.length&&!_b4("firebug_history")){ -_b3.shift(); -_b4("firebug_history",_1.toJson(_b3),30); -} -_b1=null; -_b0=-1; -}; -function _af(_b5){ -var _b6=_b4("firebug_history"); -_b6=(_b6)?_1.fromJson(_b6):[]; -if(!_b6.length){ -return; -} -if(_b1===null){ -_b1=_f.value; -} -if(_b0==-1){ -_b0=_b6.length; -} -if(_b5=="older"){ ---_b0; -if(_b0<0){ -_b0=0; -} -}else{ -if(_b5=="newer"){ -++_b0; -if(_b0>_b6.length){ -_b0=_b6.length; -} -} -} -if(_b0==_b6.length){ -_f.value=_b1; -_b1=null; -}else{ -_f.value=_b6[_b0]; -} -}; -function _b4(_b7,_b8){ -var c=document.cookie; -if(arguments.length==1){ -var _b9=c.match(new RegExp("(?:^|; )"+_b7+"=([^;]*)")); -return _b9?decodeURIComponent(_b9[1]):undefined; -}else{ -var d=new Date(); -d.setMonth(d.getMonth()+1); -document.cookie=_b7+"="+encodeURIComponent(_b8)+((d.toUtcString)?"; expires="+d.toUTCString():""); -} -}; -function _ba(it){ -return it&&it instanceof Array||typeof it=="array"; -}; -function _bb(o){ -var cnt=0; -for(var nm in o){ -cnt++; -} -return cnt; -}; -function _22(o,i,txt,_bc){ -var ind=" \t"; -txt=txt||""; -i=i||ind; -_bc=_bc||[]; -var _bd; -if(o&&o.nodeType==1){ -var _be=[]; -_26(o,_be); -return _be.join(""); -} -var br=",\n",cnt=0,_bf=_bb(o); -if(o instanceof Date){ -return i+o.toString()+br; -} -looking: -for(var nm in o){ -cnt++; -if(cnt==_bf){ -br="\n"; -} -if(o[nm]===window||o[nm]===document){ -}else{ -if(o[nm]===null){ -txt+=i+nm+" : NULL"+br; -}else{ -if(o[nm]&&o[nm].nodeType){ -if(o[nm].nodeType==1){ -}else{ -if(o[nm].nodeType==3){ -txt+=i+nm+" : [ TextNode "+o[nm].data+" ]"+br; -} -} -}else{ -if(typeof o[nm]=="object"&&(o[nm] instanceof String||o[nm] instanceof Number||o[nm] instanceof Boolean)){ -txt+=i+nm+" : "+o[nm]+","+br; -}else{ -if(o[nm] instanceof Date){ -txt+=i+nm+" : "+o[nm].toString()+br; -}else{ -if(typeof (o[nm])=="object"&&o[nm]){ -for(var j=0,_c0;_c0=_bc[j];j++){ -if(o[nm]===_c0){ -txt+=i+nm+" : RECURSION"+br; -continue looking; -} -} -_bc.push(o[nm]); -_bd=(_ba(o[nm]))?["[","]"]:["{","}"]; -txt+=i+nm+" : "+_bd[0]+"\n"; -txt+=_22(o[nm],i+ind,"",_bc); -txt+=i+_bd[1]+br; -}else{ -if(typeof o[nm]=="undefined"){ -txt+=i+nm+" : undefined"+br; -}else{ -if(nm=="toString"&&typeof o[nm]=="function"){ -var _c1=o[nm](); -if(typeof _c1=="string"&&_c1.match(/function ?(.*?)\(/)){ -_c1=_78(_6d(o[nm])); -} -txt+=i+nm+" : "+_c1+br; -}else{ -txt+=i+nm+" : "+_78(_6d(o[nm]))+br; -} -} -} -} -} -} -} -} -} -return txt; -}; -function _6d(obj){ -var _c2=(obj instanceof Error); -if(obj.nodeType==1){ -return _78("< "+obj.tagName.toLowerCase()+" id=\""+obj.id+"\" />"); -} -if(obj.nodeType==3){ -return _78("[TextNode: \""+obj.nodeValue+"\"]"); -} -var nm=(obj&&(obj.id||obj.name||obj.ObjectID||obj.widgetId)); -if(!_c2&&nm){ -return "{"+nm+"}"; -} -var _c3=2; -var _c4=4; -var cnt=0; -if(_c2){ -nm="[ Error: "+(obj.message||obj.description||obj)+" ]"; -}else{ -if(_ba(obj)){ -nm="["+obj.slice(0,_c4).join(","); -if(obj.length>_c4){ -nm+=" ... ("+obj.length+" items)"; -} -nm+="]"; -}else{ -if(typeof obj=="function"){ -nm=obj+""; -var reg=/function\s*([^\(]*)(\([^\)]*\))[^\{]*\{/; -var m=reg.exec(nm); -if(m){ -if(!m[1]){ -m[1]="function"; -} -nm=m[1]+m[2]; -}else{ -nm="function()"; -} -}else{ -if(typeof obj!="object"||typeof obj=="string"){ -nm=obj+""; -}else{ -nm="{"; -for(var i in obj){ -cnt++; -if(cnt>_c3){ -break; -} -nm+=i+":"+_78(obj[i])+" "; -} -nm+="}"; -} -} -} -} -return nm; -}; -_46(document,_4("ie")||_4("safari")?"keydown":"keypress",_48); -if((document.documentElement.getAttribute("debug")=="true")||(_1.config.isDebug)){ -_31(true); -} -_1.addOnWindowUnload(function(){ -_9e(document,_4("ie")||_4("safari")?"keydown":"keypress",_48); -window.onFirebugResize=null; -window.console=null; -}); -}); diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/firebug.js.uncompressed.js --- a/server/src/main/web-resources/_firebug/firebug.js.uncompressed.js Tue Jan 01 09:28:03 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1191 +0,0 @@ -define("dojo/_firebug/firebug", [ - "../_base/kernel", - "require", - "../_base/html", - "../sniff", - "../_base/array", - "../_base/lang", - "../_base/event", - "../_base/unload"], function(dojo, require, html, has){ - - // module: - // dojo/_firebug/firebug - // summary: - // Firebug Lite, the baby brother to Joe Hewitt's Firebug for Mozilla Firefox - // description: - // Opens a console for logging, debugging, and error messages. - // Contains partial functionality to Firebug. See function list below. - // - // NOTE: - // Firebug is a Firefox extension created by Joe Hewitt (see license). You do not need Dojo to run Firebug. - // Firebug Lite is included in Dojo by permission from Joe Hewitt - // If you are new to Firebug, or used to the Dojo 0.4 dojo.debug, you can learn Firebug - // functionality by reading the function comments below or visiting http://www.getfirebug.com/docs.html - // - // NOTE: - // To test Firebug Lite in Firefox: - // - // - FF2: set "console = null" before loading dojo and set djConfig.isDebug=true - // - FF3: disable Firebug and set djConfig.isDebug=true - // - // example: - // Supports inline objects in object inspector window (only simple trace of dom nodes, however) - // | console.log("my object", {foo:"bar"}) - // example: - // Option for console to open in popup window - // | var djConfig = {isDebug: true, popup:true }; - // example: - // Option for console height (ignored for popup) - // | var djConfig = {isDebug: true, debugHeight:100 } - - - var isNewIE = (/Trident/.test(window.navigator.userAgent)); - if(isNewIE){ - // Fixing IE's console - // IE doesn't insert space between arguments. How annoying. - var calls = ["log", "info", "debug", "warn", "error"]; - for(var i=0;i"); - str = str.replace(/\t/g, "    "); - logRow([str], "dir"); - }, - - dirxml: function(node){ - var html = []; - appendNode(node, html); - logRow(html, "dirxml"); - }, - - group: function(){ - // summary: - // collects log messages into a group, starting with this call and ending with - // groupEnd(). Missing collapse functionality - logRow(arguments, "group", pushGroup); - }, - - groupEnd: function(){ - // summary: - // Closes group. See above - logRow(arguments, "", popGroup); - }, - - time: function(name){ - // summary: - // Starts timers assigned to name given in argument. Timer stops and displays on timeEnd(title); - // example: - // | console.time("load"); - // | console.time("myFunction"); - // | console.timeEnd("load"); - // | console.timeEnd("myFunction"); - timeMap[name] = new Date().getTime(); - }, - - timeEnd: function(name){ - // summary: - // See above. - if(name in timeMap){ - var delta = (new Date()).getTime() - timeMap[name]; - logFormatted([name+ ":", delta+"ms"]); - delete timeMap[name]; - } - }, - - count: function(name){ - // summary: - // Not supported - if(!countMap[name]) countMap[name] = 0; - countMap[name]++; - logFormatted([name+": "+countMap[name]]); - }, - - trace: function(_value){ - var stackAmt = _value || 3; - var f = console.trace.caller; //function that called trace - console.log(">>> console.trace(stack)"); - for(var i=0;i=0&&s.href){ - var h=s.href.replace(/(&|%5C?)forceReload=\d+/,''); - s.href=h+(h.indexOf('?')>=0?'&':'?')+'forceReload='+new Date().valueOf(); - } - } - } - }; - - // *************************************************************************** - - function toggleConsole(forceOpen){ - frameVisible = forceOpen || !frameVisible; - if(consoleFrame){ - consoleFrame.style.display = frameVisible ? "block" : "none"; - } - } - - function focusCommandLine(){ - toggleConsole(true); - if(commandLine){ - commandLine.focus(); - } - } - - function openWin(x,y,w,h){ - var win = window.open("","_firebug","status=0,menubar=0,resizable=1,top="+y+",left="+x+",width="+w+",height="+h+",scrollbars=1,addressbar=0"); - if(!win){ - var msg = "Firebug Lite could not open a pop-up window, most likely because of a blocker.\n" + - "Either enable pop-ups for this domain, or change the djConfig to popup=false."; - alert(msg); - } - createResizeHandler(win); - var newDoc=win.document; - //Safari needs an HTML height - var HTMLstring= 'Firebug Lite\n' + - '\n' + - '
    ' + - ''; - - newDoc.write(HTMLstring); - newDoc.close(); - return win; - } - - function createResizeHandler(wn){ - // summary: - // Creates handle for onresize window. Called from script in popup's body tag (so that it will work with IE). - // - - var d = new Date(); - d.setTime(d.getTime()+(60*24*60*60*1000)); // 60 days - d = d.toUTCString(); - - var dc = wn.document, - getViewport; - - if (wn.innerWidth){ - getViewport = function(){ - return{w:wn.innerWidth, h:wn.innerHeight}; - }; - }else if (dc.documentElement && dc.documentElement.clientWidth){ - getViewport = function(){ - return{w:dc.documentElement.clientWidth, h:dc.documentElement.clientHeight}; - }; - }else if (dc.body){ - getViewport = function(){ - return{w:dc.body.clientWidth, h:dc.body.clientHeight}; - }; - } - - - window.onFirebugResize = function(){ - - //resize the height of the console log body - layout(getViewport().h); - - clearInterval(wn._firebugWin_resize); - wn._firebugWin_resize = setTimeout(function(){ - var x = wn.screenLeft, - y = wn.screenTop, - w = wn.outerWidth || wn.document.body.offsetWidth, - h = wn.outerHeight || wn.document.body.offsetHeight; - - document.cookie = "_firebugPosition=" + [x,y,w,h].join(",") + "; expires="+d+"; path=/"; - - }, 5000); //can't capture window.onMove - long timeout gives better chance of capturing a resize, then the move - - }; - } - - - /*****************************************************************************/ - - - function createFrame(){ - if(consoleFrame){ - return; - } - toggleConsole(true); - if(dojo.config.popup){ - var containerHeight = "100%"; - var cookieMatch = document.cookie.match(/(?:^|; )_firebugPosition=([^;]*)/); - var p = cookieMatch ? cookieMatch[1].split(",") : [2,2,320,480]; - - _firebugWin = openWin(p[0],p[1],p[2],p[3]); // global - _firebugDoc = _firebugWin.document; // global - - dojo.config.debugContainerId = 'fb'; - - // connecting popup - _firebugWin.console = window.console; - _firebugWin.dojo = window.dojo; - }else{ - _firebugDoc = document; - containerHeight = (dojo.config.debugHeight || 300) + "px"; - } - - var styleElement = _firebugDoc.createElement("link"); - styleElement.href = require.toUrl("./firebug.css"); - styleElement.rel = "stylesheet"; - styleElement.type = "text/css"; - var styleParent = _firebugDoc.getElementsByTagName("head"); - if(styleParent){ - styleParent = styleParent[0]; - } - if(!styleParent){ - styleParent = _firebugDoc.getElementsByTagName("html")[0]; - } - if(has("ie")){ - window.setTimeout(function(){ styleParent.appendChild(styleElement); }, 0); - }else{ - styleParent.appendChild(styleElement); - } - - if(dojo.config.debugContainerId){ - consoleFrame = _firebugDoc.getElementById(dojo.config.debugContainerId); - } - if(!consoleFrame){ - consoleFrame = _firebugDoc.createElement("div"); - _firebugDoc.body.appendChild(consoleFrame); - } - consoleFrame.className += " firebug"; - consoleFrame.id = "firebug"; - consoleFrame.style.height = containerHeight; - consoleFrame.style.display = (frameVisible ? "block" : "none"); - - var buildLink = function(label, title, method, _class){ - return '
  • '+label+'
  • '; - }; - consoleFrame.innerHTML = - '
    ' - + '
      ' - - + buildLink("Clear", "Remove All Console Logs", "clear", "") - + buildLink("ReCSS", "Refresh CSS without reloading page", "recss", "") - - + buildLink("Console", "Show Console Logs", "openConsole", "gap") - + buildLink("DOM", "Show DOM Inspector", "openDomInspector", "") - + buildLink("Object", "Show Object Inspector", "openObjectInspector", "") - + ((dojo.config.popup) ? "" : buildLink("Close", "Close the console", "close", "gap")) - - + '
    ' - + '
    ' - + '' - + '
    ' - + '' - + ''; - - - consoleToolbar = _firebugDoc.getElementById("firebugToolbar"); - - commandLine = _firebugDoc.getElementById("firebugCommandLine"); - addEvent(commandLine, "keydown", onCommandLineKeyDown); - - addEvent(_firebugDoc, has("ie") || has("safari") ? "keydown" : "keypress", onKeyDown); - - consoleBody = _firebugDoc.getElementById("firebugLog"); - consoleObjectInspector = _firebugDoc.getElementById("objectLog"); - consoleDomInspector = _firebugDoc.getElementById("domInspect"); - fireBugTabs = _firebugDoc.getElementById("fireBugTabs"); - layout(); - flush(); - } - - dojo.addOnLoad(createFrame); - - function clearFrame(){ - _firebugDoc = null; - - if(_firebugWin.console){ - _firebugWin.console.clear(); - } - _firebugWin = null; - consoleFrame = null; - consoleBody = null; - consoleObjectInspector = null; - consoleDomInspector = null; - commandLine = null; - messageQueue = []; - groupStack = []; - timeMap = {}; - } - - - function evalCommandLine(){ - var text = commandLine.value; - commandLine.value = ""; - - logRow(["> ", text], "command"); - - var value; - try{ - value = eval(text); - }catch(e){ - console.debug(e); // put exception on the console - } - - console.log(value); - } - - function layout(h){ - var tHeight = 25; //consoleToolbar.offsetHeight; // tab style not ready on load - throws off layout - var height = h ? - h - (tHeight + commandLine.offsetHeight +25 + (h*.01)) + "px" : - (consoleFrame.offsetHeight - tHeight - commandLine.offsetHeight) + "px"; - - consoleBody.style.top = tHeight + "px"; - consoleBody.style.height = height; - consoleObjectInspector.style.height = height; - consoleObjectInspector.style.top = tHeight + "px"; - consoleDomInspector.style.height = height; - consoleDomInspector.style.top = tHeight + "px"; - commandLine.style.bottom = 0; - - dojo.addOnWindowUnload(clearFrame); - } - - function logRow(message, className, handler){ - if(consoleBody){ - writeMessage(message, className, handler); - }else{ - messageQueue.push([message, className, handler]); - } - } - - function flush(){ - var queue = messageQueue; - messageQueue = []; - - for(var i = 0; i < queue.length; ++i){ - writeMessage(queue[i][0], queue[i][1], queue[i][2]); - } - } - - function writeMessage(message, className, handler){ - var isScrolledToBottom = - consoleBody.scrollTop + consoleBody.offsetHeight >= consoleBody.scrollHeight; - - handler = handler||writeRow; - - handler(message, className); - - if(isScrolledToBottom){ - consoleBody.scrollTop = consoleBody.scrollHeight - consoleBody.offsetHeight; - } - } - - function appendRow(row){ - var container = groupStack.length ? groupStack[groupStack.length-1] : consoleBody; - container.appendChild(row); - } - - function writeRow(message, className){ - var row = consoleBody.ownerDocument.createElement("div"); - row.className = "logRow" + (className ? " logRow-"+className : ""); - row.innerHTML = message.join(""); - appendRow(row); - } - - function pushGroup(message, className){ - logFormatted(message, className); - - //var groupRow = consoleBody.ownerDocument.createElement("div"); - //groupRow.className = "logGroup"; - var groupRowBox = consoleBody.ownerDocument.createElement("div"); - groupRowBox.className = "logGroupBox"; - //groupRow.appendChild(groupRowBox); - appendRow(groupRowBox); - groupStack.push(groupRowBox); - } - - function popGroup(){ - groupStack.pop(); - } - - // *************************************************************************** - - function logFormatted(objects, className){ - var html = []; - - var format = objects[0]; - var objIndex = 0; - - if(typeof(format) != "string"){ - format = ""; - objIndex = -1; - } - - var parts = parseFormat(format); - - for(var i = 0; i < parts.length; ++i){ - var part = parts[i]; - if(part && typeof part == "object"){ - part.appender(objects[++objIndex], html); - }else{ - appendText(part, html); - } - } - - - var ids = []; - var obs = []; - for(i = objIndex+1; i < objects.length; ++i){ - appendText(" ", html); - - var object = objects[i]; - if(object === undefined || object === null ){ - appendNull(object, html); - - }else if(typeof(object) == "string"){ - appendText(object, html); - - }else if(object instanceof Date){ - appendText(object.toString(), html); - - }else if(object.nodeType == 9){ - appendText("[ XmlDoc ]", html); - - }else{ - // Create link for object inspector - // need to create an ID for this link, since it is currently text - var id = "_a" + __consoleAnchorId__++; - ids.push(id); - // need to save the object, so the arrays line up - obs.push(object); - var str = ''+getObjectAbbr(object)+''; - - appendLink( str , html); - } - } - - logRow(html, className); - - // Now that the row is inserted in the DOM, loop through all of the links that were just created - for(i=0; i"; - })); - } - } - - function parseFormat(format){ - var parts = []; - - var reg = /((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/; - var appenderMap = {s: appendText, d: appendInteger, i: appendInteger, f: appendFloat}; - - for(var m = reg.exec(format); m; m = reg.exec(format)){ - var type = m[8] ? m[8] : m[5]; - var appender = type in appenderMap ? appenderMap[type] : appendObject; - var precision = m[3] ? parseInt(m[3]) : (m[4] == "." ? -1 : 0); - - parts.push(format.substr(0, m[0][0] == "%" ? m.index : m.index+1)); - parts.push({appender: appender, precision: precision}); - - format = format.substr(m.index+m[0].length); - } - - parts.push(format); - - return parts; - } - - function escapeHTML(value){ - function replaceChars(ch){ - switch(ch){ - case "<": - return "<"; - case ">": - return ">"; - case "&": - return "&"; - case "'": - return "'"; - case '"': - return """; - } - return "?"; - } - return String(value).replace(/[<>&"']/g, replaceChars); - } - - function objectToString(object){ - try{ - return object+""; - }catch(e){ - return null; - } - } - - // *************************************************************************** - function appendLink(object, html){ - // needed for object links - no HTML escaping - html.push( objectToString(object) ); - } - - function appendText(object, html){ - html.push(escapeHTML(objectToString(object))); - } - - function appendNull(object, html){ - html.push('', escapeHTML(objectToString(object)), ''); - } - - function appendString(object, html){ - html.push('"', escapeHTML(objectToString(object)), - '"'); - } - - function appendInteger(object, html){ - html.push('', escapeHTML(objectToString(object)), ''); - } - - function appendFloat(object, html){ - html.push('', escapeHTML(objectToString(object)), ''); - } - - function appendFunction(object, html){ - html.push('', getObjectAbbr(object), ''); - } - - function appendObject(object, html){ - try{ - if(object === undefined){ - appendNull("undefined", html); - }else if(object === null){ - appendNull("null", html); - }else if(typeof object == "string"){ - appendString(object, html); - }else if(typeof object == "number"){ - appendInteger(object, html); - }else if(typeof object == "function"){ - appendFunction(object, html); - }else if(object.nodeType == 1){ - appendSelector(object, html); - }else if(typeof object == "object"){ - appendObjectFormatted(object, html); - }else{ - appendText(object, html); - } - }catch(e){ - /* squelch */ - } - } - - function appendObjectFormatted(object, html){ - var text = objectToString(object); - var reObject = /\[object (.*?)\]/; - - var m = reObject.exec(text); - html.push('', m ? m[1] : text, ''); - } - - function appendSelector(object, html){ - html.push(''); - - html.push('', escapeHTML(object.nodeName.toLowerCase()), ''); - if(object.id){ - html.push('#', escapeHTML(object.id), ''); - } - if(object.className){ - html.push('.', escapeHTML(object.className), ''); - } - - html.push(''); - } - - function appendNode(node, html){ - if(node.nodeType == 1){ - html.push( - '
    ', - '<', node.nodeName.toLowerCase(), ''); - - for(var i = 0; i < node.attributes.length; ++i){ - var attr = node.attributes[i]; - if(!attr.specified){ continue; } - - html.push(' ', attr.nodeName.toLowerCase(), - '="', escapeHTML(attr.nodeValue), - '"'); - } - - if(node.firstChild){ - html.push('>
    '); - - for(var child = node.firstChild; child; child = child.nextSibling){ - appendNode(child, html); - } - - html.push('
    </', - node.nodeName.toLowerCase(), '>
    '); - }else{ - html.push('/>'); - } - }else if (node.nodeType == 3){ - html.push('
    ', escapeHTML(node.nodeValue), - '
    '); - } - } - - // *************************************************************************** - - function addEvent(object, name, handler){ - if(document.all){ - object.attachEvent("on"+name, handler); - }else{ - object.addEventListener(name, handler, false); - } - } - - function removeEvent(object, name, handler){ - if(document.all){ - object.detachEvent("on"+name, handler); - }else{ - object.removeEventListener(name, handler, false); - } - } - - function cancelEvent(event){ - if(document.all){ - event.cancelBubble = true; - }else{ - event.stopPropagation(); - } - } - - function onError(msg, href, lineNo){ - var lastSlash = href.lastIndexOf("/"); - var fileName = lastSlash == -1 ? href : href.substr(lastSlash+1); - - var html = [ - '', msg, '', - '' - ]; - - logRow(html, "error"); - } - - - //After converting to div instead of iframe, now getting two keydowns right away in IE 6. - //Make sure there is a little bit of delay. - var onKeyDownTime = new Date().getTime(); - - function onKeyDown(event){ - var timestamp = (new Date()).getTime(); - if(timestamp > onKeyDownTime + 200){ - event = dojo.fixEvent(event); - var keys = dojo.keys; - var ekc = event.keyCode; - onKeyDownTime = timestamp; - if(ekc == keys.F12){ - toggleConsole(); - }else if( - (ekc == keys.NUMPAD_ENTER || ekc == 76) && - event.shiftKey && - (event.metaKey || event.ctrlKey) - ){ - focusCommandLine(); - }else{ - return; - } - cancelEvent(event); - } - } - - function onCommandLineKeyDown(e){ - var dk = dojo.keys; - if(e.keyCode == 13 && commandLine.value){ - addToHistory(commandLine.value); - evalCommandLine(); - }else if(e.keyCode == 27){ - commandLine.value = ""; - }else if(e.keyCode == dk.UP_ARROW || e.charCode == dk.UP_ARROW){ - navigateHistory("older"); - }else if(e.keyCode == dk.DOWN_ARROW || e.charCode == dk.DOWN_ARROW){ - navigateHistory("newer"); - }else if(e.keyCode == dk.HOME || e.charCode == dk.HOME){ - historyPosition = 1; - navigateHistory("older"); - }else if(e.keyCode == dk.END || e.charCode == dk.END){ - historyPosition = 999999; - navigateHistory("newer"); - } - } - - var historyPosition = -1; - var historyCommandLine = null; - - function addToHistory(value){ - var history = cookie("firebug_history"); - history = (history) ? dojo.fromJson(history) : []; - var pos = dojo.indexOf(history, value); - if (pos != -1){ - history.splice(pos, 1); - } - history.push(value); - cookie("firebug_history", dojo.toJson(history), 30); - while(history.length && !cookie("firebug_history")){ - history.shift(); - cookie("firebug_history", dojo.toJson(history), 30); - } - historyCommandLine = null; - historyPosition = -1; - } - - function navigateHistory(direction){ - var history = cookie("firebug_history"); - history = (history) ? dojo.fromJson(history) : []; - if(!history.length){ - return; - } - - if(historyCommandLine === null){ - historyCommandLine = commandLine.value; - } - - if(historyPosition == -1){ - historyPosition = history.length; - } - - if(direction == "older"){ - --historyPosition; - if(historyPosition < 0){ - historyPosition = 0; - } - }else if(direction == "newer"){ - ++historyPosition; - if(historyPosition > history.length){ - historyPosition = history.length; - } - } - - if(historyPosition == history.length){ - commandLine.value = historyCommandLine; - historyCommandLine = null; - }else{ - commandLine.value = history[historyPosition]; - } - } - - function cookie(name, value){ - var c = document.cookie; - if(arguments.length == 1){ - var matches = c.match(new RegExp("(?:^|; )" + name + "=([^;]*)")); - return matches ? decodeURIComponent(matches[1]) : undefined; // String or undefined - }else{ - var d = new Date(); - d.setMonth(d.getMonth()+1); - document.cookie = name + "=" + encodeURIComponent(value) + ((d.toUtcString) ? "; expires=" + d.toUTCString() : ""); - } - } - - function isArray(it){ - return it && it instanceof Array || typeof it == "array"; - } - - //*************************************************************************************************** - // Print Object Helpers - function objectLength(o){ - var cnt = 0; - for(var nm in o){ - cnt++; - } - return cnt; - } - - function printObject(o, i, txt, used){ - // Recursively trace object, indenting to represent depth for display in object inspector - var ind = " \t"; - txt = txt || ""; - i = i || ind; - used = used || []; - var opnCls; - - if(o && o.nodeType == 1){ - var html = []; - appendNode(o, html); - return html.join(""); - } - - var br=",\n", cnt = 0, length = objectLength(o); - - if(o instanceof Date){ - return i + o.toString() + br; - } - looking: - for(var nm in o){ - cnt++; - if(cnt==length){br = "\n";} - if(o[nm] === window || o[nm] === document){ - // do nothing - }else if(o[nm] === null){ - txt += i+nm + " : NULL" + br; - }else if(o[nm] && o[nm].nodeType){ - if(o[nm].nodeType == 1){ - //txt += i+nm + " : < "+o[nm].tagName+" id=\""+ o[nm].id+"\" />" + br; - }else if(o[nm].nodeType == 3){ - txt += i+nm + " : [ TextNode "+o[nm].data + " ]" + br; - } - - }else if(typeof o[nm] == "object" && (o[nm] instanceof String || o[nm] instanceof Number || o[nm] instanceof Boolean)){ - txt += i+nm + " : " + o[nm] + "," + br; - - }else if(o[nm] instanceof Date){ - txt += i+nm + " : " + o[nm].toString() + br; - - }else if(typeof(o[nm]) == "object" && o[nm]){ - for(var j = 0, seen; seen = used[j]; j++){ - if(o[nm] === seen){ - txt += i+nm + " : RECURSION" + br; - continue looking; - } - } - used.push(o[nm]); - - opnCls = (isArray(o[nm]))?["[","]"]:["{","}"]; - txt += i+nm +" : " + opnCls[0] + "\n";//non-standard break, (no comma) - txt += printObject(o[nm], i+ind, "", used); - txt += i + opnCls[1] + br; - - }else if(typeof o[nm] == "undefined"){ - txt += i+nm + " : undefined" + br; - }else if(nm == "toString" && typeof o[nm] == "function"){ - var toString = o[nm](); - if(typeof toString == "string" && toString.match(/function ?(.*?)\(/)){ - toString = escapeHTML(getObjectAbbr(o[nm])); - } - txt += i+nm +" : " + toString + br; - }else{ - txt += i+nm +" : "+ escapeHTML(getObjectAbbr(o[nm])) + br; - } - } - return txt; - } - - function getObjectAbbr(obj){ - // Gets an abbreviation of an object for display in log - // X items in object, including id - // X items in an array - // TODO: Firebug Sr. actually goes by char count - var isError = (obj instanceof Error); - if(obj.nodeType == 1){ - return escapeHTML('< '+obj.tagName.toLowerCase()+' id=\"'+ obj.id+ '\" />'); - } - if(obj.nodeType == 3){ - return escapeHTML('[TextNode: "'+obj.nodeValue+'"]'); - } - var nm = (obj && (obj.id || obj.name || obj.ObjectID || obj.widgetId)); - if(!isError && nm){ return "{"+nm+"}"; } - - var obCnt = 2; - var arCnt = 4; - var cnt = 0; - - if(isError){ - nm = "[ Error: "+(obj.message || obj.description || obj)+" ]"; - }else if(isArray(obj)){ - nm = "[" + obj.slice(0,arCnt).join(","); - if(obj.length > arCnt){ - nm += " ... ("+obj.length+" items)"; - } - nm += "]"; - }else if(typeof obj == "function"){ - nm = obj + ""; - var reg = /function\s*([^\(]*)(\([^\)]*\))[^\{]*\{/; - var m = reg.exec(nm); - if(m){ - if(!m[1]){ - m[1] = "function"; - } - nm = m[1] + m[2]; - }else{ - nm = "function()"; - } - }else if(typeof obj != "object" || typeof obj == "string"){ - nm = obj + ""; - }else{ - nm = "{"; - for(var i in obj){ - cnt++; - if(cnt > obCnt){ break; } - nm += i+":"+escapeHTML(obj[i])+" "; - } - nm+="}"; - } - - return nm; - } - - //************************************************************************************* - - //window.onerror = onError; - - addEvent(document, has("ie") || has("safari") ? "keydown" : "keypress", onKeyDown); - - if( (document.documentElement.getAttribute("debug") == "true")|| - (dojo.config.isDebug) - ){ - toggleConsole(true); - } - - dojo.addOnWindowUnload(function(){ - // Erase the globals and event handlers I created, to prevent spurious leak warnings - removeEvent(document, has("ie") || has("safari") ? "keydown" : "keypress", onKeyDown); - window.onFirebugResize = null; - window.console = null; - }); - -}); diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/infoIcon.png Binary file server/src/main/web-resources/_firebug/infoIcon.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/tab_lft_norm.png Binary file server/src/main/web-resources/_firebug/tab_lft_norm.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/tab_lft_over.png Binary file server/src/main/web-resources/_firebug/tab_lft_over.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/tab_rgt_norm.png Binary file server/src/main/web-resources/_firebug/tab_rgt_norm.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/tab_rgt_over.png Binary file server/src/main/web-resources/_firebug/tab_rgt_over.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/web-resources/_firebug/warningIcon.png Binary file server/src/main/web-resources/_firebug/warningIcon.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/WEB-INF/i18n/messages_en.properties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/main/webapp/WEB-INF/i18n/messages_en.properties Mon Jan 14 16:00:07 2013 +0100 @@ -0,0 +1,12 @@ + +date.format = yyyy/MM/dd HH:mm + +renkanIndex.new_renkan = New Renkan +renkanIndex.renkan_title = or create/open a Renkan with the title +renkanIndex.project_list = Project list +renkanIndex.project_name = Name +renkanIndex.project_creation = Creation +renkanIndex.project_edit = Edit +renkanIndex.project_edit_link = Edit projet + +renkanIndex.js.empty_name_error = Please enter a title \ No newline at end of file diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/WEB-INF/i18n/messages_fr.properties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/main/webapp/WEB-INF/i18n/messages_fr.properties Mon Jan 14 16:00:07 2013 +0100 @@ -0,0 +1,13 @@ + +date.format = dd/MM/yyyy HH:mm + +renkanIndex.new_renkan = Nouveau Renkan +renkanIndex.renkan_titre = ou bien créer un Renkan avec le titre +renkanIndex.project_list = Liste des projets +renkanIndex.project_title = Titre +renkanIndex.project_creation = Creation +renkanIndex.project_edit = Edition +renkanIndex.project_edit_link = Editer proj. + +renkanIndex.js.empty_name_error = Veuillez entrer un titre + diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/WEB-INF/spring-servlet.xml --- a/server/src/main/webapp/WEB-INF/spring-servlet.xml Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/webapp/WEB-INF/spring-servlet.xml Mon Jan 14 16:00:07 2013 +0100 @@ -15,8 +15,10 @@ - - + + + + @@ -38,6 +40,7 @@ + @@ -52,4 +55,10 @@ + + + + + + \ No newline at end of file diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/WEB-INF/templates/renkanIndex.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/main/webapp/WEB-INF/templates/renkanIndex.html Mon Jan 14 16:00:07 2013 +0100 @@ -0,0 +1,187 @@ + + + Renkan + + + + + + + + + + + + + +
    +
    +
    New Renkan
    +
    Create a Renkan with the title
    +
    + + +
    +
    +

    Project list

    + + + + + + + + + + + + + +
    NameCreationEdit
    titledateEdit projet
    +
    + + + diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/WEB-INF/templates/renkanProjectEdit.html --- a/server/src/main/webapp/WEB-INF/templates/renkanProjectEdit.html Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/webapp/WEB-INF/templates/renkanProjectEdit.html Mon Jan 14 16:00:07 2013 +0100 @@ -2,6 +2,7 @@ + Test de Rendu RENKAN @@ -22,7 +23,7 @@ - + - - diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/js/config.js --- a/server/src/main/webapp/static/js/config.js Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/webapp/static/js/config.js Mon Jan 14 16:00:07 2013 +0100 @@ -12,14 +12,15 @@ cowebx: 'lib/cowebx', org : 'lib/org', corenkan: 'static/js/corenkan', + rcolor: 'static/lib/rcolor', underscore: 'static/lib/underscore-min', }, - /*packages:[{ + packages:[{ name: 'dojo', - location:'lib/dojo', + location:'static/lib/dojo', main:'main' - }, - { + }] + /*{ name: 'dijit', location:'lib/dijit', main:'main' diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/js/corenkan-json.js --- a/server/src/main/webapp/static/js/corenkan-json.js Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/webapp/static/js/corenkan-json.js Mon Jan 14 16:00:07 2013 +0100 @@ -10,7 +10,7 @@ _proj.set(_data, {silent: true}); _renkan.renderer.autoScale(); if(typeof _opts.callback !== "undefined") { - console.log("Corenkan json: project loaded, calling callback fro project id " + _proj.id, _data, _proj); + console.log("Corenkan json: project loaded, calling callback for project id " + _proj.id, _data, _proj); _opts.callback(_proj, _renkan); } }); diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/js/corenkan.js --- a/server/src/main/webapp/static/js/corenkan.js Tue Jan 01 09:28:03 2013 +0100 +++ b/server/src/main/webapp/static/js/corenkan.js Mon Jan 14 16:00:07 2013 +0100 @@ -1,27 +1,37 @@ +//TODO add underscore as requirement define([ "dojo", - "coweb/main" -], function(dojo, coweb) { + "dojo/cookie", + "coweb/main", + "rcolor", + "underscore" +], function(dojo, cookie, coweb, RColor, underscore) { var CoRenkan = function() { }; var proto = CoRenkan.prototype; - + + var _ = underscore; + proto.init = function() { console.log("ready callback"); //this.initCollab(); - + var that = this; + var sess = coweb.initSession(); - var that = this; + sess.onStatusChange = function(status) { console.log(status); if(typeof that.onStatusChange === "function") { that.onStatusChange(status); } }; - sess.prepare(); + + sess.prepare().then(function(data) { + console.log("Prepare ok : ", data); + }); this.project = null; }; @@ -32,6 +42,31 @@ this.collab.subscribeSync("user", this, "onRemoteUserChange"); this.collab.subscribeSync("node", this, "onRemoteNodeChange"); this.collab.subscribeSync("edge", this, "onRemoteEdgeChange"); + this.collab.subscribeSync("_roster", this, "onRemoteRosterChange"); + + this.collab.subscribeReady(this, 'onLocalJoin'); + this.collab.subscribeSiteJoin(this, 'onRemoteJoin'); + this.collab.subscribeSiteLeave(this, 'onRemoteLeave'); + }; + + proto.onLocalJoin = function(params) { + console.log("Local join", params); + }; + + + proto.onRemoteJoin = function(params) { + console.log("Remote join", params); + // do nothing + }; + + proto.onRemoteLeave = function(params) { + console.log("Remote leave", params); + + // remove remote site from current_user_list + if(typeof this.renkan === "undefined" || this.renkan == null || typeof this.renkan.current_user_list === "undefined" || this.renkan.current_user_list == null) { + return; + } + }; function prepareValues(obj,c) { @@ -51,7 +86,8 @@ id: obj.id, _type: type, _index: options.index, - _project_id : obj.get("project").get("_id") + _project_id : obj.get("project").get("_id"), + _user_id : (this.project.current_user!=null)?this.project.current_user.id:null }; for(var k in new_values) { values[k] = new_values[k]; @@ -66,7 +102,8 @@ id: obj.id, _type: type, _index: options.index, - _project_id : obj.get("project").id + _project_id : obj.get("project").id, + _user_id : (this.project.current_user!=null)?this.project.current_user.id:null }; this.collab.sendSync(type, values, "delete", options.index); }; @@ -77,19 +114,142 @@ var values = { id: obj.id, _type: type, - _project_id : obj.get("project").id + _project_id : obj.get("project").id, + _user_id : (this.project.current_user!=null)?this.project.current_user.id:null }; _.extend(values,obj.changed); this.collab.sendSync(type, values); } }; + /** + * Called when an abject is changed + * + */ + proto.objectChange = function(event, model, collection, options) { + + console.log("project change all ", event, model, collection, options); + // check that current user is in user list of the project + + if(this.project == null || this.project.current_user == null) { + return; + } + var current_user = this.project.current_user; + + if(this.project.get("users").get(current_user.id) == null) { + var props = current_user.toJSON(); + this.project.addUser(props); + } + + }; + + + proto.setObjects = function(renkan) { + + console.log(cookie("BAYEUX_BROWSER")); + var project = renkan.project; + this.setProject(project); + this.setRenkan(renkan); + + this.initCollab("renkan_" + project.id); + + this.setUser(renkan); + + }; + + proto.setRenkan = function(renkan) { + + console.log("Set Renkan"); + + var that = this; + + renkan.current_user_list.bind("add", function(obj, c, options) { + that.addObjectBind("_roster", obj, c, options); + }); + renkan.current_user_list.bind("remove", function(obj, c, options) { + that.removeObjectBind("_roster", obj, c, options); + }); + renkan.current_user_list.bind("change", function(obj, options) { + that.updateObjectBind("_roster", obj, options); + }); + + renkan.current_user_list.bind("change", function(obj, options) { + console.log("update roster",obj, options); + // get user in project + project = obj.get("project"); + if(project == null) { + console.log("null project return"); + return; + } + user = project.get("users").get(obj.id); + if(user == null) { + console.log("user " + obj.id + " not in project. return"); + return; + } + for(att in obj.changed) { + new_val = obj.changed[att]; + if(user.get("att") != new_val) { + user.set(att, new_val); + } + } + }); + + this.renkan = renkan; + + }; + + proto.setUser = function(renkan) { + console.log("set user : " + cookie("BAYEUX_BROWSER")); + + if(typeof renkan === "undefined" || typeof renkan.project === "undefined" || renkan.project == null) { + return; + } + + var user_id = cookie("BAYEUX_BROWSER"); + var project = renkan.project; + + var puser = project.get("users").get(user_id); + var puser_def = null; + if(puser == null) { + color = new RColor(); + puser_def = { + id: user_id, + title: "anonymous", + project: project, + color: color.get(true, 0.3, 0.99) + }; + } + else { + puser_def = puser.toJSON(); + puser_def.project = project; + } + puser = renkan.current_user_list.push(puser_def); + + project.current_user = puser; + renkan.current_user = puser.id; + + var that = this; + + project.once("all", function(event, model, collection, options){ + that.objectChange(event, model, collection, options); + }); + project.get("nodes").once("all", function(event, model, collection, options){ + that.objectChange(event, model, collection, options); + }); + project.get("edges").once("all", function(event, model, collection, options){ + that.objectChange(event, model, collection, options); + }); + + + }; + proto.setProject = function(project) { console.log("project", project); - - var projectFields = ["title", "description", "uri"]; + + var projectFields = ["title", "description", "uri"]; var that = this; + for(var fieldIndex in projectFields) { (function(fi){ var field = projectFields[fi]; @@ -106,6 +266,7 @@ })(fieldIndex); } + project.get("nodes").bind("add", function(obj, c, options) { that.addObjectBind("node", obj, c, options); }); @@ -144,7 +305,6 @@ this.project = project; - this.initCollab("renkan_" + project.id); }; @@ -159,13 +319,6 @@ if (args.type === "update") { this.onRemoteProjectUpdate(args.value, args.position); } - /*if (args.type === "insert") { - this.onRemoteInsert(value, args.position); - } else if (args.type === "update") { - this.onRemoteUpdate(value, args.position); - } else if (args.type === "delete") { - this.onRemoteDelete(args.position); - }*/ }; @@ -213,8 +366,16 @@ proto.onRemoteEdgeChange = function(args) { this.onRemoteObjectChange("edges", args); }; - - + + /** + * Called when a remote data store for nodes changes in some manner. Dispatches to + * local methods for insert, update, delete handling. + * @param args Cooperative web event + */ + proto.onRemoteRosterChange = function(args) { + this.onRemoteObjectChange(this.renkan.current_user_list, args); + }; + /** * Called when a project attribute changes value in a remote data store. * Updates the attribute value of the item with the same id in the local @@ -242,20 +403,28 @@ /** * Called when an object is inserted in a remote data store. * + * @param field_coll A collection or a string for one of the project collection * @param value Item data sent by remote data store * @param position Which item to update. */ - proto.onRemoteObjectInsert = function(field, values, position) { + proto.onRemoteObjectInsert = function(field_coll, values, position) { + + console.log("Remote ", field_coll ," insert values ", values, "position", position); - console.log("Remote "+ field +" insert values ", values, "position", position); - - var coll = this.project.get(field); + var coll = null; + if(typeof field_coll === "string") { + coll = this.project.get(field_coll); + } + else { + coll = field_coll; + } + var object_id = values['id']; var obj = coll.get(object_id); if(obj != null) { - this.onRemoteObjectUpdate(field, values, coll.indexOf(obj)); + this.onRemoteObjectUpdate(field_coll, values, coll.indexOf(obj)); } else { var add_values = {}; @@ -264,7 +433,7 @@ add_values[fieldname] = values[fieldname]; } } - switch(field) { + switch(field_coll) { case "nodes": this.project.addNode(add_values, {at:position}); break; @@ -274,7 +443,12 @@ case "users": this.project.addUser(add_values, {at:position}); break; + default: + add_values.project = this.project; + coll.push(add_values, {at:position}); + break; } + } }; @@ -284,18 +458,26 @@ * Updates the attribute value of the item with the same id in the local * data store. * - * @param field The collection field + * @param field_coll A collection or a string for one of the project collection * @param value Item data sent by remote data store * @param position Which item to update. */ - proto.onRemoteObjectUpdate = function(field, values, position) { + proto.onRemoteObjectUpdate = function(field_coll, values, position) { + + console.log("Remote ", field_coll ," update values ", values, "position", position); - console.log("Remote "+ field +" update values ", values, "position", position); + var coll = null; + if(typeof field_coll === "string") { + coll = this.project.get(field_coll); + } + else { + coll = field_coll; + } var object_id = values['id']; if(this.project != null) { - var obj = this.project.get(field).get(object_id); + var obj = coll.get(object_id); if(obj != null) { var changed_val = {}; for(var fieldname in values) { @@ -311,11 +493,20 @@ /** * Called when a object is deleted in a remote data store. * + * @param field_coll A collection or a string for one of the project collection * @param position Which item to update. */ - proto.onRemoteObjectDelete = function(field, position) { - console.log("Remote "+ field +" delete position", position); - this.project.get(field).remove(this.project.get(field).at(position)); + proto.onRemoteObjectDelete = function(field_coll, position) { + console.log("Remote ", field_coll," delete position", position); + var coll = null; + if(typeof field_coll === "string") { + coll = this.project.get(field); + } + else { + coll = field_coll; + } + + coll.remove(coll.at(position)); }; diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/js/dojo.js --- a/server/src/main/webapp/static/js/dojo.js Tue Jan 01 09:28:03 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -/* - Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved. - Available via Academic Free License >= 2.1 OR the modified BSD license. - see: http://dojotoolkit.org/license for details -*/ - -/* - This is an optimized version of Dojo, built for deployment and not for - development. To get sources and documentation, please visit: - - http://dojotoolkit.org -*/ - -//>>built -(function(_1,_2){var _3=function(){},_4=function(it){for(var p in it){return 0;}return 1;},_5={}.toString,_6=function(it){return _5.call(it)=="[object Function]";},_7=function(it){return _5.call(it)=="[object String]";},_8=function(it){return _5.call(it)=="[object Array]";},_9=function(_a,_b){if(_a){for(var i=0;i<_a.length;){_b(_a[i++]);}}},_c=function(_d,_e){for(var p in _e){_d[p]=_e[p];}return _d;},_f=function(_10,_11){return _c(new Error(_10),{src:"dojoLoader",info:_11});},_12=1,uid=function(){return "_"+_12++;},req=function(_13,_14,_15){return _16(_13,_14,_15,0,req);},_17=this,doc=_17.document,_18=doc&&doc.createElement("DiV"),has=req.has=function(_19){return _6(_1a[_19])?(_1a[_19]=_1a[_19](_17,doc,_18)):_1a[_19];},_1a=has.cache=_2.hasCache;has.add=function(_1b,_1c,now,_1d){(_1a[_1b]===undefined||_1d)&&(_1a[_1b]=_1c);return now&&has(_1b);};0&&has.add("host-node",_1.has&&"host-node" in _1.has?_1.has["host-node"]:(typeof process=="object"&&process.versions&&process.versions.node&&process.versions.v8));if(0){require("./_base/configNode.js").config(_2);_2.loaderPatch.nodeRequire=require;}0&&has.add("host-rhino",_1.has&&"host-rhino" in _1.has?_1.has["host-rhino"]:(typeof load=="function"&&(typeof Packages=="function"||typeof Packages=="object")));if(0){for(var _1e=_1.baseUrl||".",arg,_1f=this.arguments,i=0;i<_1f.length;){arg=(_1f[i++]+"").split("=");if(arg[0]=="baseUrl"){_1e=arg[1];break;}}load(_1e+"/_base/configRhino.js");rhinoDojoConfig(_2,_1e,_1f);}for(var p in _1.has){has.add(p,_1.has[p],0,1);}var _20=1,_21=2,_22=3,_23=4,_24=5;if(0){_20="requested";_21="arrived";_22="not-a-module";_23="executing";_24="executed";}var _25=0,_26="sync",xd="xd",_27=[],_28=0,_29=_3,_2a=_3,_2b;if(1){req.isXdUrl=_3;req.initSyncLoader=function(_2c,_2d,_2e){if(!_28){_28=_2c;_29=_2d;_2a=_2e;}return {sync:_26,requested:_20,arrived:_21,nonmodule:_22,executing:_23,executed:_24,syncExecStack:_27,modules:_2f,execQ:_30,getModule:_31,injectModule:_32,setArrived:_33,signal:_34,finishExec:_35,execModule:_36,dojoRequirePlugin:_28,getLegacyMode:function(){return _25;},guardCheckComplete:_37};};if(1){var _38=location.protocol,_39=location.host;req.isXdUrl=function(url){if(/^\./.test(url)){return false;}if(/^\/\//.test(url)){return true;}var _3a=url.match(/^([^\/\:]+\:)\/+([^\/]+)/);return _3a&&(_3a[1]!=_38||(_39&&_3a[2]!=_39));};1||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")){_2b=function(){return new XMLHttpRequest();};}else{for(var _3b=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],_3c,i=0;i<3;){try{_3c=_3b[i++];if(new ActiveXObject(_3c)){break;}}catch(e){}}_2b=function(){return new ActiveXObject(_3c);};}req.getXhr=_2b;has.add("dojo-gettext-api",1);req.getText=function(url,_3d,_3e){var xhr=_2b();xhr.open("GET",_3f(url),false);xhr.send(null);if(xhr.status==200||(!location.host&&!xhr.status)){if(_3e){_3e(xhr.responseText,_3d);}}else{throw _f("xhrFailed",xhr.status);}return xhr.responseText;};}}else{req.async=1;}var _40=new Function("return eval(arguments[0]);");req.eval=function(_41,_42){return _40(_41+"\r\n////@ sourceURL="+_42);};var _43={},_44="error",_34=req.signal=function(_45,_46){var _47=_43[_45];_9(_47&&_47.slice(0),function(_48){_48.apply(null,_8(_46)?_46:[_46]);});},on=req.on=function(_49,_4a){var _4b=_43[_49]||(_43[_49]=[]);_4b.push(_4a);return {remove:function(){for(var i=0;i<_4b.length;i++){if(_4b[i]===_4a){_4b.splice(i,1);return;}}}};};var _4c=[],_4d={},_4e=[],_4f={},map=req.map={},_50=[],_2f={},_51="",_52={},_53="url:",_54={},_55={};if(1){var _56=function(_57){var p,_58,_59,now,m;for(p in _54){_58=_54[p];_59=p.match(/^url\:(.+)/);if(_59){_52[_53+_5a(_59[1],_57)]=_58;}else{if(p=="*now"){now=_58;}else{if(p!="*noref"){m=_5b(p,_57);_52[m.mid]=_52[_53+m.url]=_58;}}}}if(now){now(_5c(_57));}_54={};},_5d=function(s){return s.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(c){return "\\"+c;});},_5e=function(map,_5f){_5f.splice(0,_5f.length);for(var p in map){_5f.push([p,map[p],new RegExp("^"+_5d(p)+"(/|$)"),p.length]);}_5f.sort(function(lhs,rhs){return rhs[3]-lhs[3];});return _5f;},_60=function(_61){var _62=_61.name;if(!_62){_62=_61;_61={name:_62};}_61=_c({main:"main"},_61);_61.location=_61.location?_61.location:_62;if(_61.packageMap){map[_62]=_61.packageMap;}if(!_61.main.indexOf("./")){_61.main=_61.main.substring(2);}_4f[_62]=_61;},_63=function(_64,_65,_66){for(var p in _64){if(p=="waitSeconds"){req.waitms=(_64[p]||0)*1000;}if(p=="cacheBust"){_51=_64[p]?(_7(_64[p])?_64[p]:(new Date()).getTime()+""):"";}if(p=="baseUrl"||p=="combo"){req[p]=_64[p];}if(1&&p=="async"){var _67=_64[p];req.legacyMode=_25=(_7(_67)&&/sync|legacyAsync/.test(_67)?_67:(!_67?_26:false));req.async=!_25;}if(_64[p]!==_1a){req.rawConfig[p]=_64[p];p!="has"&&has.add("config-"+p,_64[p],0,_65);}}if(!req.baseUrl){req.baseUrl="./";}if(!/\/$/.test(req.baseUrl)){req.baseUrl+="/";}for(p in _64.has){has.add(p,_64.has[p],0,_65);}_9(_64.packages,_60);for(_1e in _64.packagePaths){_9(_64.packagePaths[_1e],function(_68){var _69=_1e+"/"+_68;if(_7(_68)){_68={name:_68};}_68.location=_69;_60(_68);});}_5e(_c(map,_64.map),_50);_9(_50,function(_6a){_6a[1]=_5e(_6a[1],[]);if(_6a[0]=="*"){_50.star=_6a[1];}});_5e(_c(_4d,_64.paths),_4e);_9(_64.aliases,function(_6b){if(_7(_6b[0])){_6b[0]=new RegExp("^"+_5d(_6b[0])+"$");}_4c.push(_6b);});for(p in _64.config){var _6c=_31(p,_66);_6c.config=_c(_6c.config||{},_64.config[p]);}if(_64.cache){_56();_54=_64.cache;if(_64.cache["*noref"]){_56();}}_34("config",[_64,req.rawConfig]);};if(has("dojo-cdn")||1){var _6d=doc.getElementsByTagName("script"),i=0,_6e,_6f,src,_70;while(i<_6d.length){_6e=_6d[i++];if((src=_6e.getAttribute("src"))&&(_70=src.match(/(((.*)\/)|^)dojo\.js(\W|$)/i))){_6f=_70[3]||"";_2.baseUrl=_2.baseUrl||_6f;src=(_6e.getAttribute("data-dojo-config")||_6e.getAttribute("djConfig"));if(src){_55=req.eval("({ "+src+" })","data-dojo-config");}if(0){var _71=_6e.getAttribute("data-main");if(_71){_55.deps=_55.deps||[_71];}}break;}}}if(0){try{if(window.parent!=window&&window.parent.require){var doh=window.parent.require("doh");doh&&_c(_55,doh.testConfig);}}catch(e){}}req.rawConfig={};_63(_2,1);if(has("dojo-cdn")){_4f.dojo.location=_6f;if(_6f){_6f+="/";}_4f.dijit.location=_6f+"../dijit/";_4f.dojox.location=_6f+"../dojox/";}_63(_1,1);_63(_55,1);}else{_4d=_2.paths;_4e=_2.pathsMapProg;_4f=_2.packs;_4c=_2.aliases;_50=_2.mapProgs;_2f=_2.modules;_52=_2.cache;_51=_2.cacheBust;req.rawConfig=_2;}if(0){req.combo=req.combo||{add:_3};var _72=0,_73=[],_74=null;}var _75=function(_76){_37(function(){_9(_76.deps,_32);if(0&&_72&&!_74){_74=setTimeout(function(){_72=0;_74=null;req.combo.done(function(_77,url){var _78=function(){_79(0,_77);_7a();};_73.push(_77);_7b=_77;req.injectUrl(url,_78,_77);_7b=0;},req);},0);}});},_16=function(a1,a2,a3,_7c,_7d){var _7e,_7f;if(_7(a1)){_7e=_31(a1,_7c,true);if(_7e&&_7e.executed){return _7e.result;}throw _f("undefinedModule",a1);}if(!_8(a1)){_63(a1,0,_7c);a1=a2;a2=a3;}if(_8(a1)){if(!a1.length){a2&&a2();}else{_7f="require*"+uid();for(var mid,_80=[],i=0;i_aa){_ab=_6(_ac[1])?mid.replace(_ac[0],_ac[1]):_ac[1];}});if(_ab){return _9b(_ab,0,_9d,_9e,_9f,_a0,_a1,_a2);}_a7=_9e[mid];if(_a7){return _a2?_81(_a7.pid,_a7.mid,_a7.pack,_a7.url):_9e[mid];}}_a6=_93(mid,_a1);if(_a6){url=_a6[1]+mid.substring(_a6[3]);}else{if(pid){url=_a3.location+"/"+_a4;}else{if(has("config-tlmSiblingOfDojo")){url="../"+mid;}else{url=mid;}}}if(!(/(^\/)|(\:)/.test(url))){url=_9f+url;}url+=".js";return _81(pid,mid,_a3,_95(url));},_5b=function(mid,_ae){return _9b(mid,_ae,_4f,_2f,req.baseUrl,_50,_4e);},_af=function(_b0,_b1,_b2){return _b0.normalize?_b0.normalize(_b1,function(mid){return _b3(mid,_b2);}):_b3(_b1,_b2);},_b4=0,_31=function(mid,_b5,_b6){var _b7,_b8,_b9,_ba;_b7=mid.match(/^(.+?)\!(.*)$/);if(_b7){_b8=_31(_b7[1],_b5,_b6);if(1&&_25==_26&&!_b8.executed){_32(_b8);if(_b8.injected===_21&&!_b8.executed){_37(function(){_36(_b8);});}if(_b8.executed){_bb(_b8);}else{_30.unshift(_b8);}}if(_b8.executed===_24&&!_b8.load){_bb(_b8);}if(_b8.load){_b9=_af(_b8,_b7[2],_b5);mid=(_b8.mid+"!"+(_b8.dynamic?++_b4+"!":"")+_b9);}else{_b9=_b7[2];mid=_b8.mid+"!"+(++_b4)+"!waitingForPlugin";}_ba={plugin:_b8,mid:mid,req:_5c(_b5),prid:_b9};}else{_ba=_5b(mid,_b5);}return _2f[_ba.mid]||(!_b6&&(_2f[_ba.mid]=_ba));},_b3=req.toAbsMid=function(mid,_bc){return _5b(mid,_bc).mid;},_5a=req.toUrl=function(_bd,_be){var _bf=_5b(_bd+"/x",_be),url=_bf.url;return _3f(_bf.pid===0?_bd:url.substring(0,url.length-5));},_c0={injected:_21,executed:_24,def:_22,result:_22},_c1=function(mid){return _2f[mid]=_c({mid:mid},_c0);},_c2=_c1("require"),_c3=_c1("exports"),_c4=_c1("module"),_c5=function(_c6,_c7){req.trace("loader-run-factory",[_c6.mid]);var _c8=_c6.def,_c9;1&&_27.unshift(_c6);if(has("config-dojo-loader-catches")){try{_c9=_6(_c8)?_c8.apply(null,_c7):_c8;}catch(e){_34(_44,_c6.result=_f("factoryThrew",[_c6,e]));}}else{_c9=_6(_c8)?_c8.apply(null,_c7):_c8;}_c6.result=_c9===undefined&&_c6.cjs?_c6.cjs.exports:_c9;1&&_27.shift(_c6);},_ca={},_cb=0,_bb=function(_cc){var _cd=_cc.result;_cc.dynamic=_cd.dynamic;_cc.normalize=_cd.normalize;_cc.load=_cd.load;return _cc;},_ce=function(_cf){var map={};_9(_cf.loadQ,function(_d0){var _d1=_af(_cf,_d0.prid,_d0.req.module),mid=_cf.dynamic?_d0.mid.replace(/waitingForPlugin$/,_d1):(_cf.mid+"!"+_d1),_d2=_c(_c({},_d0),{mid:mid,prid:_d1,injected:0});if(!_2f[mid]){_e4(_2f[mid]=_d2);}map[_d0.mid]=_2f[mid];_33(_d0);delete _2f[_d0.mid];});_cf.loadQ=0;var _d3=function(_d4){for(var _d5,_d6=_d4.deps||[],i=0;i<_d6.length;i++){_d5=map[_d6[i].mid];if(_d5){_d6[i]=_d5;}}};for(var p in _2f){_d3(_2f[p]);}_9(_30,_d3);},_35=function(_d7){req.trace("loader-finish-exec",[_d7.mid]);_d7.executed=_24;_d7.defOrder=_cb++;1&&_9(_d7.provides,function(cb){cb();});if(_d7.loadQ){_bb(_d7);_ce(_d7);}for(i=0;i<_30.length;){if(_30[i]===_d7){_30.splice(i,1);}else{i++;}}if(/^require\*/.test(_d7.mid)){delete _2f[_d7.mid];}},_d8=[],_36=function(_d9,_da){if(_d9.executed===_23){req.trace("loader-circular-dependency",[_d8.concat(_d9.mid).join("->")]);return (!_d9.def||_da)?_ca:(_d9.cjs&&_d9.cjs.exports);}if(!_d9.executed){if(!_d9.def){return _ca;}var mid=_d9.mid,_db=_d9.deps||[],arg,_dc,_dd=[],i=0;if(0){_d8.push(mid);req.trace("loader-exec-module",["exec",_d8.length,mid]);}_d9.executed=_23;while(i<_db.length){arg=_db[i++];_dc=((arg===_c2)?_5c(_d9):((arg===_c3)?_d9.cjs.exports:((arg===_c4)?_d9.cjs:_36(arg,_da))));if(_dc===_ca){_d9.executed=0;req.trace("loader-exec-module",["abort",mid]);0&&_d8.pop();return _ca;}_dd.push(_dc);}_c5(_d9,_dd);_35(_d9);0&&_d8.pop();}return _d9.result;},_83=0,_37=function(_de){try{_83++;_de();}finally{_83--;}if(_92()){_34("idle",[]);}},_7a=function(){if(_83){return;}_37(function(){_29();for(var _df,_e0,i=0;i<_30.length;){_df=_cb;_e0=_30[i];_36(_e0);if(_df!=_cb){_29();i=0;}else{i++;}}});};if(0){req.undef=function(_e1,_e2){var _e3=_31(_e1,_e2);_33(_e3);delete _2f[_e3.mid];};}if(1){if(has("dojo-loader-eval-hint-url")===undefined){has.add("dojo-loader-eval-hint-url",1);}var _3f=function(url){url+="";return url+(_51?((/\?/.test(url)?"&":"?")+_51):"");},_e4=function(_e5){var _e6=_e5.plugin;if(_e6.executed===_24&&!_e6.load){_bb(_e6);}var _e7=function(def){_e5.result=def;_33(_e5);_35(_e5);_7a();};if(_e6.load){_e6.load(_e5.prid,_e5.req,_e7);}else{if(_e6.loadQ){_e6.loadQ.push(_e5);}else{_e6.loadQ=[_e5];_30.unshift(_e6);_32(_e6);}}},_89=0,_7b=0,_e8=0,_8a=function(_e9,_ea){if(has("config-stripStrict")){_e9=_e9.replace(/"use strict"/g,"");}_e8=1;if(has("config-dojo-loader-catches")){try{if(_e9===_89){_89.call(null);}else{req.eval(_e9,has("dojo-loader-eval-hint-url")?_ea.url:_ea.mid);}}catch(e){_34(_44,_f("evalModuleThrew",_ea));}}else{if(_e9===_89){_89.call(null);}else{req.eval(_e9,has("dojo-loader-eval-hint-url")?_ea.url:_ea.mid);}}_e8=0;},_32=function(_eb){var mid=_eb.mid,url=_eb.url;if(_eb.executed||_eb.injected||_8c[mid]||(_eb.url&&((_eb.pack&&_8c[_eb.url]===_eb.pack)||_8c[_eb.url]==1))){return;}_8d(_eb);if(0){var _ec=0;if(_eb.plugin&&_eb.plugin.isCombo){req.combo.add(_eb.plugin.mid,_eb.prid,0,req);_ec=1;}else{if(!_eb.plugin){_ec=req.combo.add(0,_eb.mid,_eb.url,req);}}if(_ec){_72=1;return;}}if(_eb.plugin){_e4(_eb);return;}var _ed=function(){_79(_eb);if(_eb.injected!==_21){_33(_eb);_c(_eb,_c0);req.trace("loader-define-nonmodule",[_eb.url]);}if(1&&_25){!_27.length&&_7a();}else{_7a();}};_89=_52[mid]||_52[_53+_eb.url];if(_89){req.trace("loader-inject",["cache",_eb.mid,url]);_8a(_89,_eb);_ed();return;}if(1&&_25){if(_eb.isXd){_25==_26&&(_25=xd);}else{if(_eb.isAmd&&_25!=_26){}else{var _ee=function(_ef){if(_25==_26){_27.unshift(_eb);_8a(_ef,_eb);_27.shift();_79(_eb);if(!_eb.cjs){_33(_eb);_35(_eb);}if(_eb.finish){var _f0=mid+"*finish",_f1=_eb.finish;delete _eb.finish;def(_f0,["dojo",("dojo/require!"+_f1.join(",")).replace(/\./g,"/")],function(_f2){_9(_f1,function(mid){_f2.require(mid);});});_30.unshift(_31(_f0));}_ed();}else{_ef=_2a(_eb,_ef);if(_ef){_8a(_ef,_eb);_ed();}else{_7b=_eb;req.injectUrl(_3f(url),_ed,_eb);_7b=0;}}};req.trace("loader-inject",["xhr",_eb.mid,url,_25!=_26]);if(has("config-dojo-loader-catches")){try{req.getText(url,_25!=_26,_ee);}catch(e){_34(_44,_f("xhrInjectFailed",[_eb,e]));}}else{req.getText(url,_25!=_26,_ee);}return;}}}req.trace("loader-inject",["script",_eb.mid,url]);_7b=_eb;req.injectUrl(_3f(url),_ed,_eb);_7b=0;},_f3=function(_f4,_f5,def){req.trace("loader-define-module",[_f4.mid,_f5]);if(0&&_f4.plugin&&_f4.plugin.isCombo){_f4.result=_6(def)?def():def;_33(_f4);_35(_f4);return _f4;}var mid=_f4.mid;if(_f4.injected===_21){_34(_44,_f("multipleDefine",_f4));return _f4;}_c(_f4,{deps:_f5,def:def,cjs:{id:_f4.mid,uri:_f4.url,exports:(_f4.result={}),setExports:function(_f6){_f4.cjs.exports=_f6;},config:function(){return _f4.config;}}});for(var i=0;i<_f5.length;i++){_f5[i]=_31(_f5[i],_f4);}if(1&&_25&&!_8c[mid]){_75(_f4);_30.push(_f4);_7a();}_33(_f4);if(!_6(def)&&!_f5.length){_f4.result=def;_35(_f4);}return _f4;},_79=function(_f7,_f8){var _f9=[],_fa,_fb;while(_8b.length){_fb=_8b.shift();_f8&&(_fb[0]=_f8.shift());_fa=(_fb[0]&&_31(_fb[0]))||_f7;_f9.push([_fa,_fb[1],_fb[2]]);}_56(_f7);_9(_f9,function(_fc){_75(_f3.apply(null,_fc));});};}var _fd=0,_91=_3,_8f=_3;if(1){_91=function(){_fd&&clearTimeout(_fd);_fd=0;},_8f=function(){_91();if(req.waitms){_fd=window.setTimeout(function(){_91();_34(_44,_f("timeout",_8c));},req.waitms);}};}if(1){has.add("ie-event-behavior",!!doc.attachEvent&&(typeof opera==="undefined"||opera.toString()!="[object Opera]"));}if(1&&(1||1)){var _fe=function(_ff,_100,_101,_102){if(!has("ie-event-behavior")){_ff.addEventListener(_100,_102,false);return function(){_ff.removeEventListener(_100,_102,false);};}else{_ff.attachEvent(_101,_102);return function(){_ff.detachEvent(_101,_102);};}},_103=_fe(window,"load","onload",function(){req.pageLoaded=1;doc.readyState!="complete"&&(doc.readyState="complete");_103();});if(1){var _104=doc.getElementsByTagName("script")[0],_105=_104.parentNode;req.injectUrl=function(url,_106,_107){var node=_107.node=doc.createElement("script"),_108=function(e){e=e||window.event;var node=e.target||e.srcElement;if(e.type==="load"||/complete|loaded/.test(node.readyState)){_109();_10a();_106&&_106();}},_109=_fe(node,"load","onreadystatechange",_108),_10a=_fe(node,"error","onerror",function(e){_109();_10a();_34(_44,_f("scriptError",[url,e]));});node.type="text/javascript";node.charset="utf-8";node.src=url;_105.insertBefore(node,_104);return node;};}}if(1){req.log=function(){try{for(var i=0;i0){_129._delayTimer=setTimeout(_12a,de);return _129;}_12a();return _129;},_play:function(_12b){var _12c=this;if(_12c._delayTimer){_12c._clearTimer();}_12c._startTime=new Date().valueOf();if(_12c._paused){_12c._startTime-=_12c.duration*_12c._percent;}_12c._active=true;_12c._paused=false;var _12d=_12c.curve.getValue(_12c._getStep());if(!_12c._percent){if(!_12c._startRepeatCount){_12c._startRepeatCount=_12c.repeat;}_12c._fire("onBegin",[_12d]);}_12c._fire("onPlay",[_12d]);_12c._cycle();return _12c;},pause:function(){var _12e=this;if(_12e._delayTimer){_12e._clearTimer();}_12e._stopTimer();if(!_12e._active){return _12e;}_12e._paused=true;_12e._fire("onPause",[_12e.curve.getValue(_12e._getStep())]);return _12e;},gotoPercent:function(_12f,_130){var _131=this;_131._stopTimer();_131._active=_131._paused=true;_131._percent=_12f;if(_130){_131.play();}return _131;},stop:function(_132){var _133=this;if(_133._delayTimer){_133._clearTimer();}if(!_133._timer){return _133;}_133._stopTimer();if(_132){_133._percent=1;}_133._fire("onStop",[_133.curve.getValue(_133._getStep())]);_133._active=_133._paused=false;return _133;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _134=this;if(_134._active){var curr=new Date().valueOf();var step=_134.duration===0?1:(curr-_134._startTime)/(_134.duration);if(step>=1){step=1;}_134._percent=step;if(_134.easing){step=_134.easing(step);}_134._fire("onAnimate",[_134.curve.getValue(step)]);if(_134._percent<1){_134._startTimer();}else{_134._active=false;if(_134.repeat>0){_134.repeat--;_134.play(null,true);}else{if(_134.repeat==-1){_134.play(null,true);}else{if(_134._startRepeatCount){_134.repeat=_134._startRepeatCount;_134._startRepeatCount=0;}}}_134._percent=0;_134._fire("onEnd",[_134.node]);!_134.repeat&&_134._stopTimer();}}return _134;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_135=null,_136={run:function(){}};lang.extend(_124,{_startTimer:function(){if(!this._timer){this._timer=_11e.connect(_136,"run",this,"_cycle");ctr++;}if(!_135){_135=setInterval(lang.hitch(_136,"run"),this.rate);}},_stopTimer:function(){if(this._timer){_11e.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_135);_135=null;ctr=0;}}});var _137=has("ie")?function(node){var ns=node.style;if(!ns.width.length&&_11f.get(node,"width")=="auto"){ns.width="auto";}}:function(){};_121._fade=function(args){args.node=dom.byId(args.node);var _138=_120({properties:{}},args),_139=(_138.properties.opacity={});_139.start=!("start" in _138)?function(){return +_11f.get(_138.node,"opacity")||0;}:_138.start;_139.end=_138.end;var anim=_121.animateProperty(_138);_11e.connect(anim,"beforeBegin",lang.partial(_137,_138.node));return anim;};_121.fadeIn=function(args){return _121._fade(_120({end:1},args));};_121.fadeOut=function(args){return _121._fade(_120({end:0},args));};_121._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _13a=function(_13b){this._properties=_13b;for(var p in _13b){var prop=_13b[p];if(prop.start instanceof _11d){prop.tempColor=new _11d();}}};_13a.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_13c=prop.start;if(_13c instanceof _11d){ret[p]=_11d.blendColors(_13c,prop.end,r,prop.tempColor).toCss();}else{if(!lang.isArray(_13c)){ret[p]=((prop.end-_13c)*r)+_13c+(p!="opacity"?prop.units||"px":0);}}}return ret;};_121.animateProperty=function(args){var n=args.node=dom.byId(args.node);if(!args.easing){args.easing=dojo._defaultEasing;}var anim=new _124(args);_11e.connect(anim,"beforeBegin",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]=_120({},(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 _13d=(p.toLowerCase().indexOf("color")>=0);function _13e(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=_11f.get(node,p);return (p=="opacity")?+v:(_13d?v:parseFloat(v));};if(!("end" in prop)){prop.end=_13e(n,p);}else{if(!("start" in prop)){prop.start=_13e(n,p);}}if(_13d){prop.start=new _11d(prop.start);prop.end=new _11d(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new _13a(pm);});_11e.connect(anim,"onAnimate",lang.hitch(_11f,"set",anim.node));return anim;};_121.anim=function(node,_13f,_140,_141,_142,_143){return _121.animateProperty({node:node,duration:_140||_124.prototype.duration,properties:_13f,easing:_141,onEnd:_142}).play(_143||0);};if(1){_120(dojo,_121);dojo._Animation=_124;}return _121;});},"dojo/dom-form":function(){define(["./_base/lang","./dom","./io-query","./json"],function(lang,dom,ioq,json){function _144(obj,name,_145){if(_145===null){return;}var val=obj[name];if(typeof val=="string"){obj[name]=[val,_145];}else{if(lang.isArray(val)){val.push(_145);}else{obj[name]=_145;}}};var _146="file|submit|image|reset|button";var form={fieldToObject:function fieldToObject(_147){var ret=null;_147=dom.byId(_147);if(_147){var _148=_147.name,type=(_147.type||"").toLowerCase();if(_148&&type&&!_147.disabled){if(type=="radio"||type=="checkbox"){if(_147.checked){ret=_147.value;}}else{if(_147.multiple){ret=[];var _149=[_147.firstChild];while(_149.length){for(var node=_149.pop();node;node=node.nextSibling){if(node.nodeType==1&&node.tagName.toLowerCase()=="option"){if(node.selected){ret.push(node.value);}}else{if(node.nextSibling){_149.push(node.nextSibling);}if(node.firstChild){_149.push(node.firstChild);}break;}}}}else{ret=_147.value;}}}}return ret;},toObject:function formToObject(_14a){var ret={},_14b=dom.byId(_14a).elements;for(var i=0,l=_14b.length;i=0){var mid=_18c.replace(/\./g,"/")+"_"+loc;_18a++;_190(mid,function(_197){for(var p in _197){_15d[_150.toAbsMid(p)+"/"+loc]=_197[p];}--_18a;while(!_18a&&_18b.length){load.apply(null,_18b.shift());}});return true;}return false;});};_195();_151.forEach(dojo.config.extraLocale,_195);},_177=function(id,_198,load){if(_18a){_18b.push([id,_198,load]);}return _18a;},_184=function(){};}if(1){var _199={},_19a=new Function("__bundle","__checkForLegacyModules","__mid","__amdValue","var define = function(mid, factory){define.called = 1; __amdValue.result = factory || mid;},"+"\t require = function(){define.called = 1;};"+"try{"+"define.called = 0;"+"eval(__bundle);"+"if(define.called==1)"+"return __amdValue;"+"if((__checkForLegacyModules = __checkForLegacyModules(__mid)))"+"return __checkForLegacyModules;"+"}catch(e){}"+"try{"+"return eval('('+__bundle+')');"+"}catch(e){"+"return e;"+"}"),_19b=function(deps,_19c,_19d){var _19e=[];_151.forEach(deps,function(mid){var url=_19d.toUrl(mid+".js");function load(text){var _19f=_19a(text,_184,mid,_199);if(_19f===_199){_19e.push(_15d[url]=_199.result);}else{if(_19f instanceof Error){console.error("failed to evaluate i18n bundle; url="+url,_19f);_19f={};}_19e.push(_15d[url]=(/nls\/[^\/]+\/[^\/]+$/.test(url)?_19f:{root:_19f,_v1x:1}));}};if(_15d[url]){_19e.push(_15d[url]);}else{var _1a0=_19d.syncLoadNls(mid);if(_1a0){_19e.push(_1a0);}else{if(!xhr){try{_19d.getText(url,true,load);}catch(e){_19e.push(_15d[url]={});}}else{xhr.get({url:url,sync:true,load:load,error:function(){_19e.push(_15d[url]={});}});}}}});_19c&&_19c.apply(null,_19e);};_184=function(_1a1){for(var _1a2,_1a3=_1a1.split("/"),_1a4=dojo.global[_1a3[0]],i=1;_1a4&&i<_1a3.length-1;_1a4=_1a4[_1a3[i++]]){}if(_1a4){_1a2=_1a4[_1a3[i]];if(!_1a2){_1a2=_1a4[_1a3[i].replace(/-/g,"_")];}if(_1a2){_15d[_1a1]=_1a2;}}return _1a2;};_154.getLocalization=function(_1a5,_1a6,_1a7){var _1a8,_1a9=_15e(_1a5,_1a6,_1a7);load(_1a9,(!isXd(_1a9,_150)?function(deps,_1aa){_19b(deps,_1aa,_150);}:_150),function(_1ab){_1a8=_1ab;});return _1a8;};if(has("dojo-unit-tests")){_185.push(function(doh){doh.register("tests.i18n.unit",function(t){var _1ac;_1ac=_19a("{prop:1}",_184,"nonsense",_199);t.is({prop:1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("({prop:1})",_184,"nonsense",_199);t.is({prop:1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("{'prop-x':1}",_184,"nonsense",_199);t.is({"prop-x":1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("({'prop-x':1})",_184,"nonsense",_199);t.is({"prop-x":1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("define({'prop-x':1})",_184,"nonsense",_199);t.is(_199,_1ac);t.is({"prop-x":1},_199.result);_1ac=_19a("define('some/module', {'prop-x':1})",_184,"nonsense",_199);t.is(_199,_1ac);t.is({"prop-x":1},_199.result);_1ac=_19a("this is total nonsense and should throw an error",_184,"nonsense",_199);t.is(_1ac instanceof Error,true);});});}}return lang.mixin(_154,{dynamic:true,normalize:_16f,load:load,cache:_15d});});},"dojo/promise/tracer":function(){define(["../_base/lang","./Promise","../Evented"],function(lang,_1ad,_1ae){"use strict";var _1af=new _1ae;var emit=_1af.emit;_1af.emit=null;function _1b0(args){setTimeout(function(){emit.apply(_1af,args);},0);};_1ad.prototype.trace=function(){var args=lang._toArray(arguments);this.then(function(_1b1){_1b0(["resolved",_1b1].concat(args));},function(_1b2){_1b0(["rejected",_1b2].concat(args));},function(_1b3){_1b0(["progress",_1b3].concat(args));});return this;};_1ad.prototype.traceRejected=function(){var args=lang._toArray(arguments);this.otherwise(function(_1b4){_1b0(["rejected",_1b4].concat(args));});return this;};return _1af;});},"dojo/errors/RequestError":function(){define(["./create"],function(_1b5){return _1b5("RequestError",function(_1b6,_1b7){this.response=_1b7;});});},"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,_1b8,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,_1b9){if(arguments.length==2){return attr[typeof name=="string"?"get":"set"](node,name);}return attr.set(node,name,_1b9);};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,_1ba){dojo.deprecated("dojo.coords()","Use dojo.position() or dojo.marginBox().");node=dom.byId(node);var s=_1b8.getComputedStyle(node),mb=geom.getMarginBox(node,s);var abs=geom.position(node,_1ba);mb.x=abs.x;mb.y=abs.y;return mb;};dojo.getProp=prop.get;dojo.setProp=prop.set;dojo.prop=function(node,name,_1bb){if(arguments.length==2){return prop[typeof name=="string"?"get":"set"](node,name);}return prop.set(node,name,_1bb);};dojo.getStyle=_1b8.get;dojo.setStyle=_1b8.set;dojo.getComputedStyle=_1b8.getComputedStyle;dojo.__toPixelValue=dojo.toPixelValue=_1b8.toPixelValue;dojo.style=function(node,name,_1bc){switch(arguments.length){case 1:return _1b8.get(node);case 2:return _1b8[typeof name=="string"?"get":"set"](node,name);}return _1b8.set(node,name,_1bc);};return dojo;});},"dojo/_base/kernel":function(){define(["../has","./config","require","module"],function(has,_1bd,_1be,_1bf){var i,p,_1c0={},_1c1={},dojo={config:_1bd,global:this,dijit:_1c0,dojox:_1c1};var _1c2={dojo:["dojo",dojo],dijit:["dijit",_1c0],dojox:["dojox",_1c1]},_1c3=(_1be.map&&_1be.map[_1bf.id.match(/[^\/]+/)[0]]),item;for(p in _1c3){if(_1c2[p]){_1c2[p][0]=_1c3[p];}else{_1c2[p]=[_1c3[p],{}];}}for(p in _1c2){item=_1c2[p];item[1]._scopeName=item[0];if(!_1bd.noGlobals){this[item[0]]=item[1];}}dojo.scopeMap=_1c2;dojo.baseUrl=dojo.config.baseUrl=_1be.baseUrl;dojo.isAsync=!1||_1be.async;dojo.locale=_1bd.locale;var rev="$Rev: 29458 $".match(/\d+/);dojo.version={major:1,minor:8,patch:0,flag:"",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 = function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}"))(dojo);if(0){dojo.exit=function(_1c4){quit(_1c4);};}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.apply({},arguments);a.unshift(tcn+":");console["log"](a.join(" "));}:function(){};console[tcn]._fake=true;})();}}}has.add("dojo-debug-messages",!!_1bd.isDebug);dojo.deprecated=dojo.experimental=function(){};if(has("dojo-debug-messages")){dojo.deprecated=function(_1c5,_1c6,_1c7){var _1c8="DEPRECATED: "+_1c5;if(_1c6){_1c8+=" "+_1c6;}if(_1c7){_1c8+=" -- will be removed in version: "+_1c7;}console.warn(_1c8);};dojo.experimental=function(_1c9,_1ca){var _1cb="EXPERIMENTAL: "+_1c9+" -- APIs subject to change without notice.";if(_1ca){_1cb+=" "+_1ca;}console.warn(_1cb);};}1||has.add("dojo-modulePaths",1);if(1){if(_1bd.modulePaths){dojo.deprecated("dojo.modulePaths","use paths configuration");var _1cc={};for(p in _1bd.modulePaths){_1cc[p.replace(/\./g,"/")]=_1bd.modulePaths[p];}_1be({paths:_1cc});}}1||has.add("dojo-moduleUrl",1);if(1){dojo.moduleUrl=function(_1cd,url){dojo.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var _1ce=null;if(_1cd){_1ce=_1be.toUrl(_1cd.replace(/\./g,"/")+(url?("/"+url):"")+"/*.*").replace(/\/\*\.\*/,"")+(url?"":"/");}return _1ce;};}dojo._hasResource={};return dojo;});},"dojo/io-query":function(){define(["./_base/lang"],function(lang){var _1cf={};return {objectToQuery:function objectToQuery(map){var enc=encodeURIComponent,_1d0=[];for(var name in map){var _1d1=map[name];if(_1d1!=_1cf[name]){var _1d2=enc(name)+"=";if(lang.isArray(_1d1)){for(var i=0,l=_1d1.length;i=0;i--){var node=(_20b?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_20d){_20d=_20c.ownerDocument.createElement("div");}_20d.appendChild(node);dojo.parser.parse(_20d);node=_20d.firstChild;while(_20d.firstChild){_20d.removeChild(_20d.firstChild);}}if(i==_20e-1){_1fb.place(node,_20c,_20a);}else{_20c.parentNode.insertBefore(node,_20c);}_20c=node;}},position:aam(_1fc.position),attr:awc(_202(_1fd),_1ff),style:awc(_202(_1fe),_1ff),addClass:aafe(_1fa.add),removeClass:aafe(_1fa.remove),toggleClass:aafe(_1fa.toggle),replaceClass:aafe(_1fa.replace),empty:aafe(_1fb.empty),removeAttr:aafe(_1fd.remove),marginBox:aam(_1fc.getMarginBox),place:function(_20f,_210){var item=_1f8(_20f)[0];return this.forEach(function(node){_1fb.place(node,item,_210);});},orphan:function(_211){return (_211?_1f8._filterResult(this,_211):this).forEach(_200);},adopt:function(_212,_213){return _1f8(_212).place(this[0],_213)._stash(this);},query:function(_214){if(!_214){return this;}var ret=new _201;this.map(function(node){_1f8(_214,node).forEach(function(_215){if(_215!==undefined){ret.push(_215);}});});return ret._stash(this);},filter:function(_216){var a=arguments,_217=this,_218=0;if(typeof _216=="string"){_217=_1f8._filterResult(this,a[0]);if(a.length==1){return _217._stash(this);}_218=1;}return this._wrap(_1f9.filter(_217,a[_218],a[_218+1]),this);},addContent:function(_219,_21a){_219=this._normalize(_219,this[0]);for(var i=0,node;(node=this[i]);i++){this._place(_219,node,_21a,i>0);}return this;}});return _201;});},"dojo/query":function(){define(["./_base/kernel","./has","./dom","./on","./_base/array","./_base/lang","./selector/_loader","./selector/_loader!default"],function(dojo,has,dom,on,_21b,lang,_21c,_21d){"use strict";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,_21e=_21b.forEach;var tnl=function(a,_21f,_220){var _221=new (_220||this._NodeListCtor||nl)(a);return _21f?_221._stash(_21f):_221;};var _222=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 _223=function(f,o){return function(){this.forEach(_222(f,arguments,o));return this;};};var _224=function(f,o){return function(){return this.map(_222(f,arguments,o));};};var _225=function(f,o){return function(){return this.filter(_222(f,arguments,o));};};var _226=function(f,g,o){return function(){var a=arguments,body=_222(f,a,o);if(g.call(o||dojo.global,a)){return this.map(body);}this.forEach(body);return this;};};var _227=function(_228){var _229=this instanceof nl&&has("array-extensible");if(typeof _228=="number"){_228=Array(_228);}var _22a=(_228&&"length" in _228)?_228:arguments;if(_229||!_22a.sort){var _22b=_229?this:[],l=_22b.length=_22a.length;for(var i=0;i0;};_23c.filter=_23a.filter||function(_240,_241,root){return _23c(_241,root).filter(function(node){return _21b.indexOf(_240,node)>-1;});};if(typeof _23a!="function"){var _242=_23a.search;_23a=function(_243,root){return _242(root||document,_243);};}return _23c;};var _236=_239(_21d,_227);dojo.query=_239(_21d,function(_244){return _227(_244);});_236.load=function(id,_245,_246){_21c.load(id,_245,function(_247){_246(_239(_247,_227));});};dojo._filterQueryResult=_236._filterResult=function(_248,_249,root){return new _227(_236.filter(_248,_249,root));};dojo.NodeList=_236.NodeList=_227;return _236;});},"dojo/has":function(){define(["require","module"],function(_24a,_24b){var has=_24a.has||function(){};if(!1){var _24c=typeof window!="undefined"&&typeof location!="undefined"&&typeof document!="undefined"&&window.location==location&&window.document==document,_24d=this,doc=_24c&&document,_24e=doc&&doc.createElement("DiV"),_24f=(_24b.config&&_24b.config())||{};has=function(name){return typeof _24f[name]=="function"?(_24f[name]=_24f[name](_24d,doc,_24e)):_24f[name];};has.cache=_24f;has.add=function(name,test,now,_250){(typeof _24f[name]=="undefined"||_250)&&(_24f[name]=test);return now&&has(name);};1||has.add("host-browser",_24c);1||has.add("dom",_24c);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);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(_251){_251.innerHTML="";return _251;};has.normalize=function(id,_252){var _253=id.match(/[\?:]|[^:\?]*/g),i=0,get=function(skip){var term=_253[i++];if(term==":"){return 0;}else{if(_253[i++]=="?"){if(!skip&&has(term)){return get();}else{get(true);return get(skip);}}return term||0;}};id=get();return id&&_252(id);};has.load=function(id,_254,_255){if(id){_254([id],_255);}else{_255();}};return has;});},"dojo/_base/loader":function(){define(["./kernel","../has","require","module","./json","./lang","./array"],function(dojo,has,_256,_257,json,lang,_258){if(!1){console.error("cannot load the Dojo v1.x loader with a foreign loader");return 0;}1||has.add("dojo-fast-sync-require",1);var _259=function(id){return {src:_257.id,id:id};},_25a=function(name){return name.replace(/\./g,"/");},_25b=/\/\/>>built/,_25c=[],_25d=[],_25e=function(mid,_25f,_260){_25c.push(_260);_258.forEach(mid.split(","),function(mid){var _261=_262(mid,_25f.module);_25d.push(_261);_263(_261);});_264();},_264=(1?function(){var _265,mid;for(mid in _266){_265=_266[mid];if(_265.noReqPluginCheck===undefined){_265.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(!_265.executed&&!_265.noReqPluginCheck&&_265.injected==_267){return;}}_268(function(){var _269=_25c;_25c=[];_258.forEach(_269,function(cb){cb(1);});});}:(function(){var _26a,_26b=function(m){_26a[m.mid]=1;for(var t,_26c,deps=m.deps||[],i=0;i=0;--j){_2ce=lin[j].prototype;if(!_2ce.hasOwnProperty("declaredClass")){_2ce.declaredClass="uniqName_"+(_2c5++);}name=_2ce.declaredClass;if(!_2cc.hasOwnProperty(name)){_2cc[name]={count:0,refs:[],cls:lin[j]};++_2cd;}rec=_2cc[name];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_2cb[0].refs.push(top);}while(_2cb.length){top=_2cb.pop();_2ca.push(top.cls);--_2cd;while(refs=top.refs,refs.length==1){top=refs[0];if(!top||--top.count){top=0;break;}_2ca.push(top.cls);--_2cd;}if(top){for(i=0,l=refs.length;i=0;--i){f=_2e8[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_2ea?_2ea[i]:a);}}f=this.postscript;if(f){f.apply(this,args);}};};function _2ec(ctor,_2ed){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _2eb(a);}if(_2ed){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 _2ee(_2ef){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _2eb(a);}for(;f=_2ef[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 _2f0(name,_2f1,_2f2){return function(){var b,m,f,i=0,step=1;if(_2f2){i=_2f1.length-1;step=-1;}for(;b=_2f1[i];i+=step){m=b._meta;f=(m?m.hidden:b.prototype)[name];if(f){f.apply(this,arguments);}}};};function _2f3(ctor){xtor.prototype=ctor.prototype;var t=new xtor;xtor.prototype=null;return t;};function _2eb(args){var ctor=args.callee,t=_2f3(ctor);ctor.apply(t,args);return t;};function _2e4(_2f4,_2f5,_2f6){if(typeof _2f4!="string"){_2f6=_2f5;_2f5=_2f4;_2f4="";}_2f6=_2f6||{};var _2f7,i,t,ctor,name,_2f8,_2f9,_2fa=1,_2fb=_2f5;if(opts.call(_2f5)=="[object Array]"){_2f8=_2c7(_2f5,_2f4);t=_2f8[0];_2fa=_2f8.length-t;_2f5=_2f8[_2fa];}else{_2f8=[0];if(_2f5){if(opts.call(_2f5)=="[object Function]"){t=_2f5._meta;_2f8=_2f8.concat(t?t.bases:_2f5);}else{err("base class is not a callable constructor.",_2f4);}}else{if(_2f5!==null){err("unknown base class. Did you use dojo.require to pull it in?",_2f4);}}}if(_2f5){for(i=_2fa-1;;--i){_2f7=_2f3(_2f5);if(!i){break;}t=_2f8[i];(t._meta?_2da:mix)(_2f7,t.prototype);ctor=new Function;ctor.superclass=_2f5;ctor.prototype=_2f7;_2f5=_2f7.constructor=ctor;}}else{_2f7={};}_2e4.safeMixin(_2f7,_2f6);t=_2f6.constructor;if(t!==op.constructor){t.nom=_2c6;_2f7.constructor=t;}for(i=_2fa-1;i;--i){t=_2f8[i]._meta;if(t&&t.chains){_2f9=mix(_2f9||{},t.chains);}}if(_2f7["-chains-"]){_2f9=mix(_2f9||{},_2f7["-chains-"]);}t=!_2f9||!_2f9.hasOwnProperty(_2c6);_2f8[0]=ctor=(_2f9&&_2f9.constructor==="manual")?_2ee(_2f8):(_2f8.length==1?_2ec(_2f6.constructor,t):_2e7(_2f8,t));ctor._meta={bases:_2f8,hidden:_2f6,chains:_2f9,parents:_2fb,ctor:_2f6.constructor};ctor.superclass=_2f5&&_2f5.prototype;ctor.extend=_2e2;ctor.createSubclass=_2e5;ctor.prototype=_2f7;_2f7.constructor=ctor;_2f7.getInherited=_2d5;_2f7.isInstanceOf=_2d8;_2f7.inherited=_2d7;_2f7.__inherited=_2cf;if(_2f4){_2f7.declaredClass=_2f4;lang.setObject(_2f4,ctor);}if(_2f9){for(name in _2f9){if(_2f7[name]&&typeof _2f9[name]=="string"&&name!=_2c6){t=_2f7[name]=_2f0(name,_2f8,_2f9[name]==="after");t.nom=name;}}}return ctor;};dojo.safeMixin=_2e4.safeMixin=_2de;dojo.declare=_2e4;return _2e4;});},"dojo/dom":function(){define(["./sniff","./_base/lang","./_base/window"],function(has,lang,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 _2fc=doc||win.doc,te=id&&_2fc.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_2fc.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,_2fd){try{node=dom.byId(node);_2fd=dom.byId(_2fd);while(node){if(node==_2fd){return true;}node=node.parentNode;}}catch(e){}return false;};dom.setSelectable=function(node,_2fe){node=dom.byId(node);if(has("mozilla")){node.style.MozUserSelect=_2fe?"":"none";}else{if(has("khtml")||has("webkit")){node.style.KhtmlUserSelect=_2fe?"auto":"none";}else{if(has("ie")){var v=(node.unselectable=_2fe?"":"on"),cs=node.getElementsByTagName("*"),i=0,l=cs.length;for(;i=0){_306+=" * ";}else{_306+=" ";}var ts=function(s,e){return trim(_306.slice(s,e));};var _307=[];var _308=-1,_309=-1,_30a=-1,_30b=-1,_30c=-1,inId=-1,_30d=-1,_30e,lc="",cc="",_30f;var x=0,ql=_306.length,_310=null,_311=null;var _312=function(){if(_30d>=0){var tv=(_30d==x)?null:ts(_30d,x);_310[(_302.indexOf(tv)<0)?"tag":"oper"]=tv;_30d=-1;}};var _313=function(){if(inId>=0){_310.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _314=function(){if(_30c>=0){_310.classes.push(ts(_30c+1,x).replace(/\\/g,""));_30c=-1;}};var _315=function(){_313();_312();_314();};var _316=function(){_315();if(_30b>=0){_310.pseudos.push({name:ts(_30b+1,x)});}_310.loops=(_310.pseudos.length||_310.attrs.length||_310.classes.length);_310.oquery=_310.query=ts(_30f,x);_310.otag=_310.tag=(_310["oper"])?null:(_310.tag||"*");if(_310.tag){_310.tag=_310.tag.toUpperCase();}if(_307.length&&(_307[_307.length-1].oper)){_310.infixOper=_307.pop();_310.query=_310.infixOper.query+" "+_310.query;}_307.push(_310);_310=null;};for(;lc=cc,cc=_306.charAt(x),x=0){if(cc=="]"){if(!_311.attr){_311.attr=ts(_308+1,x);}else{_311.matchFor=ts((_30a||_308+1),x);}var cmf=_311.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_311.matchFor=cmf.slice(1,-1);}}if(_311.matchFor){_311.matchFor=_311.matchFor.replace(/\\/g,"");}_310.attrs.push(_311);_311=null;_308=_30a=-1;}else{if(cc=="="){var _317=("|~^$*".indexOf(lc)>=0)?lc:"";_311.type=_317+cc;_311.attr=ts(_308+1,x-_317.length);_30a=x+1;}}}else{if(_309>=0){if(cc==")"){if(_30b>=0){_311.value=ts(_309+1,x);}_30b=_309=-1;}}else{if(cc=="#"){_315();inId=x+1;}else{if(cc=="."){_315();_30c=x;}else{if(cc==":"){_315();_30b=x;}else{if(cc=="["){_315();_308=x;_311={};}else{if(cc=="("){if(_30b>=0){_311={name:ts(_30b+1,x),value:null};_310.pseudos.push(_311);}_309=x;}else{if((cc==" ")&&(lc!=cc)){_316();}}}}}}}}}return _307;};var _318=function(_319,_31a){if(!_319){return _31a;}if(!_31a){return _319;}return function(){return _319.apply(window,arguments)&&_31a.apply(window,arguments);};};var _31b=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _31c=function(n){return (1==n.nodeType);};var _31d="";var _31e=function(elem,attr){if(!elem){return _31d;}if(attr=="class"){return elem.className||_31d;}if(attr=="for"){return elem.htmlFor||_31d;}if(attr=="style"){return elem.style.cssText||_31d;}return (_303?elem.getAttribute(attr):elem.getAttribute(attr,2))||_31d;};var _31f={"*=":function(attr,_320){return function(elem){return (_31e(elem,attr).indexOf(_320)>=0);};},"^=":function(attr,_321){return function(elem){return (_31e(elem,attr).indexOf(_321)==0);};},"$=":function(attr,_322){return function(elem){var ea=" "+_31e(elem,attr);var _323=ea.lastIndexOf(_322);return _323>-1&&(_323==(ea.length-_322.length));};},"~=":function(attr,_324){var tval=" "+_324+" ";return function(elem){var ea=" "+_31e(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_325){var _326=_325+"-";return function(elem){var ea=_31e(elem,attr);return ((ea==_325)||(ea.indexOf(_326)==0));};},"=":function(attr,_327){return function(elem){return (_31e(elem,attr)==_327);};}};var _328=(typeof _300().firstChild.nextElementSibling=="undefined");var _329=!_328?"nextElementSibling":"nextSibling";var _32a=!_328?"previousElementSibling":"previousSibling";var _32b=(_328?_31c:_304);var _32c=function(node){while(node=node[_32a]){if(_32b(node)){return false;}}return true;};var _32d=function(node){while(node=node[_329]){if(_32b(node)){return false;}}return true;};var _32e=function(node){var root=node.parentNode;root=root.nodeType!=7?root:root.nextSibling;var i=0,tret=root.children||root.childNodes,ci=(node["_i"]||node.getAttribute("_i")||-1),cl=(root["_l"]||(typeof root.getAttribute!=="undefined"?root.getAttribute("_l"):-1));if(!tret){return -1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return ci;}if(has("ie")&&typeof root.setAttribute!=="undefined"){root.setAttribute("_l",l);}else{root["_l"]=l;}ci=-1;for(var te=root["firstElementChild"]||root["firstChild"];te;te=te[_329]){if(_32b(te)){if(has("ie")){te.setAttribute("_i",++i);}else{te["_i"]=++i;}if(node===te){ci=i;}}}return ci;};var _32f=function(elem){return !((_32e(elem))%2);};var _330=function(elem){return ((_32e(elem))%2);};var _331={"checked":function(name,_332){return function(elem){return !!("checked" in elem?elem.checked:elem.selected);};},"disabled":function(name,_333){return function(elem){return elem.disabled;};},"enabled":function(name,_334){return function(elem){return !elem.disabled;};},"first-child":function(){return _32c;},"last-child":function(){return _32d;},"only-child":function(name,_335){return function(node){return _32c(node)&&_32d(node);};},"empty":function(name,_336){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(name,_337){var cz=_337.charAt(0);if(cz=="\""||cz=="'"){_337=_337.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_337)>=0);};},"not":function(name,_338){var p=_305(_338)[0];var _339={el:1};if(p.tag!="*"){_339.tag=1;}if(!p.classes.length){_339.classes=1;}var ntf=_33a(p,_339);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_33b){var pi=parseInt;if(_33b=="odd"){return _330;}else{if(_33b=="even"){return _32f;}}if(_33b.indexOf("n")!=-1){var _33c=_33b.split("n",2);var pred=_33c[0]?((_33c[0]=="-")?-1:pi(_33c[0])):1;var idx=_33c[1]?pi(_33c[1]):0;var lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return function(elem){var i=_32e(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_33b=idx;}}var _33d=pi(_33b);return function(elem){return (_32e(elem)==_33d);};}};var _33e=(has("ie")&&(has("ie")<9||has("quirks")))?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_303?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _33a=function(_33f,_340){if(!_33f){return _304;}_340=_340||{};var ff=null;if(!("el" in _340)){ff=_318(ff,_31c);}if(!("tag" in _340)){if(_33f.tag!="*"){ff=_318(ff,function(elem){return (elem&&((_303?elem.tagName:elem.tagName.toUpperCase())==_33f.getTag()));});}}if(!("classes" in _340)){each(_33f.classes,function(_341,idx,arr){var re=new RegExp("(?:^|\\s)"+_341+"(?:\\s|$)");ff=_318(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _340)){each(_33f.pseudos,function(_342){var pn=_342.name;if(_331[pn]){ff=_318(ff,_331[pn](pn,_342.value));}});}if(!("attrs" in _340)){each(_33f.attrs,function(attr){var _343;var a=attr.attr;if(attr.type&&_31f[attr.type]){_343=_31f[attr.type](a,attr.matchFor);}else{if(a.length){_343=_33e(a);}}if(_343){ff=_318(ff,_343);}});}if(!("id" in _340)){if(_33f.id){ff=_318(ff,function(elem){return (!!elem&&(elem.id==_33f.id));});}}if(!ff){if(!("default" in _340)){ff=_304;}}return ff;};var _344=function(_345){return function(node,ret,bag){while(node=node[_329]){if(_328&&(!_31c(node))){continue;}if((!bag||_346(node,bag))&&_345(node)){ret.push(node);}break;}return ret;};};var _347=function(_348){return function(root,ret,bag){var te=root[_329];while(te){if(_32b(te)){if(bag&&!_346(te,bag)){break;}if(_348(te)){ret.push(te);}}te=te[_329];}return ret;};};var _349=function(_34a){_34a=_34a||_304;return function(root,ret,bag){var te,x=0,tret=root.children||root.childNodes;while(te=tret[x++]){if(_32b(te)&&(!bag||_346(te,bag))&&(_34a(te,x))){ret.push(te);}}return ret;};};var _34b=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _34c={};var _34d=function(_34e){var _34f=_34c[_34e.query];if(_34f){return _34f;}var io=_34e.infixOper;var oper=(io?io.oper:"");var _350=_33a(_34e,{el:1});var qt=_34e.tag;var _351=("*"==qt);var ecs=_300()["getElementsByClassName"];if(!oper){if(_34e.id){_350=(!_34e.loops&&_351)?_304:_33a(_34e,{el:1,id:1});_34f=function(root,arr){var te=dom.byId(_34e.id,(root.ownerDocument||root));if(!te||!_350(te)){return;}if(9==root.nodeType){return _31b(te,arr);}else{if(_34b(te,root)){return _31b(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_34e.classes.length&&!_301){_350=_33a(_34e,{el:1,classes:1,id:1});var _352=_34e.classes.join(" ");_34f=function(root,arr,bag){var ret=_31b(0,arr),te,x=0;var tret=root.getElementsByClassName(_352);while((te=tret[x++])){if(_350(te,root)&&_346(te,bag)){ret.push(te);}}return ret;};}else{if(!_351&&!_34e.loops){_34f=function(root,arr,bag){var ret=_31b(0,arr),te,x=0;var tag=_34e.getTag(),tret=tag?root.getElementsByTagName(tag):[];while((te=tret[x++])){if(_346(te,bag)){ret.push(te);}}return ret;};}else{_350=_33a(_34e,{el:1,tag:1,id:1});_34f=function(root,arr,bag){var ret=_31b(0,arr),te,x=0;var tag=_34e.getTag(),tret=tag?root.getElementsByTagName(tag):[];while((te=tret[x++])){if(_350(te,root)&&_346(te,bag)){ret.push(te);}}return ret;};}}}}else{var _353={el:1};if(_351){_353.tag=1;}_350=_33a(_34e,_353);if("+"==oper){_34f=_344(_350);}else{if("~"==oper){_34f=_347(_350);}else{if(">"==oper){_34f=_349(_350);}}}}return _34c[_34e.query]=_34f;};var _354=function(root,_355){var _356=_31b(root),qp,x,te,qpl=_355.length,bag,ret;for(var i=0;i0){bag={};ret.nozip=true;}var gef=_34d(qp);for(var j=0;(te=_356[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_356=ret;}return ret;};var _357={},_358={};var _359=function(_35a){var _35b=_305(trim(_35a));if(_35b.length==1){var tef=_34d(_35b[0]);return function(root){var r=tef(root,[]);if(r){r.nozip=true;}return r;};}return function(root){return _354(root,_35b);};};var _35c=has("ie")?"commentStrip":"nozip";var qsa="querySelectorAll";var _35d=!!_300()[qsa];var _35e=/\\[>~+]|n\+\d|([^ \\])?([>~+])([^ =])?/g;var _35f=function(_360,pre,ch,post){return ch?(pre?pre+" ":"")+ch+(post?" "+post:""):_360;};var _361=/([^[]*)([^\]]*])?/g;var _362=function(_363,_364,att){return _364.replace(_35e,_35f)+(att||"");};var _365=function(_366,_367){_366=_366.replace(_361,_362);if(_35d){var _368=_358[_366];if(_368&&!_367){return _368;}}var _369=_357[_366];if(_369){return _369;}var qcz=_366.charAt(0);var _36a=(-1==_366.indexOf(" "));if((_366.indexOf("#")>=0)&&(_36a)){_367=true;}var _36b=(_35d&&(!_367)&&(_302.indexOf(qcz)==-1)&&(!has("ie")||(_366.indexOf(":")==-1))&&(!(_301&&(_366.indexOf(".")>=0)))&&(_366.indexOf(":contains")==-1)&&(_366.indexOf(":checked")==-1)&&(_366.indexOf("|=")==-1));if(_36b){var tq=(_302.indexOf(_366.charAt(_366.length-1))>=0)?(_366+" *"):_366;return _358[_366]=function(root){try{if(!((9==root.nodeType)||_36a)){throw "";}var r=root[qsa](tq);r[_35c]=true;return r;}catch(e){return _365(_366,true)(root);}};}else{var _36c=_366.match(/([^\s,](?:"(?:\\.|[^"])+"|'(?:\\.|[^'])+'|[^,])*)/g);return _357[_366]=((_36c.length<2)?_359(_366):function(root){var _36d=0,ret=[],tp;while((tp=_36c[_36d++])){ret=ret.concat(_359(tp)(root));}return ret;});}};var _36e=0;var _36f=has("ie")?function(node){if(_303){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_36e)||_36e);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_36e));};var _346=function(node,bag){if(!bag){return 1;}var id=_36f(node);if(!bag[id]){return bag[id]=1;}return 0;};var _370="_zipIdx";var _371=function(arr){if(arr&&arr.nozip){return arr;}var ret=[];if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_36e++;var x,te;if(has("ie")&&_303){var _372=_36e+"";arr[0].setAttribute(_370,_372);for(x=1;te=arr[x];x++){if(arr[x].getAttribute(_370)!=_372){ret.push(te);}te.setAttribute(_370,_372);}}else{if(has("ie")&&arr.commentStrip){try{for(x=1;te=arr[x];x++){if(_31c(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_370]=_36e;}for(x=1;te=arr[x];x++){if(arr[x][_370]!=_36e){ret.push(te);}te[_370]=_36e;}}}return ret;};var _373=function(_374,root){root=root||_300();var od=root.ownerDocument||root;_303=(od.createElement("div").tagName==="div");var r=_365(_374)(root);if(r&&r.nozip){return r;}return _371(r);};_373.filter=function(_375,_376,root){var _377=[],_378=_305(_376),_379=(_378.length==1&&!/[^\w#\.]/.test(_376))?_33a(_378[0]):function(node){return _2ff.indexOf(_373(_376,dom.byId(root)),node)!=-1;};for(var x=0,te;te=_375[x];x++){if(_379(te)){_377.push(te);}}return _377;};return _373;});},"dojo/errors/RequestTimeoutError":function(){define("dojo/errors/RequestTimeoutError",["./create","./RequestError"],function(_37a,_37b){return _37a("RequestTimeoutError",null,_37b,{dojoType:"timeout"});});},"dojo/dom-geometry":function(){define(["./sniff","./_base/window","./dom","./dom-style"],function(has,win,dom,_37c){var geom={};geom.boxModel="content-box";if(has("ie")){geom.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}geom.getPadExtents=function getPadExtents(node,_37d){node=dom.byId(node);var s=_37d||_37c.getComputedStyle(node),px=_37c.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,_37e){node=dom.byId(node);var px=_37c.toPixelValue,s=_37e||_37c.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,_37f){node=dom.byId(node);var s=_37f||_37c.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,_380){node=dom.byId(node);var s=_380||_37c.getComputedStyle(node),px=_37c.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,_381){node=dom.byId(node);var s=_381||_37c.getComputedStyle(node),me=geom.getMarginExtents(node,s),l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode,px=_37c.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=_37c.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=_37c.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,_382){node=dom.byId(node);var s=_382||_37c.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 _383(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 _384(node){return node.tagName.toLowerCase()=="button"||node.tagName.toLowerCase()=="input"&&(node.getAttribute("type")||"").toLowerCase()=="button";};function _385(node){return geom.boxModel=="border-box"||node.tagName.toLowerCase()=="table"||_384(node);};geom.setContentSize=function setContentSize(node,box,_386){node=dom.byId(node);var w=box.w,h=box.h;if(_385(node)){var pb=geom.getPadBorderExtents(node,_386);if(w>=0){w+=pb.w;}if(h>=0){h+=pb.h;}}_383(node,NaN,NaN,w,h);};var _387={l:0,t:0,w:0,h:0};geom.setMarginBox=function setMarginBox(node,box,_388){node=dom.byId(node);var s=_388||_37c.getComputedStyle(node),w=box.w,h=box.h,pb=_385(node)?_387:geom.getPadBorderExtents(node,s),mb=geom.getMarginExtents(node,s);if(has("webkit")){if(_384(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);}_383(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(_389,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){_389+=de.clientLeft;}return (ie<8||qk)?(_389+de.clientWidth-de.scrollWidth):-_389;}return _389;};geom.position=function(node,_38a){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")){var _38b=geom.getIeDocumentElementOffset(node.ownerDocument);ret.x-=_38b.x+(has("quirks")?db.clientLeft+db.offsetLeft:0);ret.y-=_38b.y+(has("quirks")?db.clientTop+db.offsetTop:0);}if(_38a){var _38c=geom.docScroll(node.ownerDocument);ret.x+=_38c.x;ret.y+=_38c.y;}return ret;};geom.getMarginSize=function getMarginSize(node,_38d){node=dom.byId(node);var me=geom.getMarginExtents(node,_38d||_37c.getComputedStyle(node));var size=node.getBoundingClientRect();return {w:(size.right-size.left)+me.w,h:(size.bottom-size.top)+me.h};};geom.normalizeEvent=function(_38e){if(!("layerX" in _38e)){_38e.layerX=_38e.offsetX;_38e.layerY=_38e.offsetY;}if(!has("dom-addeventlistener")){var se=_38e.target;var doc=(se&&se.ownerDocument)||document;var _38f=has("quirks")?doc.body:doc.documentElement;var _390=geom.getIeDocumentElementOffset(doc);_38e.pageX=_38e.clientX+geom.fixIeBiDiScrollLeft(_38f.scrollLeft||0,doc)-_390.x;_38e.pageY=_38e.clientY+(_38f.scrollTop||0)-_390.y;}};return geom;});},"dojo/dom-style":function(){define("dojo/dom-style",["./sniff","./dom"],function(has,dom){var _391,_392={};if(has("webkit")){_391=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"))){_391=function(node){return node.nodeType==1&&node.currentStyle?node.currentStyle:{};};}else{_391=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}_392.getComputedStyle=_391;var _393;if(!has("ie")){_393=function(_394,_395){return parseFloat(_395)||0;};}else{_393=function(_396,_397){if(!_397){return 0;}if(_397=="medium"){return 4;}if(_397.slice&&_397.slice(-2)=="px"){return parseFloat(_397);}var s=_396.style,rs=_396.runtimeStyle,cs=_396.currentStyle,_398=s.left,_399=rs.left;rs.left=cs.left;try{s.left=_397;_397=s.pixelLeft;}catch(e){_397=0;}s.left=_398;rs.left=_399;return _397;};}_392.toPixelValue=_393;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};var _39a=has("ie")<9||(has("ie")&&has("quirks"))?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return _391(node).opacity;};var _39b=has("ie")<9||(has("ie")&&has("quirks"))?function(node,_39c){var ov=_39c*100,_39d=_39c==1;node.style.zoom=_39d?"":1;if(!af(node)){if(_39d){return _39c;}node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_39d;if(node.tagName.toLowerCase()=="tr"){for(var td=node.firstChild;td;td=td.nextSibling){if(td.tagName.toLowerCase()=="td"){_39b(td,_39c);}}}return _39c;}:function(node,_39e){return node.style.opacity=_39e;};var _39f={left:true,top:true};var _3a0=/margin|padding|width|height|max|min|offset/;function _3a1(node,type,_3a2){type=type.toLowerCase();if(has("ie")){if(_3a2=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_3a2){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _39f)){_39f[type]=_3a0.test(type);}return _39f[type]?_393(node,_3a2):_3a2;};var _3a3=has("ie")?"styleFloat":"cssFloat",_3a4={"cssFloat":_3a3,"styleFloat":_3a3,"float":_3a3};_392.get=function getStyle(node,name){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");if(l==2&&op){return _39a(n);}name=_3a4[name]||name;var s=_392.getComputedStyle(n);return (l==1)?s:_3a1(n,name,s[name]||n.style[name]);};_392.set=function setStyle(node,name,_3a5){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");name=_3a4[name]||name;if(l==3){return op?_39b(n,_3a5):n.style[name]=_3a5;}for(var x in name){_392.set(node,x,name[x]);}return _392.getComputedStyle(n);};return _392;});},"dojo/dom-prop":function(){define(["exports","./_base/kernel","./sniff","./_base/lang","./dom","./dom-style","./dom-construct","./_base/connect"],function(_3a6,dojo,has,lang,dom,_3a7,ctr,conn){var _3a8={},_3a9=0,_3aa=dojo._scopeName+"attrid";_3a6.names={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"};_3a6.get=function getProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_3ab=_3a6.names[lc]||name;return node[_3ab];};_3a6.set=function setProp(node,name,_3ac){node=dom.byId(node);var l=arguments.length;if(l==2&&typeof name!="string"){for(var x in name){_3a6.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_3ad=_3a6.names[lc]||name;if(_3ad=="style"&&typeof _3ac!="string"){_3a7.set(node,_3ac);return node;}if(_3ad=="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(_3ac,node.ownerDocument));}else{node[_3ad]=_3ac;}return node;}if(lang.isFunction(_3ac)){var _3ae=node[_3aa];if(!_3ae){_3ae=_3a9++;node[_3aa]=_3ae;}if(!_3a8[_3ae]){_3a8[_3ae]={};}var h=_3a8[_3ae][_3ad];if(h){conn.disconnect(h);}else{try{delete node[_3ad];}catch(e){}}if(_3ac){_3a8[_3ae][_3ad]=conn.connect(node,_3ad,_3ac);}else{node[_3ad]=null;}return node;}node[_3ad]=_3ac;return node;};});},"dojo/when":function(){define(["./Deferred","./promise/Promise"],function(_3af,_3b0){"use strict";return function when(_3b1,_3b2,_3b3,_3b4){var _3b5=_3b1&&typeof _3b1.then==="function";var _3b6=_3b5&&_3b1 instanceof _3b0;if(!_3b5){if(_3b2){return _3b2(_3b1);}else{return new _3af().resolve(_3b1);}}else{if(!_3b6){var _3b7=new _3af(_3b1.cancel);_3b1.then(_3b7.resolve,_3b7.reject,_3b7.progress);_3b1=_3b7.promise;}}if(_3b2||_3b3||_3b4){return _3b1.then(_3b2,_3b3,_3b4);}return _3b1;};});},"dojo/dom-attr":function(){define(["exports","./sniff","./_base/lang","./dom","./dom-style","./dom-prop"],function(_3b8,has,lang,dom,_3b9,prop){var _3ba={innerHTML:1,className:1,htmlFor:has("ie"),value:1},_3bb={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"};function _3bc(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified;};_3b8.has=function hasAttr(node,name){var lc=name.toLowerCase();return _3ba[prop.names[lc]||name]||_3bc(dom.byId(node),_3bb[lc]||name);};_3b8.get=function getAttr(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_3bd=prop.names[lc]||name,_3be=_3ba[_3bd],_3bf=node[_3bd];if(_3be&&typeof _3bf!="undefined"){return _3bf;}if(_3bd!="href"&&(typeof _3bf=="boolean"||lang.isFunction(_3bf))){return _3bf;}var _3c0=_3bb[lc]||name;return _3bc(node,_3c0)?node.getAttribute(_3c0):null;};_3b8.set=function setAttr(node,name,_3c1){node=dom.byId(node);if(arguments.length==2){for(var x in name){_3b8.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_3c2=prop.names[lc]||name,_3c3=_3ba[_3c2];if(_3c2=="style"&&typeof _3c1!="string"){_3b9.set(node,_3c1);return node;}if(_3c3||typeof _3c1=="boolean"||lang.isFunction(_3c1)){return prop.set(node,name,_3c1);}node.setAttribute(_3bb[lc]||name,_3c1);return node;};_3b8.remove=function removeAttr(node,name){dom.byId(node).removeAttribute(_3bb[name.toLowerCase()]||name);};_3b8.getNodeProp=function getNodeProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_3c4=prop.names[lc]||name;if((_3c4 in node)&&_3c4!="href"){return node[_3c4];}var _3c5=_3bb[lc]||name;return _3bc(node,_3c5)?node.getAttribute(_3c5):null;};});},"dojo/dom-construct":function(){define(["exports","./_base/kernel","./sniff","./_base/window","./dom","./dom-attr","./on"],function(_3c6,dojo,has,win,dom,attr,on){var _3c7={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"]},_3c8=/<\s*([\w\:]+)/,_3c9={},_3ca=0,_3cb="__"+dojo._scopeName+"ToDomId";for(var _3cc in _3c7){if(_3c7.hasOwnProperty(_3cc)){var tw=_3c7[_3cc];tw.pre=_3cc=="option"?""+"
    "+"
    Click on an object in the Log display
    "+"
    Hover over HTML elements in the main page. Click to hold selection.
    "; +_10=_8.getElementById("firebugToolbar"); +_f=_8.getElementById("firebugCommandLine"); +_46(_f,"keydown",_47); +_46(_8,_4("ie")||_4("safari")?"keydown":"keypress",_48); +_c=_8.getElementById("firebugLog"); +_d=_8.getElementById("objectLog"); +_16=_8.getElementById("domInspect"); +_e=_8.getElementById("fireBugTabs"); +_49(); +_4a(); +}; +_1.addOnLoad(_3c); +function _4b(){ +_8=null; +if(_9.console){ +_9.console.clear(); +} +_9=null; +_b=null; +_c=null; +_d=null; +_16=null; +_f=null; +_12=[]; +_13=[]; +_14={}; +}; +function _4c(){ +var _4d=_f.value; +_f.value=""; +_23(["> ",_4d],"command"); +var _4e; +try{ +_4e=eval(_4d); +} +catch(e){ +} +}; +function _49(h){ +var _4f=25; +var _50=h?h-(_4f+_f.offsetHeight+25+(h*0.01))+"px":(_b.offsetHeight-_4f-_f.offsetHeight)+"px"; +_c.style.top=_4f+"px"; +_c.style.height=_50; +_d.style.height=_50; +_d.style.top=_4f+"px"; +_16.style.height=_50; +_16.style.top=_4f+"px"; +_f.style.bottom=0; +_1.addOnWindowUnload(_4b); +}; +function _23(_51,_52,_53){ +if(_c){ +_54(_51,_52,_53); +}else{ +_12.push([_51,_52,_53]); +} +}; +function _4a(){ +var _55=_12; +_12=[]; +for(var i=0;i<_55.length;++i){ +_54(_55[i][0],_55[i][1],_55[i][2]); +} +}; +function _54(_56,_57,_58){ +var _59=_c.scrollTop+_c.offsetHeight>=_c.scrollHeight; +_58=_58||_5a; +_58(_56,_57); +if(_59){ +_c.scrollTop=_c.scrollHeight-_c.offsetHeight; +} +}; +function _5b(row){ +var _5c=_13.length?_13[_13.length-1]:_c; +_5c.appendChild(row); +}; +function _5a(_5d,_5e){ +var row=_c.ownerDocument.createElement("div"); +row.className="logRow"+(_5e?" logRow-"+_5e:""); +row.innerHTML=_5d.join(""); +_5b(row); +}; +function _27(_5f,_60){ +_1e(_5f,_60); +var _61=_c.ownerDocument.createElement("div"); +_61.className="logGroupBox"; +_5b(_61); +_13.push(_61); +}; +function _28(){ +_13.pop(); +}; +function _1e(_62,_63){ +var _64=[]; +var _65=_62[0]; +var _66=0; +if(typeof (_65)!="string"){ +_65=""; +_66=-1; +} +var _67=_68(_65); +for(var i=0;i<_67.length;++i){ +var _69=_67[i]; +if(_69&&typeof _69=="object"){ +_69.appender(_62[++_66],_64); +}else{ +_6a(_69,_64); +} +} +var ids=[]; +var obs=[]; +for(i=_66+1;i<_62.length;++i){ +_6a(" ",_64); +var _6b=_62[i]; +if(_6b===undefined||_6b===null){ +_6c(_6b,_64); +}else{ +if(typeof (_6b)=="string"){ +_6a(_6b,_64); +}else{ +if(_6b instanceof Date){ +_6a(_6b.toString(),_64); +}else{ +if(_6b.nodeType==9){ +_6a("[ XmlDoc ]",_64); +}else{ +var id="_a"+_a++; +ids.push(id); +obs.push(_6b); +var str=""+_6d(_6b)+""; +_6e(str,_64); +} +} +} +} +} +_23(_64,_63); +for(i=0;i"; +})); +} +}; +function _68(_6f){ +var _70=[]; +var reg=/((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/; +var _71={s:_6a,d:_72,i:_72,f:_73}; +for(var m=reg.exec(_6f);m;m=reg.exec(_6f)){ +var _74=m[8]?m[8]:m[5]; +var _75=_74 in _71?_71[_74]:_76; +var _77=m[3]?parseInt(m[3]):(m[4]=="."?-1:0); +_70.push(_6f.substr(0,m[0][0]=="%"?m.index:m.index+1)); +_70.push({appender:_75,precision:_77}); +_6f=_6f.substr(m.index+m[0].length); +} +_70.push(_6f); +return _70; +}; +function _78(_79){ +function _7a(ch){ +switch(ch){ +case "<": +return "<"; +case ">": +return ">"; +case "&": +return "&"; +case "'": +return "'"; +case "\"": +return """; +} +return "?"; +}; +return String(_79).replace(/[<>&"']/g,_7a); +}; +function _7b(_7c){ +try{ +return _7c+""; +} +catch(e){ +return null; +} +}; +function _6e(_7d,_7e){ +_7e.push(_7b(_7d)); +}; +function _6a(_7f,_80){ +_80.push(_78(_7b(_7f))); +}; +function _6c(_81,_82){ +_82.push("",_78(_7b(_81)),""); +}; +function _83(_84,_85){ +_85.push(""",_78(_7b(_84)),"""); +}; +function _72(_86,_87){ +_87.push("",_78(_7b(_86)),""); +}; +function _73(_88,_89){ +_89.push("",_78(_7b(_88)),""); +}; +function _8a(_8b,_8c){ +_8c.push("",_6d(_8b),""); +}; +function _76(_8d,_8e){ +try{ +if(_8d===undefined){ +_6c("undefined",_8e); +}else{ +if(_8d===null){ +_6c("null",_8e); +}else{ +if(typeof _8d=="string"){ +_83(_8d,_8e); +}else{ +if(typeof _8d=="number"){ +_72(_8d,_8e); +}else{ +if(typeof _8d=="function"){ +_8a(_8d,_8e); +}else{ +if(_8d.nodeType==1){ +_8f(_8d,_8e); +}else{ +if(typeof _8d=="object"){ +_90(_8d,_8e); +}else{ +_6a(_8d,_8e); +} +} +} +} +} +} +} +} +catch(e){ +} +}; +function _90(_91,_92){ +var _93=_7b(_91); +var _94=/\[object (.*?)\]/; +var m=_94.exec(_93); +_92.push("",m?m[1]:_93,""); +}; +function _8f(_95,_96){ +_96.push(""); +_96.push("",_78(_95.nodeName.toLowerCase()),""); +if(_95.id){ +_96.push("#",_78(_95.id),""); +} +if(_95.className){ +_96.push(".",_78(_95.className),""); +} +_96.push(""); +}; +function _26(_97,_98){ +if(_97.nodeType==1){ +_98.push("
    ","<",_97.nodeName.toLowerCase(),""); +for(var i=0;i<_97.attributes.length;++i){ +var _99=_97.attributes[i]; +if(!_99.specified){ +continue; +} +_98.push(" ",_99.nodeName.toLowerCase(),"="",_78(_99.nodeValue),"""); +} +if(_97.firstChild){ +_98.push(">
    "); +for(var _9a=_97.firstChild;_9a;_9a=_9a.nextSibling){ +_26(_9a,_98); +} +_98.push("
    </",_97.nodeName.toLowerCase(),">
    "); +}else{ +_98.push("/>"); +} +}else{ +if(_97.nodeType==3){ +_98.push("
    ",_78(_97.nodeValue),"
    "); +} +} +}; +function _46(_9b,_9c,_9d){ +if(document.all){ +_9b.attachEvent("on"+_9c,_9d); +}else{ +_9b.addEventListener(_9c,_9d,false); +} +}; +function _9e(_9f,_a0,_a1){ +if(document.all){ +_9f.detachEvent("on"+_a0,_a1); +}else{ +_9f.removeEventListener(_a0,_a1,false); +} +}; +function _a2(_a3){ +if(document.all){ +_a3.cancelBubble=true; +}else{ +_a3.stopPropagation(); +} +}; +function _a4(msg,_a5,_a6){ +var _a7=_a5.lastIndexOf("/"); +var _a8=_a7==-1?_a5:_a5.substr(_a7+1); +var _a9=["",msg,"","
    ",_a8," (line ",_a6,")
    "]; +_23(_a9,"error"); +}; +var _aa=new Date().getTime(); +function _48(_ab){ +var _ac=(new Date()).getTime(); +if(_ac>_aa+200){ +_ab=_1.fixEvent(_ab); +var _ad=_1.keys; +var ekc=_ab.keyCode; +_aa=_ac; +if(ekc==_ad.F12){ +_31(); +}else{ +if((ekc==_ad.NUMPAD_ENTER||ekc==76)&&_ab.shiftKey&&(_ab.metaKey||_ab.ctrlKey)){ +_36(); +}else{ +return; +} +} +_a2(_ab); +} +}; +function _47(e){ +var dk=_1.keys; +if(e.keyCode==13&&_f.value){ +_ae(_f.value); +_4c(); +}else{ +if(e.keyCode==27){ +_f.value=""; +}else{ +if(e.keyCode==dk.UP_ARROW||e.charCode==dk.UP_ARROW){ +_af("older"); +}else{ +if(e.keyCode==dk.DOWN_ARROW||e.charCode==dk.DOWN_ARROW){ +_af("newer"); +}else{ +if(e.keyCode==dk.HOME||e.charCode==dk.HOME){ +_b0=1; +_af("older"); +}else{ +if(e.keyCode==dk.END||e.charCode==dk.END){ +_b0=999999; +_af("newer"); +} +} +} +} +} +} +}; +var _b0=-1; +var _b1=null; +function _ae(_b2){ +var _b3=_b4("firebug_history"); +_b3=(_b3)?_1.fromJson(_b3):[]; +var pos=_1.indexOf(_b3,_b2); +if(pos!=-1){ +_b3.splice(pos,1); +} +_b3.push(_b2); +_b4("firebug_history",_1.toJson(_b3),30); +while(_b3.length&&!_b4("firebug_history")){ +_b3.shift(); +_b4("firebug_history",_1.toJson(_b3),30); +} +_b1=null; +_b0=-1; +}; +function _af(_b5){ +var _b6=_b4("firebug_history"); +_b6=(_b6)?_1.fromJson(_b6):[]; +if(!_b6.length){ +return; +} +if(_b1===null){ +_b1=_f.value; +} +if(_b0==-1){ +_b0=_b6.length; +} +if(_b5=="older"){ +--_b0; +if(_b0<0){ +_b0=0; +} +}else{ +if(_b5=="newer"){ +++_b0; +if(_b0>_b6.length){ +_b0=_b6.length; +} +} +} +if(_b0==_b6.length){ +_f.value=_b1; +_b1=null; +}else{ +_f.value=_b6[_b0]; +} +}; +function _b4(_b7,_b8){ +var c=document.cookie; +if(arguments.length==1){ +var _b9=c.match(new RegExp("(?:^|; )"+_b7+"=([^;]*)")); +return _b9?decodeURIComponent(_b9[1]):undefined; +}else{ +var d=new Date(); +d.setMonth(d.getMonth()+1); +document.cookie=_b7+"="+encodeURIComponent(_b8)+((d.toUtcString)?"; expires="+d.toUTCString():""); +} +}; +function _ba(it){ +return it&&it instanceof Array||typeof it=="array"; +}; +function _bb(o){ +var cnt=0; +for(var nm in o){ +cnt++; +} +return cnt; +}; +function _22(o,i,txt,_bc){ +var ind=" \t"; +txt=txt||""; +i=i||ind; +_bc=_bc||[]; +var _bd; +if(o&&o.nodeType==1){ +var _be=[]; +_26(o,_be); +return _be.join(""); +} +var br=",\n",cnt=0,_bf=_bb(o); +if(o instanceof Date){ +return i+o.toString()+br; +} +looking: +for(var nm in o){ +cnt++; +if(cnt==_bf){ +br="\n"; +} +if(o[nm]===window||o[nm]===document){ +}else{ +if(o[nm]===null){ +txt+=i+nm+" : NULL"+br; +}else{ +if(o[nm]&&o[nm].nodeType){ +if(o[nm].nodeType==1){ +}else{ +if(o[nm].nodeType==3){ +txt+=i+nm+" : [ TextNode "+o[nm].data+" ]"+br; +} +} +}else{ +if(typeof o[nm]=="object"&&(o[nm] instanceof String||o[nm] instanceof Number||o[nm] instanceof Boolean)){ +txt+=i+nm+" : "+o[nm]+","+br; +}else{ +if(o[nm] instanceof Date){ +txt+=i+nm+" : "+o[nm].toString()+br; +}else{ +if(typeof (o[nm])=="object"&&o[nm]){ +for(var j=0,_c0;_c0=_bc[j];j++){ +if(o[nm]===_c0){ +txt+=i+nm+" : RECURSION"+br; +continue looking; +} +} +_bc.push(o[nm]); +_bd=(_ba(o[nm]))?["[","]"]:["{","}"]; +txt+=i+nm+" : "+_bd[0]+"\n"; +txt+=_22(o[nm],i+ind,"",_bc); +txt+=i+_bd[1]+br; +}else{ +if(typeof o[nm]=="undefined"){ +txt+=i+nm+" : undefined"+br; +}else{ +if(nm=="toString"&&typeof o[nm]=="function"){ +var _c1=o[nm](); +if(typeof _c1=="string"&&_c1.match(/function ?(.*?)\(/)){ +_c1=_78(_6d(o[nm])); +} +txt+=i+nm+" : "+_c1+br; +}else{ +txt+=i+nm+" : "+_78(_6d(o[nm]))+br; +} +} +} +} +} +} +} +} +} +return txt; +}; +function _6d(obj){ +var _c2=(obj instanceof Error); +if(obj.nodeType==1){ +return _78("< "+obj.tagName.toLowerCase()+" id=\""+obj.id+"\" />"); +} +if(obj.nodeType==3){ +return _78("[TextNode: \""+obj.nodeValue+"\"]"); +} +var nm=(obj&&(obj.id||obj.name||obj.ObjectID||obj.widgetId)); +if(!_c2&&nm){ +return "{"+nm+"}"; +} +var _c3=2; +var _c4=4; +var cnt=0; +if(_c2){ +nm="[ Error: "+(obj.message||obj.description||obj)+" ]"; +}else{ +if(_ba(obj)){ +nm="["+obj.slice(0,_c4).join(","); +if(obj.length>_c4){ +nm+=" ... ("+obj.length+" items)"; +} +nm+="]"; +}else{ +if(typeof obj=="function"){ +nm=obj+""; +var reg=/function\s*([^\(]*)(\([^\)]*\))[^\{]*\{/; +var m=reg.exec(nm); +if(m){ +if(!m[1]){ +m[1]="function"; +} +nm=m[1]+m[2]; +}else{ +nm="function()"; +} +}else{ +if(typeof obj!="object"||typeof obj=="string"){ +nm=obj+""; +}else{ +nm="{"; +for(var i in obj){ +cnt++; +if(cnt>_c3){ +break; +} +nm+=i+":"+_78(obj[i])+" "; +} +nm+="}"; +} +} +} +} +return nm; +}; +_46(document,_4("ie")||_4("safari")?"keydown":"keypress",_48); +if((document.documentElement.getAttribute("debug")=="true")||(_1.config.isDebug)){ +_31(true); +} +_1.addOnWindowUnload(function(){ +_9e(document,_4("ie")||_4("safari")?"keydown":"keypress",_48); +window.onFirebugResize=null; +window.console=null; +}); +}); diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/lib/dojo/_firebug/infoIcon.png Binary file server/src/main/webapp/static/lib/dojo/_firebug/infoIcon.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/lib/dojo/_firebug/tab_lft_norm.png Binary file server/src/main/webapp/static/lib/dojo/_firebug/tab_lft_norm.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/lib/dojo/_firebug/tab_lft_over.png Binary file server/src/main/webapp/static/lib/dojo/_firebug/tab_lft_over.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/lib/dojo/_firebug/tab_rgt_norm.png Binary file server/src/main/webapp/static/lib/dojo/_firebug/tab_rgt_norm.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/lib/dojo/_firebug/tab_rgt_over.png Binary file server/src/main/webapp/static/lib/dojo/_firebug/tab_rgt_over.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/lib/dojo/_firebug/warningIcon.png Binary file server/src/main/webapp/static/lib/dojo/_firebug/warningIcon.png has changed diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/lib/dojo/cookie.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/main/webapp/static/lib/dojo/cookie.js Mon Jan 14 16:00:07 2013 +0100 @@ -0,0 +1,49 @@ +/* + Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + +//>>built +define("dojo/cookie",["./_base/kernel","./regexp"],function(_1,_2){ +_1.cookie=function(_3,_4,_5){ +var c=document.cookie,_6; +if(arguments.length==1){ +var _7=c.match(new RegExp("(?:^|; )"+_2.escapeString(_3)+"=([^;]*)")); +_6=_7?decodeURIComponent(_7[1]):undefined; +}else{ +_5=_5||{}; +var _8=_5.expires; +if(typeof _8=="number"){ +var d=new Date(); +d.setTime(d.getTime()+_8*24*60*60*1000); +_8=_5.expires=d; +} +if(_8&&_8.toUTCString){ +_5.expires=_8.toUTCString(); +} +_4=encodeURIComponent(_4); +var _9=_3+"="+_4,_a; +for(_a in _5){ +_9+="; "+_a; +var _b=_5[_a]; +if(_b!==true){ +_9+="="+_b; +} +} +document.cookie=_9; +} +return _6; +}; +_1.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 _1.cookie; +}); diff -r 7b517a54b708 -r 3247fccfbd3f server/src/main/webapp/static/lib/dojo/dojo.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/main/webapp/static/lib/dojo/dojo.js Mon Jan 14 16:00:07 2013 +0100 @@ -0,0 +1,15 @@ +/* + Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + +/* + This is an optimized version of Dojo, built for deployment and not for + development. To get sources and documentation, please visit: + + http://dojotoolkit.org +*/ + +//>>built +(function(_1,_2){var _3=function(){},_4=function(it){for(var p in it){return 0;}return 1;},_5={}.toString,_6=function(it){return _5.call(it)=="[object Function]";},_7=function(it){return _5.call(it)=="[object String]";},_8=function(it){return _5.call(it)=="[object Array]";},_9=function(_a,_b){if(_a){for(var i=0;i<_a.length;){_b(_a[i++]);}}},_c=function(_d,_e){for(var p in _e){_d[p]=_e[p];}return _d;},_f=function(_10,_11){return _c(new Error(_10),{src:"dojoLoader",info:_11});},_12=1,uid=function(){return "_"+_12++;},req=function(_13,_14,_15){return _16(_13,_14,_15,0,req);},_17=this,doc=_17.document,_18=doc&&doc.createElement("DiV"),has=req.has=function(_19){return _6(_1a[_19])?(_1a[_19]=_1a[_19](_17,doc,_18)):_1a[_19];},_1a=has.cache=_2.hasCache;has.add=function(_1b,_1c,now,_1d){(_1a[_1b]===undefined||_1d)&&(_1a[_1b]=_1c);return now&&has(_1b);};0&&has.add("host-node",_1.has&&"host-node" in _1.has?_1.has["host-node"]:(typeof process=="object"&&process.versions&&process.versions.node&&process.versions.v8));if(0){require("./_base/configNode.js").config(_2);_2.loaderPatch.nodeRequire=require;}0&&has.add("host-rhino",_1.has&&"host-rhino" in _1.has?_1.has["host-rhino"]:(typeof load=="function"&&(typeof Packages=="function"||typeof Packages=="object")));if(0){for(var _1e=_1.baseUrl||".",arg,_1f=this.arguments,i=0;i<_1f.length;){arg=(_1f[i++]+"").split("=");if(arg[0]=="baseUrl"){_1e=arg[1];break;}}load(_1e+"/_base/configRhino.js");rhinoDojoConfig(_2,_1e,_1f);}for(var p in _1.has){has.add(p,_1.has[p],0,1);}var _20=1,_21=2,_22=3,_23=4,_24=5;if(0){_20="requested";_21="arrived";_22="not-a-module";_23="executing";_24="executed";}var _25=0,_26="sync",xd="xd",_27=[],_28=0,_29=_3,_2a=_3,_2b;if(1){req.isXdUrl=_3;req.initSyncLoader=function(_2c,_2d,_2e){if(!_28){_28=_2c;_29=_2d;_2a=_2e;}return {sync:_26,requested:_20,arrived:_21,nonmodule:_22,executing:_23,executed:_24,syncExecStack:_27,modules:_2f,execQ:_30,getModule:_31,injectModule:_32,setArrived:_33,signal:_34,finishExec:_35,execModule:_36,dojoRequirePlugin:_28,getLegacyMode:function(){return _25;},guardCheckComplete:_37};};if(1){var _38=location.protocol,_39=location.host;req.isXdUrl=function(url){if(/^\./.test(url)){return false;}if(/^\/\//.test(url)){return true;}var _3a=url.match(/^([^\/\:]+\:)\/+([^\/]+)/);return _3a&&(_3a[1]!=_38||(_39&&_3a[2]!=_39));};1||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")){_2b=function(){return new XMLHttpRequest();};}else{for(var _3b=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],_3c,i=0;i<3;){try{_3c=_3b[i++];if(new ActiveXObject(_3c)){break;}}catch(e){}}_2b=function(){return new ActiveXObject(_3c);};}req.getXhr=_2b;has.add("dojo-gettext-api",1);req.getText=function(url,_3d,_3e){var xhr=_2b();xhr.open("GET",_3f(url),false);xhr.send(null);if(xhr.status==200||(!location.host&&!xhr.status)){if(_3e){_3e(xhr.responseText,_3d);}}else{throw _f("xhrFailed",xhr.status);}return xhr.responseText;};}}else{req.async=1;}var _40=new Function("return eval(arguments[0]);");req.eval=function(_41,_42){return _40(_41+"\r\n////@ sourceURL="+_42);};var _43={},_44="error",_34=req.signal=function(_45,_46){var _47=_43[_45];_9(_47&&_47.slice(0),function(_48){_48.apply(null,_8(_46)?_46:[_46]);});},on=req.on=function(_49,_4a){var _4b=_43[_49]||(_43[_49]=[]);_4b.push(_4a);return {remove:function(){for(var i=0;i<_4b.length;i++){if(_4b[i]===_4a){_4b.splice(i,1);return;}}}};};var _4c=[],_4d={},_4e=[],_4f={},map=req.map={},_50=[],_2f={},_51="",_52={},_53="url:",_54={},_55={};if(1){var _56=function(_57){var p,_58,_59,now,m;for(p in _54){_58=_54[p];_59=p.match(/^url\:(.+)/);if(_59){_52[_53+_5a(_59[1],_57)]=_58;}else{if(p=="*now"){now=_58;}else{if(p!="*noref"){m=_5b(p,_57);_52[m.mid]=_52[_53+m.url]=_58;}}}}if(now){now(_5c(_57));}_54={};},_5d=function(s){return s.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(c){return "\\"+c;});},_5e=function(map,_5f){_5f.splice(0,_5f.length);for(var p in map){_5f.push([p,map[p],new RegExp("^"+_5d(p)+"(/|$)"),p.length]);}_5f.sort(function(lhs,rhs){return rhs[3]-lhs[3];});return _5f;},_60=function(_61){var _62=_61.name;if(!_62){_62=_61;_61={name:_62};}_61=_c({main:"main"},_61);_61.location=_61.location?_61.location:_62;if(_61.packageMap){map[_62]=_61.packageMap;}if(!_61.main.indexOf("./")){_61.main=_61.main.substring(2);}_4f[_62]=_61;},_63=[],_64=function(_65,_66,_67){for(var p in _65){if(p=="waitSeconds"){req.waitms=(_65[p]||0)*1000;}if(p=="cacheBust"){_51=_65[p]?(_7(_65[p])?_65[p]:(new Date()).getTime()+""):"";}if(p=="baseUrl"||p=="combo"){req[p]=_65[p];}if(1&&p=="async"){var _68=_65[p];req.legacyMode=_25=(_7(_68)&&/sync|legacyAsync/.test(_68)?_68:(!_68?_26:false));req.async=!_25;}if(_65[p]!==_1a){req.rawConfig[p]=_65[p];p!="has"&&has.add("config-"+p,_65[p],0,_66);}}if(!req.baseUrl){req.baseUrl="./";}if(!/\/$/.test(req.baseUrl)){req.baseUrl+="/";}for(p in _65.has){has.add(p,_65.has[p],0,_66);}_9(_65.packages,_60);for(_1e in _65.packagePaths){_9(_65.packagePaths[_1e],function(_69){var _6a=_1e+"/"+_69;if(_7(_69)){_69={name:_69};}_69.location=_6a;_60(_69);});}_5e(_c(map,_65.map),_50);_9(_50,function(_6b){_6b[1]=_5e(_6b[1],[]);if(_6b[0]=="*"){_50.star=_6b;}});_5e(_c(_4d,_65.paths),_4e);_9(_65.aliases,function(_6c){if(_7(_6c[0])){_6c[0]=new RegExp("^"+_5d(_6c[0])+"$");}_4c.push(_6c);});if(_66){_63.push({config:_65.config});}else{for(p in _65.config){var _6d=_31(p,_67);_6d.config=_c(_6d.config||{},_65.config[p]);}}if(_65.cache){_56();_54=_65.cache;if(_65.cache["*noref"]){_56();}}_34("config",[_65,req.rawConfig]);};if(has("dojo-cdn")||1){var _6e=doc.getElementsByTagName("script"),i=0,_6f,_70,src,_71;while(i<_6e.length){_6f=_6e[i++];if((src=_6f.getAttribute("src"))&&(_71=src.match(/(((.*)\/)|^)dojo\.js(\W|$)/i))){_70=_71[3]||"";_2.baseUrl=_2.baseUrl||_70;src=(_6f.getAttribute("data-dojo-config")||_6f.getAttribute("djConfig"));if(src){_55=req.eval("({ "+src+" })","data-dojo-config");}if(0){var _72=_6f.getAttribute("data-main");if(_72){_55.deps=_55.deps||[_72];}}break;}}}if(0){try{if(window.parent!=window&&window.parent.require){var doh=window.parent.require("doh");doh&&_c(_55,doh.testConfig);}}catch(e){}}req.rawConfig={};_64(_2,1);if(has("dojo-cdn")){_4f.dojo.location=_70;if(_70){_70+="/";}_4f.dijit.location=_70+"../dijit/";_4f.dojox.location=_70+"../dojox/";}_64(_1,1);_64(_55,1);}else{_4d=_2.paths;_4e=_2.pathsMapProg;_4f=_2.packs;_4c=_2.aliases;_50=_2.mapProgs;_2f=_2.modules;_52=_2.cache;_51=_2.cacheBust;req.rawConfig=_2;}if(0){req.combo=req.combo||{add:_3};var _73=0,_74=[],_75=null;}var _76=function(_77){_37(function(){_9(_77.deps,_32);if(0&&_73&&!_75){_75=setTimeout(function(){_73=0;_75=null;req.combo.done(function(_78,url){var _79=function(){_7a(0,_78);_7b();};_74.push(_78);_7c=_78;req.injectUrl(url,_79,_78);_7c=0;},req);},0);}});},_16=function(a1,a2,a3,_7d,_7e){var _7f,_80;if(_7(a1)){_7f=_31(a1,_7d,true);if(_7f&&_7f.executed){return _7f.result;}throw _f("undefinedModule",a1);}if(!_8(a1)){_64(a1,0,_7d);a1=a2;a2=a3;}if(_8(a1)){if(!a1.length){a2&&a2();}else{_80="require*"+uid();for(var mid,_81=[],i=0;i_ab){_ac=_6(_ad[1])?mid.replace(_ad[0],_ad[1]):_ad[1];}});if(_ac){return _9c(_ac,0,_9e,_9f,_a0,_a1,_a2,_a3);}_a8=_9f[mid];if(_a8){return _a3?_82(_a8.pid,_a8.mid,_a8.pack,_a8.url):_9f[mid];}}_a7=_94(mid,_a2);if(_a7){url=_a7[1]+mid.substring(_a7[3]);}else{if(pid){url=_a4.location+"/"+_a5;}else{if(has("config-tlmSiblingOfDojo")){url="../"+mid;}else{url=mid;}}}if(!(/(^\/)|(\:)/.test(url))){url=_a0+url;}url+=".js";return _82(pid,mid,_a4,_96(url));},_5b=function(mid,_af){return _9c(mid,_af,_4f,_2f,req.baseUrl,_50,_4e);},_b0=function(_b1,_b2,_b3){return _b1.normalize?_b1.normalize(_b2,function(mid){return _b4(mid,_b3);}):_b4(_b2,_b3);},_b5=0,_31=function(mid,_b6,_b7){var _b8,_b9,_ba,_bb;_b8=mid.match(/^(.+?)\!(.*)$/);if(_b8){_b9=_31(_b8[1],_b6,_b7);if(1&&_25==_26&&!_b9.executed){_32(_b9);if(_b9.injected===_21&&!_b9.executed){_37(function(){_36(_b9);});}if(_b9.executed){_bc(_b9);}else{_30.unshift(_b9);}}if(_b9.executed===_24&&!_b9.load){_bc(_b9);}if(_b9.load){_ba=_b0(_b9,_b8[2],_b6);mid=(_b9.mid+"!"+(_b9.dynamic?++_b5+"!":"")+_ba);}else{_ba=_b8[2];mid=_b9.mid+"!"+(++_b5)+"!waitingForPlugin";}_bb={plugin:_b9,mid:mid,req:_5c(_b6),prid:_ba};}else{_bb=_5b(mid,_b6);}return _2f[_bb.mid]||(!_b7&&(_2f[_bb.mid]=_bb));},_b4=req.toAbsMid=function(mid,_bd){return _5b(mid,_bd).mid;},_5a=req.toUrl=function(_be,_bf){var _c0=_5b(_be+"/x",_bf),url=_c0.url;return _3f(_c0.pid===0?_be:url.substring(0,url.length-5));},_c1={injected:_21,executed:_24,def:_22,result:_22},_c2=function(mid){return _2f[mid]=_c({mid:mid},_c1);},_c3=_c2("require"),_c4=_c2("exports"),_c5=_c2("module"),_c6=function(_c7,_c8){req.trace("loader-run-factory",[_c7.mid]);var _c9=_c7.def,_ca;1&&_27.unshift(_c7);if(has("config-dojo-loader-catches")){try{_ca=_6(_c9)?_c9.apply(null,_c8):_c9;}catch(e){_34(_44,_c7.result=_f("factoryThrew",[_c7,e]));}}else{_ca=_6(_c9)?_c9.apply(null,_c8):_c9;}_c7.result=_ca===undefined&&_c7.cjs?_c7.cjs.exports:_ca;1&&_27.shift(_c7);},_cb={},_cc=0,_bc=function(_cd){var _ce=_cd.result;_cd.dynamic=_ce.dynamic;_cd.normalize=_ce.normalize;_cd.load=_ce.load;return _cd;},_cf=function(_d0){var map={};_9(_d0.loadQ,function(_d1){var _d2=_b0(_d0,_d1.prid,_d1.req.module),mid=_d0.dynamic?_d1.mid.replace(/waitingForPlugin$/,_d2):(_d0.mid+"!"+_d2),_d3=_c(_c({},_d1),{mid:mid,prid:_d2,injected:0});if(!_2f[mid]){_e5(_2f[mid]=_d3);}map[_d1.mid]=_2f[mid];_33(_d1);delete _2f[_d1.mid];});_d0.loadQ=0;var _d4=function(_d5){for(var _d6,_d7=_d5.deps||[],i=0;i<_d7.length;i++){_d6=map[_d7[i].mid];if(_d6){_d7[i]=_d6;}}};for(var p in _2f){_d4(_2f[p]);}_9(_30,_d4);},_35=function(_d8){req.trace("loader-finish-exec",[_d8.mid]);_d8.executed=_24;_d8.defOrder=_cc++;1&&_9(_d8.provides,function(cb){cb();});if(_d8.loadQ){_bc(_d8);_cf(_d8);}for(i=0;i<_30.length;){if(_30[i]===_d8){_30.splice(i,1);}else{i++;}}if(/^require\*/.test(_d8.mid)){delete _2f[_d8.mid];}},_d9=[],_36=function(_da,_db){if(_da.executed===_23){req.trace("loader-circular-dependency",[_d9.concat(_da.mid).join("->")]);return (!_da.def||_db)?_cb:(_da.cjs&&_da.cjs.exports);}if(!_da.executed){if(!_da.def){return _cb;}var mid=_da.mid,_dc=_da.deps||[],arg,_dd,_de=[],i=0;if(0){_d9.push(mid);req.trace("loader-exec-module",["exec",_d9.length,mid]);}_da.executed=_23;while(i<_dc.length){arg=_dc[i++];_dd=((arg===_c3)?_5c(_da):((arg===_c4)?_da.cjs.exports:((arg===_c5)?_da.cjs:_36(arg,_db))));if(_dd===_cb){_da.executed=0;req.trace("loader-exec-module",["abort",mid]);0&&_d9.pop();return _cb;}_de.push(_dd);}_c6(_da,_de);_35(_da);0&&_d9.pop();}return _da.result;},_84=0,_37=function(_df){try{_84++;_df();}finally{_84--;}if(_93()){_34("idle",[]);}},_7b=function(){if(_84){return;}_37(function(){_29();for(var _e0,_e1,i=0;i<_30.length;){_e0=_cc;_e1=_30[i];_36(_e1);if(_e0!=_cc){_29();i=0;}else{i++;}}});};if(0){req.undef=function(_e2,_e3){var _e4=_31(_e2,_e3);_33(_e4);delete _2f[_e4.mid];};}if(1){if(has("dojo-loader-eval-hint-url")===undefined){has.add("dojo-loader-eval-hint-url",1);}var _3f=function(url){url+="";return url+(_51?((/\?/.test(url)?"&":"?")+_51):"");},_e5=function(_e6){var _e7=_e6.plugin;if(_e7.executed===_24&&!_e7.load){_bc(_e7);}var _e8=function(def){_e6.result=def;_33(_e6);_35(_e6);_7b();};if(_e7.load){_e7.load(_e6.prid,_e6.req,_e8);}else{if(_e7.loadQ){_e7.loadQ.push(_e6);}else{_e7.loadQ=[_e6];_30.unshift(_e7);_32(_e7);}}},_8a=0,_7c=0,_e9=0,_8b=function(_ea,_eb){if(has("config-stripStrict")){_ea=_ea.replace(/"use strict"/g,"");}_e9=1;if(has("config-dojo-loader-catches")){try{if(_ea===_8a){_8a.call(null);}else{req.eval(_ea,has("dojo-loader-eval-hint-url")?_eb.url:_eb.mid);}}catch(e){_34(_44,_f("evalModuleThrew",_eb));}}else{if(_ea===_8a){_8a.call(null);}else{req.eval(_ea,has("dojo-loader-eval-hint-url")?_eb.url:_eb.mid);}}_e9=0;},_32=function(_ec){var mid=_ec.mid,url=_ec.url;if(_ec.executed||_ec.injected||_8d[mid]||(_ec.url&&((_ec.pack&&_8d[_ec.url]===_ec.pack)||_8d[_ec.url]==1))){return;}_8e(_ec);if(0){var _ed=0;if(_ec.plugin&&_ec.plugin.isCombo){req.combo.add(_ec.plugin.mid,_ec.prid,0,req);_ed=1;}else{if(!_ec.plugin){_ed=req.combo.add(0,_ec.mid,_ec.url,req);}}if(_ed){_73=1;return;}}if(_ec.plugin){_e5(_ec);return;}var _ee=function(){_7a(_ec);if(_ec.injected!==_21){_33(_ec);_c(_ec,_c1);req.trace("loader-define-nonmodule",[_ec.url]);}if(1&&_25){!_27.length&&_7b();}else{_7b();}};_8a=_52[mid]||_52[_53+_ec.url];if(_8a){req.trace("loader-inject",["cache",_ec.mid,url]);_8b(_8a,_ec);_ee();return;}if(1&&_25){if(_ec.isXd){_25==_26&&(_25=xd);}else{if(_ec.isAmd&&_25!=_26){}else{var _ef=function(_f0){if(_25==_26){_27.unshift(_ec);_8b(_f0,_ec);_27.shift();_7a(_ec);if(!_ec.cjs){_33(_ec);_35(_ec);}if(_ec.finish){var _f1=mid+"*finish",_f2=_ec.finish;delete _ec.finish;def(_f1,["dojo",("dojo/require!"+_f2.join(",")).replace(/\./g,"/")],function(_f3){_9(_f2,function(mid){_f3.require(mid);});});_30.unshift(_31(_f1));}_ee();}else{_f0=_2a(_ec,_f0);if(_f0){_8b(_f0,_ec);_ee();}else{_7c=_ec;req.injectUrl(_3f(url),_ee,_ec);_7c=0;}}};req.trace("loader-inject",["xhr",_ec.mid,url,_25!=_26]);if(has("config-dojo-loader-catches")){try{req.getText(url,_25!=_26,_ef);}catch(e){_34(_44,_f("xhrInjectFailed",[_ec,e]));}}else{req.getText(url,_25!=_26,_ef);}return;}}}req.trace("loader-inject",["script",_ec.mid,url]);_7c=_ec;req.injectUrl(_3f(url),_ee,_ec);_7c=0;},_f4=function(_f5,_f6,def){req.trace("loader-define-module",[_f5.mid,_f6]);if(0&&_f5.plugin&&_f5.plugin.isCombo){_f5.result=_6(def)?def():def;_33(_f5);_35(_f5);return _f5;}var mid=_f5.mid;if(_f5.injected===_21){_34(_44,_f("multipleDefine",_f5));return _f5;}_c(_f5,{deps:_f6,def:def,cjs:{id:_f5.mid,uri:_f5.url,exports:(_f5.result={}),setExports:function(_f7){_f5.cjs.exports=_f7;},config:function(){return _f5.config;}}});for(var i=0;i<_f6.length;i++){_f6[i]=_31(_f6[i],_f5);}if(1&&_25&&!_8d[mid]){_76(_f5);_30.push(_f5);_7b();}_33(_f5);if(!_6(def)&&!_f6.length){_f5.result=def;_35(_f5);}return _f5;},_7a=function(_f8,_f9){var _fa=[],_fb,_fc;while(_8c.length){_fc=_8c.shift();_f9&&(_fc[0]=_f9.shift());_fb=(_fc[0]&&_31(_fc[0]))||_f8;_fa.push([_fb,_fc[1],_fc[2]]);}_56(_f8);_9(_fa,function(_fd){_76(_f4.apply(null,_fd));});};}var _fe=0,_92=_3,_90=_3;if(1){_92=function(){_fe&&clearTimeout(_fe);_fe=0;},_90=function(){_92();if(req.waitms){_fe=window.setTimeout(function(){_92();_34(_44,_f("timeout",_8d));},req.waitms);}};}if(1){has.add("ie-event-behavior",!!doc.attachEvent&&(typeof opera==="undefined"||opera.toString()!="[object Opera]"));}if(1&&(1||1)){var _ff=function(node,_100,_101,_102){if(!has("ie-event-behavior")){node.addEventListener(_100,_102,false);return function(){node.removeEventListener(_100,_102,false);};}else{node.attachEvent(_101,_102);return function(){node.detachEvent(_101,_102);};}},_103=_ff(window,"load","onload",function(){req.pageLoaded=1;doc.readyState!="complete"&&(doc.readyState="complete");_103();});if(1){var _104=doc.getElementsByTagName("script")[0],_105=_104.parentNode;req.injectUrl=function(url,_106,_107){var node=_107.node=doc.createElement("script"),_108=function(e){e=e||window.event;var node=e.target||e.srcElement;if(e.type==="load"||/complete|loaded/.test(node.readyState)){_109();_10a();_106&&_106();}},_109=_ff(node,"load","onreadystatechange",_108),_10a=_ff(node,"error","onerror",function(e){_109();_10a();_34(_44,_f("scriptError",[url,e]));});node.type="text/javascript";node.charset="utf-8";node.src=url;_105.insertBefore(node,_104);return node;};}}if(1){req.log=function(){try{for(var i=0;i0){_129._delayTimer=setTimeout(_12a,de);return _129;}_12a();return _129;},_play:function(_12b){var _12c=this;if(_12c._delayTimer){_12c._clearTimer();}_12c._startTime=new Date().valueOf();if(_12c._paused){_12c._startTime-=_12c.duration*_12c._percent;}_12c._active=true;_12c._paused=false;var _12d=_12c.curve.getValue(_12c._getStep());if(!_12c._percent){if(!_12c._startRepeatCount){_12c._startRepeatCount=_12c.repeat;}_12c._fire("onBegin",[_12d]);}_12c._fire("onPlay",[_12d]);_12c._cycle();return _12c;},pause:function(){var _12e=this;if(_12e._delayTimer){_12e._clearTimer();}_12e._stopTimer();if(!_12e._active){return _12e;}_12e._paused=true;_12e._fire("onPause",[_12e.curve.getValue(_12e._getStep())]);return _12e;},gotoPercent:function(_12f,_130){var _131=this;_131._stopTimer();_131._active=_131._paused=true;_131._percent=_12f;if(_130){_131.play();}return _131;},stop:function(_132){var _133=this;if(_133._delayTimer){_133._clearTimer();}if(!_133._timer){return _133;}_133._stopTimer();if(_132){_133._percent=1;}_133._fire("onStop",[_133.curve.getValue(_133._getStep())]);_133._active=_133._paused=false;return _133;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _134=this;if(_134._active){var curr=new Date().valueOf();var step=_134.duration===0?1:(curr-_134._startTime)/(_134.duration);if(step>=1){step=1;}_134._percent=step;if(_134.easing){step=_134.easing(step);}_134._fire("onAnimate",[_134.curve.getValue(step)]);if(_134._percent<1){_134._startTimer();}else{_134._active=false;if(_134.repeat>0){_134.repeat--;_134.play(null,true);}else{if(_134.repeat==-1){_134.play(null,true);}else{if(_134._startRepeatCount){_134.repeat=_134._startRepeatCount;_134._startRepeatCount=0;}}}_134._percent=0;_134._fire("onEnd",[_134.node]);!_134.repeat&&_134._stopTimer();}}return _134;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_135=null,_136={run:function(){}};lang.extend(_124,{_startTimer:function(){if(!this._timer){this._timer=_11e.connect(_136,"run",this,"_cycle");ctr++;}if(!_135){_135=setInterval(lang.hitch(_136,"run"),this.rate);}},_stopTimer:function(){if(this._timer){_11e.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_135);_135=null;ctr=0;}}});var _137=has("ie")?function(node){var ns=node.style;if(!ns.width.length&&_11f.get(node,"width")=="auto"){ns.width="auto";}}:function(){};_121._fade=function(args){args.node=dom.byId(args.node);var _138=_120({properties:{}},args),_139=(_138.properties.opacity={});_139.start=!("start" in _138)?function(){return +_11f.get(_138.node,"opacity")||0;}:_138.start;_139.end=_138.end;var anim=_121.animateProperty(_138);_11e.connect(anim,"beforeBegin",lang.partial(_137,_138.node));return anim;};_121.fadeIn=function(args){return _121._fade(_120({end:1},args));};_121.fadeOut=function(args){return _121._fade(_120({end:0},args));};_121._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _13a=function(_13b){this._properties=_13b;for(var p in _13b){var prop=_13b[p];if(prop.start instanceof _11d){prop.tempColor=new _11d();}}};_13a.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_13c=prop.start;if(_13c instanceof _11d){ret[p]=_11d.blendColors(_13c,prop.end,r,prop.tempColor).toCss();}else{if(!lang.isArray(_13c)){ret[p]=((prop.end-_13c)*r)+_13c+(p!="opacity"?prop.units||"px":0);}}}return ret;};_121.animateProperty=function(args){var n=args.node=dom.byId(args.node);if(!args.easing){args.easing=dojo._defaultEasing;}var anim=new _124(args);_11e.connect(anim,"beforeBegin",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]=_120({},(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 _13d=(p.toLowerCase().indexOf("color")>=0);function _13e(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=_11f.get(node,p);return (p=="opacity")?+v:(_13d?v:parseFloat(v));};if(!("end" in prop)){prop.end=_13e(n,p);}else{if(!("start" in prop)){prop.start=_13e(n,p);}}if(_13d){prop.start=new _11d(prop.start);prop.end=new _11d(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new _13a(pm);});_11e.connect(anim,"onAnimate",lang.hitch(_11f,"set",anim.node));return anim;};_121.anim=function(node,_13f,_140,_141,_142,_143){return _121.animateProperty({node:node,duration:_140||_124.prototype.duration,properties:_13f,easing:_141,onEnd:_142}).play(_143||0);};if(1){_120(dojo,_121);dojo._Animation=_124;}return _121;});},"dojo/dom-form":function(){define(["./_base/lang","./dom","./io-query","./json"],function(lang,dom,ioq,json){function _144(obj,name,_145){if(_145===null){return;}var val=obj[name];if(typeof val=="string"){obj[name]=[val,_145];}else{if(lang.isArray(val)){val.push(_145);}else{obj[name]=_145;}}};var _146="file|submit|image|reset|button";var form={fieldToObject:function fieldToObject(_147){var ret=null;_147=dom.byId(_147);if(_147){var _148=_147.name,type=(_147.type||"").toLowerCase();if(_148&&type&&!_147.disabled){if(type=="radio"||type=="checkbox"){if(_147.checked){ret=_147.value;}}else{if(_147.multiple){ret=[];var _149=[_147.firstChild];while(_149.length){for(var node=_149.pop();node;node=node.nextSibling){if(node.nodeType==1&&node.tagName.toLowerCase()=="option"){if(node.selected){ret.push(node.value);}}else{if(node.nextSibling){_149.push(node.nextSibling);}if(node.firstChild){_149.push(node.firstChild);}break;}}}}else{ret=_147.value;}}}}return ret;},toObject:function formToObject(_14a){var ret={},_14b=dom.byId(_14a).elements;for(var i=0,l=_14b.length;i=0){var mid=_18c.replace(/\./g,"/")+"_"+loc;_18a++;_190(mid,function(_197){for(var p in _197){_15d[_150.toAbsMid(p)+"/"+loc]=_197[p];}--_18a;while(!_18a&&_18b.length){load.apply(null,_18b.shift());}});return true;}return false;});};_195();_151.forEach(dojo.config.extraLocale,_195);},_177=function(id,_198,load){if(_18a){_18b.push([id,_198,load]);}return _18a;},_184=function(){};}if(1){var _199={},_19a=new Function("__bundle","__checkForLegacyModules","__mid","__amdValue","var define = function(mid, factory){define.called = 1; __amdValue.result = factory || mid;},"+"\t require = function(){define.called = 1;};"+"try{"+"define.called = 0;"+"eval(__bundle);"+"if(define.called==1)"+"return __amdValue;"+"if((__checkForLegacyModules = __checkForLegacyModules(__mid)))"+"return __checkForLegacyModules;"+"}catch(e){}"+"try{"+"return eval('('+__bundle+')');"+"}catch(e){"+"return e;"+"}"),_19b=function(deps,_19c,_19d){var _19e=[];_151.forEach(deps,function(mid){var url=_19d.toUrl(mid+".js");function load(text){var _19f=_19a(text,_184,mid,_199);if(_19f===_199){_19e.push(_15d[url]=_199.result);}else{if(_19f instanceof Error){console.error("failed to evaluate i18n bundle; url="+url,_19f);_19f={};}_19e.push(_15d[url]=(/nls\/[^\/]+\/[^\/]+$/.test(url)?_19f:{root:_19f,_v1x:1}));}};if(_15d[url]){_19e.push(_15d[url]);}else{var _1a0=_19d.syncLoadNls(mid);if(_1a0){_19e.push(_1a0);}else{if(!xhr){try{_19d.getText(url,true,load);}catch(e){_19e.push(_15d[url]={});}}else{xhr.get({url:url,sync:true,load:load,error:function(){_19e.push(_15d[url]={});}});}}}});_19c&&_19c.apply(null,_19e);};_184=function(_1a1){for(var _1a2,_1a3=_1a1.split("/"),_1a4=dojo.global[_1a3[0]],i=1;_1a4&&i<_1a3.length-1;_1a4=_1a4[_1a3[i++]]){}if(_1a4){_1a2=_1a4[_1a3[i]];if(!_1a2){_1a2=_1a4[_1a3[i].replace(/-/g,"_")];}if(_1a2){_15d[_1a1]=_1a2;}}return _1a2;};_154.getLocalization=function(_1a5,_1a6,_1a7){var _1a8,_1a9=_15e(_1a5,_1a6,_1a7);load(_1a9,(!isXd(_1a9,_150)?function(deps,_1aa){_19b(deps,_1aa,_150);}:_150),function(_1ab){_1a8=_1ab;});return _1a8;};if(has("dojo-unit-tests")){_185.push(function(doh){doh.register("tests.i18n.unit",function(t){var _1ac;_1ac=_19a("{prop:1}",_184,"nonsense",_199);t.is({prop:1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("({prop:1})",_184,"nonsense",_199);t.is({prop:1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("{'prop-x':1}",_184,"nonsense",_199);t.is({"prop-x":1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("({'prop-x':1})",_184,"nonsense",_199);t.is({"prop-x":1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("define({'prop-x':1})",_184,"nonsense",_199);t.is(_199,_1ac);t.is({"prop-x":1},_199.result);_1ac=_19a("define('some/module', {'prop-x':1})",_184,"nonsense",_199);t.is(_199,_1ac);t.is({"prop-x":1},_199.result);_1ac=_19a("this is total nonsense and should throw an error",_184,"nonsense",_199);t.is(_1ac instanceof Error,true);});});}}return lang.mixin(_154,{dynamic:true,normalize:_16f,load:load,cache:_15d});});},"dojo/promise/tracer":function(){define(["../_base/lang","./Promise","../Evented"],function(lang,_1ad,_1ae){"use strict";var _1af=new _1ae;var emit=_1af.emit;_1af.emit=null;function _1b0(args){setTimeout(function(){emit.apply(_1af,args);},0);};_1ad.prototype.trace=function(){var args=lang._toArray(arguments);this.then(function(_1b1){_1b0(["resolved",_1b1].concat(args));},function(_1b2){_1b0(["rejected",_1b2].concat(args));},function(_1b3){_1b0(["progress",_1b3].concat(args));});return this;};_1ad.prototype.traceRejected=function(){var args=lang._toArray(arguments);this.otherwise(function(_1b4){_1b0(["rejected",_1b4].concat(args));});return this;};return _1af;});},"dojo/errors/RequestError":function(){define(["./create"],function(_1b5){return _1b5("RequestError",function(_1b6,_1b7){this.response=_1b7;});});},"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,_1b8,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,_1b9){if(arguments.length==2){return attr[typeof name=="string"?"get":"set"](node,name);}return attr.set(node,name,_1b9);};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,_1ba){dojo.deprecated("dojo.coords()","Use dojo.position() or dojo.marginBox().");node=dom.byId(node);var s=_1b8.getComputedStyle(node),mb=geom.getMarginBox(node,s);var abs=geom.position(node,_1ba);mb.x=abs.x;mb.y=abs.y;return mb;};dojo.getProp=prop.get;dojo.setProp=prop.set;dojo.prop=function(node,name,_1bb){if(arguments.length==2){return prop[typeof name=="string"?"get":"set"](node,name);}return prop.set(node,name,_1bb);};dojo.getStyle=_1b8.get;dojo.setStyle=_1b8.set;dojo.getComputedStyle=_1b8.getComputedStyle;dojo.__toPixelValue=dojo.toPixelValue=_1b8.toPixelValue;dojo.style=function(node,name,_1bc){switch(arguments.length){case 1:return _1b8.get(node);case 2:return _1b8[typeof name=="string"?"get":"set"](node,name);}return _1b8.set(node,name,_1bc);};return dojo;});},"dojo/_base/kernel":function(){define(["../has","./config","require","module"],function(has,_1bd,_1be,_1bf){var i,p,_1c0={},_1c1={},dojo={config:_1bd,global:this,dijit:_1c0,dojox:_1c1};var _1c2={dojo:["dojo",dojo],dijit:["dijit",_1c0],dojox:["dojox",_1c1]},_1c3=(_1be.map&&_1be.map[_1bf.id.match(/[^\/]+/)[0]]),item;for(p in _1c3){if(_1c2[p]){_1c2[p][0]=_1c3[p];}else{_1c2[p]=[_1c3[p],{}];}}for(p in _1c2){item=_1c2[p];item[1]._scopeName=item[0];if(!_1bd.noGlobals){this[item[0]]=item[1];}}dojo.scopeMap=_1c2;dojo.baseUrl=dojo.config.baseUrl=_1be.baseUrl;dojo.isAsync=!1||_1be.async;dojo.locale=_1bd.locale;var rev="$Rev: 30226 $".match(/\d+/);dojo.version={major:1,minor:8,patch:3,flag:"",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 = function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}"))(dojo);if(0){dojo.exit=function(_1c4){quit(_1c4);};}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.apply({},arguments);a.unshift(tcn+":");console["log"](a.join(" "));}:function(){};console[tcn]._fake=true;})();}}}has.add("dojo-debug-messages",!!_1bd.isDebug);dojo.deprecated=dojo.experimental=function(){};if(has("dojo-debug-messages")){dojo.deprecated=function(_1c5,_1c6,_1c7){var _1c8="DEPRECATED: "+_1c5;if(_1c6){_1c8+=" "+_1c6;}if(_1c7){_1c8+=" -- will be removed in version: "+_1c7;}console.warn(_1c8);};dojo.experimental=function(_1c9,_1ca){var _1cb="EXPERIMENTAL: "+_1c9+" -- APIs subject to change without notice.";if(_1ca){_1cb+=" "+_1ca;}console.warn(_1cb);};}1||has.add("dojo-modulePaths",1);if(1){if(_1bd.modulePaths){dojo.deprecated("dojo.modulePaths","use paths configuration");var _1cc={};for(p in _1bd.modulePaths){_1cc[p.replace(/\./g,"/")]=_1bd.modulePaths[p];}_1be({paths:_1cc});}}1||has.add("dojo-moduleUrl",1);if(1){dojo.moduleUrl=function(_1cd,url){dojo.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var _1ce=null;if(_1cd){_1ce=_1be.toUrl(_1cd.replace(/\./g,"/")+(url?("/"+url):"")+"/*.*").replace(/\/\*\.\*/,"")+(url?"":"/");}return _1ce;};}dojo._hasResource={};return dojo;});},"dojo/io-query":function(){define(["./_base/lang"],function(lang){var _1cf={};return {objectToQuery:function objectToQuery(map){var enc=encodeURIComponent,_1d0=[];for(var name in map){var _1d1=map[name];if(_1d1!=_1cf[name]){var _1d2=enc(name)+"=";if(lang.isArray(_1d1)){for(var i=0,l=_1d1.length;i=0;i--){var node=(_20b?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_20d){_20d=_20c.ownerDocument.createElement("div");}_20d.appendChild(node);dojo.parser.parse(_20d);node=_20d.firstChild;while(_20d.firstChild){_20d.removeChild(_20d.firstChild);}}if(i==_20e-1){_1fb.place(node,_20c,_20a);}else{_20c.parentNode.insertBefore(node,_20c);}_20c=node;}},position:aam(_1fc.position),attr:awc(_202(_1fd),_1ff),style:awc(_202(_1fe),_1ff),addClass:aafe(_1fa.add),removeClass:aafe(_1fa.remove),toggleClass:aafe(_1fa.toggle),replaceClass:aafe(_1fa.replace),empty:aafe(_1fb.empty),removeAttr:aafe(_1fd.remove),marginBox:aam(_1fc.getMarginBox),place:function(_20f,_210){var item=_1f8(_20f)[0];return this.forEach(function(node){_1fb.place(node,item,_210);});},orphan:function(_211){return (_211?_1f8._filterResult(this,_211):this).forEach(_200);},adopt:function(_212,_213){return _1f8(_212).place(this[0],_213)._stash(this);},query:function(_214){if(!_214){return this;}var ret=new _201;this.map(function(node){_1f8(_214,node).forEach(function(_215){if(_215!==undefined){ret.push(_215);}});});return ret._stash(this);},filter:function(_216){var a=arguments,_217=this,_218=0;if(typeof _216=="string"){_217=_1f8._filterResult(this,a[0]);if(a.length==1){return _217._stash(this);}_218=1;}return this._wrap(_1f9.filter(_217,a[_218],a[_218+1]),this);},addContent:function(_219,_21a){_219=this._normalize(_219,this[0]);for(var i=0,node;(node=this[i]);i++){this._place(_219,node,_21a,i>0);}return this;}});return _201;});},"dojo/query":function(){define(["./_base/kernel","./has","./dom","./on","./_base/array","./_base/lang","./selector/_loader","./selector/_loader!default"],function(dojo,has,dom,on,_21b,lang,_21c,_21d){"use strict";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,_21e=_21b.forEach;var tnl=function(a,_21f,_220){var _221=new (_220||this._NodeListCtor||nl)(a);return _21f?_221._stash(_21f):_221;};var _222=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 _223=function(f,o){return function(){this.forEach(_222(f,arguments,o));return this;};};var _224=function(f,o){return function(){return this.map(_222(f,arguments,o));};};var _225=function(f,o){return function(){return this.filter(_222(f,arguments,o));};};var _226=function(f,g,o){return function(){var a=arguments,body=_222(f,a,o);if(g.call(o||dojo.global,a)){return this.map(body);}this.forEach(body);return this;};};var _227=function(_228){var _229=this instanceof nl&&has("array-extensible");if(typeof _228=="number"){_228=Array(_228);}var _22a=(_228&&"length" in _228)?_228:arguments;if(_229||!_22a.sort){var _22b=_229?this:[],l=_22b.length=_22a.length;for(var i=0;i0;};_23c.filter=_23a.filter||function(_240,_241,root){return _23c(_241,root).filter(function(node){return _21b.indexOf(_240,node)>-1;});};if(typeof _23a!="function"){var _242=_23a.search;_23a=function(_243,root){return _242(root||document,_243);};}return _23c;};var _236=_239(_21d,_227);dojo.query=_239(_21d,function(_244){return _227(_244);});_236.load=function(id,_245,_246){_21c.load(id,_245,function(_247){_246(_239(_247,_227));});};dojo._filterQueryResult=_236._filterResult=function(_248,_249,root){return new _227(_236.filter(_248,_249,root));};dojo.NodeList=_236.NodeList=_227;return _236;});},"dojo/has":function(){define(["require","module"],function(_24a,_24b){var has=_24a.has||function(){};if(!1){var _24c=typeof window!="undefined"&&typeof location!="undefined"&&typeof document!="undefined"&&window.location==location&&window.document==document,_24d=this,doc=_24c&&document,_24e=doc&&doc.createElement("DiV"),_24f=(_24b.config&&_24b.config())||{};has=function(name){return typeof _24f[name]=="function"?(_24f[name]=_24f[name](_24d,doc,_24e)):_24f[name];};has.cache=_24f;has.add=function(name,test,now,_250){(typeof _24f[name]=="undefined"||_250)&&(_24f[name]=test);return now&&has(name);};1||has.add("host-browser",_24c);1||has.add("dom",_24c);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);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(_251){_251.innerHTML="";return _251;};has.normalize=function(id,_252){var _253=id.match(/[\?:]|[^:\?]*/g),i=0,get=function(skip){var term=_253[i++];if(term==":"){return 0;}else{if(_253[i++]=="?"){if(!skip&&has(term)){return get();}else{get(true);return get(skip);}}return term||0;}};id=get();return id&&_252(id);};has.load=function(id,_254,_255){if(id){_254([id],_255);}else{_255();}};return has;});},"dojo/_base/loader":function(){define(["./kernel","../has","require","module","./json","./lang","./array"],function(dojo,has,_256,_257,json,lang,_258){if(!1){console.error("cannot load the Dojo v1.x loader with a foreign loader");return 0;}1||has.add("dojo-fast-sync-require",1);var _259=function(id){return {src:_257.id,id:id};},_25a=function(name){return name.replace(/\./g,"/");},_25b=/\/\/>>built/,_25c=[],_25d=[],_25e=function(mid,_25f,_260){_25c.push(_260);_258.forEach(mid.split(","),function(mid){var _261=_262(mid,_25f.module);_25d.push(_261);_263(_261);});_264();},_264=(1?function(){var _265,mid;for(mid in _266){_265=_266[mid];if(_265.noReqPluginCheck===undefined){_265.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(!_265.executed&&!_265.noReqPluginCheck&&_265.injected==_267){return;}}_268(function(){var _269=_25c;_25c=[];_258.forEach(_269,function(cb){cb(1);});});}:(function(){var _26a,_26b=function(m){_26a[m.mid]=1;for(var t,_26c,deps=m.deps||[],i=0;i=0;--j){_2ce=lin[j].prototype;if(!_2ce.hasOwnProperty("declaredClass")){_2ce.declaredClass="uniqName_"+(_2c5++);}name=_2ce.declaredClass;if(!_2cc.hasOwnProperty(name)){_2cc[name]={count:0,refs:[],cls:lin[j]};++_2cd;}rec=_2cc[name];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_2cb[0].refs.push(top);}while(_2cb.length){top=_2cb.pop();_2ca.push(top.cls);--_2cd;while(refs=top.refs,refs.length==1){top=refs[0];if(!top||--top.count){top=0;break;}_2ca.push(top.cls);--_2cd;}if(top){for(i=0,l=refs.length;i=0;--i){f=_2e8[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_2ea?_2ea[i]:a);}}f=this.postscript;if(f){f.apply(this,args);}};};function _2ec(ctor,_2ed){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _2eb(a);}if(_2ed){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 _2ee(_2ef){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _2eb(a);}for(;f=_2ef[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 _2f0(name,_2f1,_2f2){return function(){var b,m,f,i=0,step=1;if(_2f2){i=_2f1.length-1;step=-1;}for(;b=_2f1[i];i+=step){m=b._meta;f=(m?m.hidden:b.prototype)[name];if(f){f.apply(this,arguments);}}};};function _2f3(ctor){xtor.prototype=ctor.prototype;var t=new xtor;xtor.prototype=null;return t;};function _2eb(args){var ctor=args.callee,t=_2f3(ctor);ctor.apply(t,args);return t;};function _2e4(_2f4,_2f5,_2f6){if(typeof _2f4!="string"){_2f6=_2f5;_2f5=_2f4;_2f4="";}_2f6=_2f6||{};var _2f7,i,t,ctor,name,_2f8,_2f9,_2fa=1,_2fb=_2f5;if(opts.call(_2f5)=="[object Array]"){_2f8=_2c7(_2f5,_2f4);t=_2f8[0];_2fa=_2f8.length-t;_2f5=_2f8[_2fa];}else{_2f8=[0];if(_2f5){if(opts.call(_2f5)=="[object Function]"){t=_2f5._meta;_2f8=_2f8.concat(t?t.bases:_2f5);}else{err("base class is not a callable constructor.",_2f4);}}else{if(_2f5!==null){err("unknown base class. Did you use dojo.require to pull it in?",_2f4);}}}if(_2f5){for(i=_2fa-1;;--i){_2f7=_2f3(_2f5);if(!i){break;}t=_2f8[i];(t._meta?_2da:mix)(_2f7,t.prototype);ctor=new Function;ctor.superclass=_2f5;ctor.prototype=_2f7;_2f5=_2f7.constructor=ctor;}}else{_2f7={};}_2e4.safeMixin(_2f7,_2f6);t=_2f6.constructor;if(t!==op.constructor){t.nom=_2c6;_2f7.constructor=t;}for(i=_2fa-1;i;--i){t=_2f8[i]._meta;if(t&&t.chains){_2f9=mix(_2f9||{},t.chains);}}if(_2f7["-chains-"]){_2f9=mix(_2f9||{},_2f7["-chains-"]);}t=!_2f9||!_2f9.hasOwnProperty(_2c6);_2f8[0]=ctor=(_2f9&&_2f9.constructor==="manual")?_2ee(_2f8):(_2f8.length==1?_2ec(_2f6.constructor,t):_2e7(_2f8,t));ctor._meta={bases:_2f8,hidden:_2f6,chains:_2f9,parents:_2fb,ctor:_2f6.constructor};ctor.superclass=_2f5&&_2f5.prototype;ctor.extend=_2e2;ctor.createSubclass=_2e5;ctor.prototype=_2f7;_2f7.constructor=ctor;_2f7.getInherited=_2d5;_2f7.isInstanceOf=_2d8;_2f7.inherited=_2d7;_2f7.__inherited=_2cf;if(_2f4){_2f7.declaredClass=_2f4;lang.setObject(_2f4,ctor);}if(_2f9){for(name in _2f9){if(_2f7[name]&&typeof _2f9[name]=="string"&&name!=_2c6){t=_2f7[name]=_2f0(name,_2f8,_2f9[name]==="after");t.nom=name;}}}return ctor;};dojo.safeMixin=_2e4.safeMixin=_2de;dojo.declare=_2e4;return _2e4;});},"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 _2fc=doc||win.doc,te=id&&_2fc.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_2fc.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,_2fd){try{node=dom.byId(node);_2fd=dom.byId(_2fd);while(node){if(node==_2fd){return true;}node=node.parentNode;}}catch(e){}return false;};has.add("css-user-select",function(_2fe,doc,_2ff){if(!_2ff){return false;}var _300=_2ff.style;var _301=["Khtml","O","ms","Moz","Webkit"],i=_301.length,name="userSelect",_302;do{if(typeof _300[name]!=="undefined"){return name;}}while(i--&&(name=_301[i]+"UserSelect"));return false;});var _303=has("css-user-select");dom.setSelectable=_303?function(node,_304){dom.byId(node).style[_303]=_304?"":"none";}:function(node,_305){node=dom.byId(node);var _306=node.getElementsByTagName("*"),i=_306.length;if(_305){node.removeAttribute("unselectable");while(i--){_306[i].removeAttribute("unselectable");}}else{node.setAttribute("unselectable","on");while(i--){_306[i].setAttribute("unselectable","on");}}};return dom;});},"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;});},"dojo/selector/acme":function(){define(["../dom","../sniff","../_base/array","../_base/lang","../_base/window"],function(dom,has,_307,lang,win){var trim=lang.trim;var each=_307.forEach;var _308=function(){return win.doc;};var _309=(_308().compatMode)=="BackCompat";var _30a=">~+";var _30b=false;var _30c=function(){return true;};var _30d=function(_30e){if(_30a.indexOf(_30e.slice(-1))>=0){_30e+=" * ";}else{_30e+=" ";}var ts=function(s,e){return trim(_30e.slice(s,e));};var _30f=[];var _310=-1,_311=-1,_312=-1,_313=-1,_314=-1,inId=-1,_315=-1,_316,lc="",cc="",_317;var x=0,ql=_30e.length,_318=null,_319=null;var _31a=function(){if(_315>=0){var tv=(_315==x)?null:ts(_315,x);_318[(_30a.indexOf(tv)<0)?"tag":"oper"]=tv;_315=-1;}};var _31b=function(){if(inId>=0){_318.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _31c=function(){if(_314>=0){_318.classes.push(ts(_314+1,x).replace(/\\/g,""));_314=-1;}};var _31d=function(){_31b();_31a();_31c();};var _31e=function(){_31d();if(_313>=0){_318.pseudos.push({name:ts(_313+1,x)});}_318.loops=(_318.pseudos.length||_318.attrs.length||_318.classes.length);_318.oquery=_318.query=ts(_317,x);_318.otag=_318.tag=(_318["oper"])?null:(_318.tag||"*");if(_318.tag){_318.tag=_318.tag.toUpperCase();}if(_30f.length&&(_30f[_30f.length-1].oper)){_318.infixOper=_30f.pop();_318.query=_318.infixOper.query+" "+_318.query;}_30f.push(_318);_318=null;};for(;lc=cc,cc=_30e.charAt(x),x=0){if(cc=="]"){if(!_319.attr){_319.attr=ts(_310+1,x);}else{_319.matchFor=ts((_312||_310+1),x);}var cmf=_319.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_319.matchFor=cmf.slice(1,-1);}}if(_319.matchFor){_319.matchFor=_319.matchFor.replace(/\\/g,"");}_318.attrs.push(_319);_319=null;_310=_312=-1;}else{if(cc=="="){var _31f=("|~^$*".indexOf(lc)>=0)?lc:"";_319.type=_31f+cc;_319.attr=ts(_310+1,x-_31f.length);_312=x+1;}}}else{if(_311>=0){if(cc==")"){if(_313>=0){_319.value=ts(_311+1,x);}_313=_311=-1;}}else{if(cc=="#"){_31d();inId=x+1;}else{if(cc=="."){_31d();_314=x;}else{if(cc==":"){_31d();_313=x;}else{if(cc=="["){_31d();_310=x;_319={};}else{if(cc=="("){if(_313>=0){_319={name:ts(_313+1,x),value:null};_318.pseudos.push(_319);}_311=x;}else{if((cc==" ")&&(lc!=cc)){_31e();}}}}}}}}}return _30f;};var _320=function(_321,_322){if(!_321){return _322;}if(!_322){return _321;}return function(){return _321.apply(window,arguments)&&_322.apply(window,arguments);};};var _323=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _324=function(n){return (1==n.nodeType);};var _325="";var _326=function(elem,attr){if(!elem){return _325;}if(attr=="class"){return elem.className||_325;}if(attr=="for"){return elem.htmlFor||_325;}if(attr=="style"){return elem.style.cssText||_325;}return (_30b?elem.getAttribute(attr):elem.getAttribute(attr,2))||_325;};var _327={"*=":function(attr,_328){return function(elem){return (_326(elem,attr).indexOf(_328)>=0);};},"^=":function(attr,_329){return function(elem){return (_326(elem,attr).indexOf(_329)==0);};},"$=":function(attr,_32a){return function(elem){var ea=" "+_326(elem,attr);var _32b=ea.lastIndexOf(_32a);return _32b>-1&&(_32b==(ea.length-_32a.length));};},"~=":function(attr,_32c){var tval=" "+_32c+" ";return function(elem){var ea=" "+_326(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_32d){var _32e=_32d+"-";return function(elem){var ea=_326(elem,attr);return ((ea==_32d)||(ea.indexOf(_32e)==0));};},"=":function(attr,_32f){return function(elem){return (_326(elem,attr)==_32f);};}};var _330=(typeof _308().firstChild.nextElementSibling=="undefined");var _331=!_330?"nextElementSibling":"nextSibling";var _332=!_330?"previousElementSibling":"previousSibling";var _333=(_330?_324:_30c);var _334=function(node){while(node=node[_332]){if(_333(node)){return false;}}return true;};var _335=function(node){while(node=node[_331]){if(_333(node)){return false;}}return true;};var _336=function(node){var root=node.parentNode;root=root.nodeType!=7?root:root.nextSibling;var i=0,tret=root.children||root.childNodes,ci=(node["_i"]||node.getAttribute("_i")||-1),cl=(root["_l"]||(typeof root.getAttribute!=="undefined"?root.getAttribute("_l"):-1));if(!tret){return -1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return ci;}if(has("ie")&&typeof root.setAttribute!=="undefined"){root.setAttribute("_l",l);}else{root["_l"]=l;}ci=-1;for(var te=root["firstElementChild"]||root["firstChild"];te;te=te[_331]){if(_333(te)){if(has("ie")){te.setAttribute("_i",++i);}else{te["_i"]=++i;}if(node===te){ci=i;}}}return ci;};var _337=function(elem){return !((_336(elem))%2);};var _338=function(elem){return ((_336(elem))%2);};var _339={"checked":function(name,_33a){return function(elem){return !!("checked" in elem?elem.checked:elem.selected);};},"disabled":function(name,_33b){return function(elem){return elem.disabled;};},"enabled":function(name,_33c){return function(elem){return !elem.disabled;};},"first-child":function(){return _334;},"last-child":function(){return _335;},"only-child":function(name,_33d){return function(node){return _334(node)&&_335(node);};},"empty":function(name,_33e){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(name,_33f){var cz=_33f.charAt(0);if(cz=="\""||cz=="'"){_33f=_33f.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_33f)>=0);};},"not":function(name,_340){var p=_30d(_340)[0];var _341={el:1};if(p.tag!="*"){_341.tag=1;}if(!p.classes.length){_341.classes=1;}var ntf=_342(p,_341);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_343){var pi=parseInt;if(_343=="odd"){return _338;}else{if(_343=="even"){return _337;}}if(_343.indexOf("n")!=-1){var _344=_343.split("n",2);var pred=_344[0]?((_344[0]=="-")?-1:pi(_344[0])):1;var idx=_344[1]?pi(_344[1]):0;var lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return function(elem){var i=_336(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_343=idx;}}var _345=pi(_343);return function(elem){return (_336(elem)==_345);};}};var _346=(has("ie")<9||has("ie")==9&&has("quirks"))?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_30b?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _342=function(_347,_348){if(!_347){return _30c;}_348=_348||{};var ff=null;if(!("el" in _348)){ff=_320(ff,_324);}if(!("tag" in _348)){if(_347.tag!="*"){ff=_320(ff,function(elem){return (elem&&((_30b?elem.tagName:elem.tagName.toUpperCase())==_347.getTag()));});}}if(!("classes" in _348)){each(_347.classes,function(_349,idx,arr){var re=new RegExp("(?:^|\\s)"+_349+"(?:\\s|$)");ff=_320(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _348)){each(_347.pseudos,function(_34a){var pn=_34a.name;if(_339[pn]){ff=_320(ff,_339[pn](pn,_34a.value));}});}if(!("attrs" in _348)){each(_347.attrs,function(attr){var _34b;var a=attr.attr;if(attr.type&&_327[attr.type]){_34b=_327[attr.type](a,attr.matchFor);}else{if(a.length){_34b=_346(a);}}if(_34b){ff=_320(ff,_34b);}});}if(!("id" in _348)){if(_347.id){ff=_320(ff,function(elem){return (!!elem&&(elem.id==_347.id));});}}if(!ff){if(!("default" in _348)){ff=_30c;}}return ff;};var _34c=function(_34d){return function(node,ret,bag){while(node=node[_331]){if(_330&&(!_324(node))){continue;}if((!bag||_34e(node,bag))&&_34d(node)){ret.push(node);}break;}return ret;};};var _34f=function(_350){return function(root,ret,bag){var te=root[_331];while(te){if(_333(te)){if(bag&&!_34e(te,bag)){break;}if(_350(te)){ret.push(te);}}te=te[_331];}return ret;};};var _351=function(_352){_352=_352||_30c;return function(root,ret,bag){var te,x=0,tret=root.children||root.childNodes;while(te=tret[x++]){if(_333(te)&&(!bag||_34e(te,bag))&&(_352(te,x))){ret.push(te);}}return ret;};};var _353=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _354={};var _355=function(_356){var _357=_354[_356.query];if(_357){return _357;}var io=_356.infixOper;var oper=(io?io.oper:"");var _358=_342(_356,{el:1});var qt=_356.tag;var _359=("*"==qt);var ecs=_308()["getElementsByClassName"];if(!oper){if(_356.id){_358=(!_356.loops&&_359)?_30c:_342(_356,{el:1,id:1});_357=function(root,arr){var te=dom.byId(_356.id,(root.ownerDocument||root));if(!te||!_358(te)){return;}if(9==root.nodeType){return _323(te,arr);}else{if(_353(te,root)){return _323(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_356.classes.length&&!_309){_358=_342(_356,{el:1,classes:1,id:1});var _35a=_356.classes.join(" ");_357=function(root,arr,bag){var ret=_323(0,arr),te,x=0;var tret=root.getElementsByClassName(_35a);while((te=tret[x++])){if(_358(te,root)&&_34e(te,bag)){ret.push(te);}}return ret;};}else{if(!_359&&!_356.loops){_357=function(root,arr,bag){var ret=_323(0,arr),te,x=0;var tag=_356.getTag(),tret=tag?root.getElementsByTagName(tag):[];while((te=tret[x++])){if(_34e(te,bag)){ret.push(te);}}return ret;};}else{_358=_342(_356,{el:1,tag:1,id:1});_357=function(root,arr,bag){var ret=_323(0,arr),te,x=0;var tag=_356.getTag(),tret=tag?root.getElementsByTagName(tag):[];while((te=tret[x++])){if(_358(te,root)&&_34e(te,bag)){ret.push(te);}}return ret;};}}}}else{var _35b={el:1};if(_359){_35b.tag=1;}_358=_342(_356,_35b);if("+"==oper){_357=_34c(_358);}else{if("~"==oper){_357=_34f(_358);}else{if(">"==oper){_357=_351(_358);}}}}return _354[_356.query]=_357;};var _35c=function(root,_35d){var _35e=_323(root),qp,x,te,qpl=_35d.length,bag,ret;for(var i=0;i0){bag={};ret.nozip=true;}var gef=_355(qp);for(var j=0;(te=_35e[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_35e=ret;}return ret;};var _35f={},_360={};var _361=function(_362){var _363=_30d(trim(_362));if(_363.length==1){var tef=_355(_363[0]);return function(root){var r=tef(root,[]);if(r){r.nozip=true;}return r;};}return function(root){return _35c(root,_363);};};var _364=has("ie")?"commentStrip":"nozip";var qsa="querySelectorAll";var _365=!!_308()[qsa];var _366=/\\[>~+]|n\+\d|([^ \\])?([>~+])([^ =])?/g;var _367=function(_368,pre,ch,post){return ch?(pre?pre+" ":"")+ch+(post?" "+post:""):_368;};var _369=/([^[]*)([^\]]*])?/g;var _36a=function(_36b,_36c,att){return _36c.replace(_366,_367)+(att||"");};var _36d=function(_36e,_36f){_36e=_36e.replace(_369,_36a);if(_365){var _370=_360[_36e];if(_370&&!_36f){return _370;}}var _371=_35f[_36e];if(_371){return _371;}var qcz=_36e.charAt(0);var _372=(-1==_36e.indexOf(" "));if((_36e.indexOf("#")>=0)&&(_372)){_36f=true;}var _373=(_365&&(!_36f)&&(_30a.indexOf(qcz)==-1)&&(!has("ie")||(_36e.indexOf(":")==-1))&&(!(_309&&(_36e.indexOf(".")>=0)))&&(_36e.indexOf(":contains")==-1)&&(_36e.indexOf(":checked")==-1)&&(_36e.indexOf("|=")==-1));if(_373){var tq=(_30a.indexOf(_36e.charAt(_36e.length-1))>=0)?(_36e+" *"):_36e;return _360[_36e]=function(root){try{if(!((9==root.nodeType)||_372)){throw "";}var r=root[qsa](tq);r[_364]=true;return r;}catch(e){return _36d(_36e,true)(root);}};}else{var _374=_36e.match(/([^\s,](?:"(?:\\.|[^"])+"|'(?:\\.|[^'])+'|[^,])*)/g);return _35f[_36e]=((_374.length<2)?_361(_36e):function(root){var _375=0,ret=[],tp;while((tp=_374[_375++])){ret=ret.concat(_361(tp)(root));}return ret;});}};var _376=0;var _377=has("ie")?function(node){if(_30b){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_376)||_376);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_376));};var _34e=function(node,bag){if(!bag){return 1;}var id=_377(node);if(!bag[id]){return bag[id]=1;}return 0;};var _378="_zipIdx";var _379=function(arr){if(arr&&arr.nozip){return arr;}var ret=[];if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_376++;var x,te;if(has("ie")&&_30b){var _37a=_376+"";arr[0].setAttribute(_378,_37a);for(x=1;te=arr[x];x++){if(arr[x].getAttribute(_378)!=_37a){ret.push(te);}te.setAttribute(_378,_37a);}}else{if(has("ie")&&arr.commentStrip){try{for(x=1;te=arr[x];x++){if(_324(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_378]=_376;}for(x=1;te=arr[x];x++){if(arr[x][_378]!=_376){ret.push(te);}te[_378]=_376;}}}return ret;};var _37b=function(_37c,root){root=root||_308();var od=root.ownerDocument||root;_30b=(od.createElement("div").tagName==="div");var r=_36d(_37c)(root);if(r&&r.nozip){return r;}return _379(r);};_37b.filter=function(_37d,_37e,root){var _37f=[],_380=_30d(_37e),_381=(_380.length==1&&!/[^\w#\.]/.test(_37e))?_342(_380[0]):function(node){return _307.indexOf(_37b(_37e,dom.byId(root)),node)!=-1;};for(var x=0,te;te=_37d[x];x++){if(_381(te)){_37f.push(te);}}return _37f;};return _37b;});},"dojo/errors/RequestTimeoutError":function(){define("dojo/errors/RequestTimeoutError",["./create","./RequestError"],function(_382,_383){return _382("RequestTimeoutError",null,_383,{dojoType:"timeout"});});},"dojo/dom-style":function(){define("dojo/dom-style",["./sniff","./dom"],function(has,dom){var _384,_385={};if(has("webkit")){_384=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"))){_384=function(node){return node.nodeType==1&&node.currentStyle?node.currentStyle:{};};}else{_384=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}_385.getComputedStyle=_384;var _386;if(!has("ie")){_386=function(_387,_388){return parseFloat(_388)||0;};}else{_386=function(_389,_38a){if(!_38a){return 0;}if(_38a=="medium"){return 4;}if(_38a.slice&&_38a.slice(-2)=="px"){return parseFloat(_38a);}var s=_389.style,rs=_389.runtimeStyle,cs=_389.currentStyle,_38b=s.left,_38c=rs.left;rs.left=cs.left;try{s.left=_38a;_38a=s.pixelLeft;}catch(e){_38a=0;}s.left=_38b;rs.left=_38c;return _38a;};}_385.toPixelValue=_386;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};var _38d=has("ie")<9||(has("ie")<10&&has("quirks"))?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return _384(node).opacity;};var _38e=has("ie")<9||(has("ie")<10&&has("quirks"))?function(node,_38f){var ov=_38f*100,_390=_38f==1;node.style.zoom=_390?"":1;if(!af(node)){if(_390){return _38f;}node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_390;if(node.tagName.toLowerCase()=="tr"){for(var td=node.firstChild;td;td=td.nextSibling){if(td.tagName.toLowerCase()=="td"){_38e(td,_38f);}}}return _38f;}:function(node,_391){return node.style.opacity=_391;};var _392={left:true,top:true};var _393=/margin|padding|width|height|max|min|offset/;function _394(node,type,_395){type=type.toLowerCase();if(has("ie")){if(_395=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_395){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _392)){_392[type]=_393.test(type);}return _392[type]?_386(node,_395):_395;};var _396=has("ie")?"styleFloat":"cssFloat",_397={"cssFloat":_396,"styleFloat":_396,"float":_396};_385.get=function getStyle(node,name){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");if(l==2&&op){return _38d(n);}name=_397[name]||name;var s=_385.getComputedStyle(n);return (l==1)?s:_394(n,name,s[name]||n.style[name]);};_385.set=function setStyle(node,name,_398){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");name=_397[name]||name;if(l==3){return op?_38e(n,_398):n.style[name]=_398;}for(var x in name){_385.set(node,x,name[x]);}return _385.getComputedStyle(n);};return _385;});},"dojo/dom-geometry":function(){define(["./sniff","./_base/window","./dom","./dom-style"],function(has,win,dom,_399){var geom={};geom.boxModel="content-box";if(has("ie")){geom.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}geom.getPadExtents=function getPadExtents(node,_39a){node=dom.byId(node);var s=_39a||_399.getComputedStyle(node),px=_399.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,_39b){node=dom.byId(node);var px=_399.toPixelValue,s=_39b||_399.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,_39c){node=dom.byId(node);var s=_39c||_399.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,_39d){node=dom.byId(node);var s=_39d||_399.getComputedStyle(node),px=_399.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,_39e){node=dom.byId(node);var s=_39e||_399.getComputedStyle(node),me=geom.getMarginExtents(node,s),l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode,px=_399.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=_399.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=_399.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,_39f){node=dom.byId(node);var s=_39f||_399.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 _3a0(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 _3a1(node){return node.tagName.toLowerCase()=="button"||node.tagName.toLowerCase()=="input"&&(node.getAttribute("type")||"").toLowerCase()=="button";};function _3a2(node){return geom.boxModel=="border-box"||node.tagName.toLowerCase()=="table"||_3a1(node);};geom.setContentSize=function setContentSize(node,box,_3a3){node=dom.byId(node);var w=box.w,h=box.h;if(_3a2(node)){var pb=geom.getPadBorderExtents(node,_3a3);if(w>=0){w+=pb.w;}if(h>=0){h+=pb.h;}}_3a0(node,NaN,NaN,w,h);};var _3a4={l:0,t:0,w:0,h:0};geom.setMarginBox=function setMarginBox(node,box,_3a5){node=dom.byId(node);var s=_3a5||_399.getComputedStyle(node),w=box.w,h=box.h,pb=_3a2(node)?_3a4:geom.getPadBorderExtents(node,s),mb=geom.getMarginExtents(node,s);if(has("webkit")){if(_3a1(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);}_3a0(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(_3a6,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){_3a6+=de.clientLeft;}return (ie<8||qk)?(_3a6+de.clientWidth-de.scrollWidth):-_3a6;}return _3a6;};geom.position=function(node,_3a7){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 _3a8=geom.getIeDocumentElementOffset(node.ownerDocument);ret.x-=_3a8.x+(has("quirks")?db.clientLeft+db.offsetLeft:0);ret.y-=_3a8.y+(has("quirks")?db.clientTop+db.offsetTop:0);}if(_3a7){var _3a9=geom.docScroll(node.ownerDocument);ret.x+=_3a9.x;ret.y+=_3a9.y;}return ret;};geom.getMarginSize=function getMarginSize(node,_3aa){node=dom.byId(node);var me=geom.getMarginExtents(node,_3aa||_399.getComputedStyle(node));var size=node.getBoundingClientRect();return {w:(size.right-size.left)+me.w,h:(size.bottom-size.top)+me.h};};geom.normalizeEvent=function(_3ab){if(!("layerX" in _3ab)){_3ab.layerX=_3ab.offsetX;_3ab.layerY=_3ab.offsetY;}if(!has("dom-addeventlistener")){var se=_3ab.target;var doc=(se&&se.ownerDocument)||document;var _3ac=has("quirks")?doc.body:doc.documentElement;var _3ad=geom.getIeDocumentElementOffset(doc);_3ab.pageX=_3ab.clientX+geom.fixIeBiDiScrollLeft(_3ac.scrollLeft||0,doc)-_3ad.x;_3ab.pageY=_3ab.clientY+(_3ac.scrollTop||0)-_3ad.y;}};return geom;});},"dojo/dom-prop":function(){define(["exports","./_base/kernel","./sniff","./_base/lang","./dom","./dom-style","./dom-construct","./_base/connect"],function(_3ae,dojo,has,lang,dom,_3af,ctr,conn){var _3b0={},_3b1=0,_3b2=dojo._scopeName+"attrid";_3ae.names={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"};_3ae.get=function getProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_3b3=_3ae.names[lc]||name;return node[_3b3];};_3ae.set=function setProp(node,name,_3b4){node=dom.byId(node);var l=arguments.length;if(l==2&&typeof name!="string"){for(var x in name){_3ae.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_3b5=_3ae.names[lc]||name;if(_3b5=="style"&&typeof _3b4!="string"){_3af.set(node,_3b4);return node;}if(_3b5=="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(_3b4,node.ownerDocument));}else{node[_3b5]=_3b4;}return node;}if(lang.isFunction(_3b4)){var _3b6=node[_3b2];if(!_3b6){_3b6=_3b1++;node[_3b2]=_3b6;}if(!_3b0[_3b6]){_3b0[_3b6]={};}var h=_3b0[_3b6][_3b5];if(h){conn.disconnect(h);}else{try{delete node[_3b5];}catch(e){}}if(_3b4){_3b0[_3b6][_3b5]=conn.connect(node,_3b5,_3b4);}else{node[_3b5]=null;}return node;}node[_3b5]=_3b4;return node;};});},"dojo/when":function(){define(["./Deferred","./promise/Promise"],function(_3b7,_3b8){"use strict";return function when(_3b9,_3ba,_3bb,_3bc){var _3bd=_3b9&&typeof _3b9.then==="function";var _3be=_3bd&&_3b9 instanceof _3b8;if(!_3bd){if(_3ba){return _3ba(_3b9);}else{return new _3b7().resolve(_3b9);}}else{if(!_3be){var _3bf=new _3b7(_3b9.cancel);_3b9.then(_3bf.resolve,_3bf.reject,_3bf.progress);_3b9=_3bf.promise;}}if(_3ba||_3bb||_3bc){return _3b9.then(_3ba,_3bb,_3bc);}return _3b9;};});},"dojo/dom-attr":function(){define(["exports","./sniff","./_base/lang","./dom","./dom-style","./dom-prop"],function(_3c0,has,lang,dom,_3c1,prop){var _3c2={innerHTML:1,className:1,htmlFor:has("ie"),value:1},_3c3={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"};function _3c4(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified;};_3c0.has=function hasAttr(node,name){var lc=name.toLowerCase();return _3c2[prop.names[lc]||name]||_3c4(dom.byId(node),_3c3[lc]||name);};_3c0.get=function getAttr(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_3c5=prop.names[lc]||name,_3c6=_3c2[_3c5],_3c7=node[_3c5];if(_3c6&&typeof _3c7!="undefined"){return _3c7;}if(_3c5!="href"&&(typeof _3c7=="boolean"||lang.isFunction(_3c7))){return _3c7;}var _3c8=_3c3[lc]||name;return _3c4(node,_3c8)?node.getAttribute(_3c8):null;};_3c0.set=function setAttr(node,name,_3c9){node=dom.byId(node);if(arguments.length==2){for(var x in name){_3c0.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_3ca=prop.names[lc]||name,_3cb=_3c2[_3ca];if(_3ca=="style"&&typeof _3c9!="string"){_3c1.set(node,_3c9);return node;}if(_3cb||typeof _3c9=="boolean"||lang.isFunction(_3c9)){return prop.set(node,name,_3c9);}node.setAttribute(_3c3[lc]||name,_3c9);return node;};_3c0.remove=function removeAttr(node,name){dom.byId(node).removeAttribute(_3c3[name.toLowerCase()]||name);};_3c0.getNodeProp=function getNodeProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_3cc=prop.names[lc]||name;if((_3cc in node)&&_3cc!="href"){return node[_3cc];}var _3cd=_3c3[lc]||name;return _3c4(node,_3cd)?node.getAttribute(_3cd):null;};});},"dojo/dom-construct":function(){define(["exports","./_base/kernel","./sniff","./_base/window","./dom","./dom-attr","./on"],function(_3ce,dojo,has,win,dom,attr,on){var _3cf={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"]},_3d0=/<\s*([\w\:]+)/,_3d1={},_3d2=0,_3d3="__"+dojo._scopeName+"ToDomId";for(var _3d4 in _3cf){if(_3cf.hasOwnProperty(_3d4)){var tw=_3cf[_3d4];tw.pre=_3d4=="option"?"