[seam-commits] Seam SVN: r11007 - in branches/community/Seam_2_1/examples/tasks: resources/WEB-INF and 5 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Tue May 26 16:09:24 EDT 2009


Author: jharting
Date: 2009-05-26 16:09:24 -0400 (Tue, 26 May 2009)
New Revision: 11007

Added:
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java
   branches/community/Seam_2_1/examples/tasks/view/categories.js
   branches/community/Seam_2_1/examples/tasks/view/categories.xhtml
   branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
Removed:
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java
   branches/community/Seam_2_1/examples/tasks/view/contexts.js
   branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml
Modified:
   branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml
   branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml
   branches/community/Seam_2_1/examples/tasks/resources/import.sql
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java
   branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml
   branches/community/Seam_2_1/examples/tasks/view/resolved.js
   branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js
   branches/community/Seam_2_1/examples/tasks/view/style.css
   branches/community/Seam_2_1/examples/tasks/view/tasks.js
   branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml
   branches/community/Seam_2_1/examples/tasks/view/template.xhtml
Log:
seam tasks example - changed context -> category in order to distinguish between the Seam context and GTD context, placed jQuery locally

Modified: branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml	2009-05-26 20:09:24 UTC (rev 11007)
@@ -26,20 +26,22 @@
 
 	<framework:entity-home name="userHome"
 		entity-class="org.jboss.seam.example.tasks.entity.User" auto-create="true" />
+		
+	<framework:entity-home name="taskHome"
+		entity-class="org.jboss.seam.example.tasks.entity.Task" auto-create="true" />
 
-	<framework:entity-query name="contextQuery"
-		ejbql="select c from Context c">
+	<framework:entity-query name="categoryQuery"
+		ejbql="select c from Category c">
 		<framework:restrictions>
 			<value>c.owner.username =
 				#{user.username}</value>
 		</framework:restrictions>
 	</framework:entity-query>
 
-	<resteasy:resource-query name="contextResourceQuery"
-		entity-query="#{contextQuery}" path="/auth/context"
-		entity-class="org.jboss.seam.example.tasks.entity.Context"
-		media-types="application/xml application/json application/fastinfoset">
-	</resteasy:resource-query>
+	<resteasy:resource-query name="categoryResourceQuery"
+		entity-query="#{categoryQuery}" path="/auth/category"
+		entity-class="org.jboss.seam.example.tasks.entity.Category"
+		media-types="application/xml application/json application/fastinfoset"/>
 
 	<resteasy:application resource-path-prefix="/v1">
 		<resteasy:media-type-mappings>

Modified: branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml	2009-05-26 20:09:24 UTC (rev 11007)
@@ -14,7 +14,7 @@
 
 	<page view-id="/tasks.xhtml" login-required="true" />
 
-	<page view-id="/contexts.xhtml" login-required="true" />
+	<page view-id="/categories.xhtml" login-required="true" />
 
 	<page view-id="/resolved.xhtml" login-required="true" />
 

Modified: branches/community/Seam_2_1/examples/tasks/resources/import.sql
===================================================================
--- branches/community/Seam_2_1/examples/tasks/resources/import.sql	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/resources/import.sql	2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,24 +1,24 @@
 insert into User (username, password, admin) values ('demo', 'demo', false)
 insert into User (username, password, admin) values ('admin', 'password', true)
 
-insert into Context (id, name, owner_username) values (1, 'School', 'demo')
-	insert into Task (id, name, resolved, created, updated, context_id) values (2, 'Build the Turing machine', false, '2009-04-19 16:11:05', null, 1)
-	insert into Task (id, name, resolved, created, updated, context_id) values (3, 'Finish the RESTEasy-Seam integration example', false, '2009-04-19 16:11:05', null, 1)
-	insert into Task (id, name, resolved, created, updated, context_id) values (4, 'Learn new vocab for English conversations', false, '2009-04-19 16:11:05', null, 1)
-	insert into Task (id, name, resolved, created, updated, context_id) values (5, 'Prepare a presentation for webdesign seminar', false, '2009-04-19 16:11:05', null, 1)
+insert into Category (id, name, owner_username) values (1, 'School', 'demo')
+	insert into Task (id, name, resolved, created, updated, category_id) values (2, 'Build the Turing machine', false, '2009-04-19 16:11:05', null, 1)
+	insert into Task (id, name, resolved, created, updated, category_id) values (3, 'Finish the RESTEasy-Seam integration example', false, '2009-04-19 16:11:05', null, 1)
+	insert into Task (id, name, resolved, created, updated, category_id) values (4, 'Learn new vocab for English conversations', false, '2009-04-19 16:11:05', null, 1)
+	insert into Task (id, name, resolved, created, updated, category_id) values (5, 'Prepare a presentation for webdesign seminar', false, '2009-04-19 16:11:05', null, 1)
 
-insert into Context (id, name, owner_username) values (2, 'Work', 'demo')
-	insert into Task (id, name, resolved, created, updated, context_id) values (6, 'Pick up meal tickets', false, '2009-04-19 16:11:05', null, 2)
-insert into Context (id, name, owner_username) values (3, 'Buy', 'demo')
-	insert into Task (id, name, resolved, created, updated, context_id) values (7, 'Buy milk', false, '2009-04-19 16:11:05', null, 3)
-	insert into Task (id, name, resolved, created, updated, context_id) values (8, 'Buy an infinite tape', false, '2009-04-19 16:11:05', null, 3)
-	insert into Task (id, name, resolved, created, updated, context_id) values (9, 'Order books', false, '2009-04-19 16:11:05', null, 3)
-	insert into Task (id, name, resolved, created, updated, context_id) values (10, 'Buy a turtle', true, '2009-04-19 16:11:05', '2009-04-22 13:15:33', 3)
-insert into Context (id, name, owner_username) values (4, 'Other stuff', 'demo')
-	insert into Task (id, name, resolved, created, updated, context_id) values (11, 'Learn to fly', false, '2009-04-19 16:11:05', null, 4)
-	insert into Task (id, name, resolved, created, updated, context_id) values (12, 'Visit grandma', false, '2009-04-19 16:11:05', null, 4)
-	insert into Task (id, name, resolved, created, updated, context_id) values (13, 'Extend passport', false, '2009-04-19 16:11:05', null, 4)
-	insert into Task (id, name, resolved, created, updated, context_id) values (14, 'Get a haircut', false, '2009-04-19 16:11:05', null, 4)
+insert into Category (id, name, owner_username) values (2, 'Work', 'demo')
+	insert into Task (id, name, resolved, created, updated, category_id) values (6, 'Pick up meal tickets', false, '2009-04-19 16:11:05', null, 2)
+insert into Category (id, name, owner_username) values (3, 'Buy', 'demo')
+	insert into Task (id, name, resolved, created, updated, category_id) values (7, 'Buy milk', false, '2009-04-19 16:11:05', null, 3)
+	insert into Task (id, name, resolved, created, updated, category_id) values (8, 'Buy an infinite tape', false, '2009-04-19 16:11:05', null, 3)
+	insert into Task (id, name, resolved, created, updated, category_id) values (9, 'Order books', false, '2009-04-19 16:11:05', null, 3)
+	insert into Task (id, name, resolved, created, updated, category_id) values (10, 'Buy a turtle', true, '2009-04-19 16:11:05', '2009-04-22 13:15:33', 3)
+insert into Category (id, name, owner_username) values (4, 'Other stuff', 'demo')
+	insert into Task (id, name, resolved, created, updated, category_id) values (11, 'Learn to fly', false, '2009-04-19 16:11:05', null, 4)
+	insert into Task (id, name, resolved, created, updated, category_id) values (12, 'Visit grandma', false, '2009-04-19 16:11:05', null, 4)
+	insert into Task (id, name, resolved, created, updated, category_id) values (13, 'Extend passport', false, '2009-04-19 16:11:05', null, 4)
+	insert into Task (id, name, resolved, created, updated, category_id) values (14, 'Get a haircut', false, '2009-04-19 16:11:05', null, 4)
 
-insert into Context (id, name, owner_username) values (5, 'Administration', 'admin')
-insert into Task (id, name, resolved, created, updated, context_id) values (15, 'Ban demo user :-)', false, '2009-05-04 12:35:13', null, 5)
+insert into Category (id, name, owner_username) values (5, 'Administration', 'admin')
+insert into Task (id, name, resolved, created, updated, category_id) values (15, 'Ban demo user :-)', false, '2009-05-04 12:35:13', null, 5)

Copied: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java (from rev 10971, branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/ContextHome.java)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java	                        (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks;
+
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.example.tasks.entity.Category;
+import org.jboss.seam.framework.EntityHome;
+
+/**
+ * 
+ * @author Jozef Hartinger
+ *
+ */
+ at Name("categoryHome")
+ at AutoCreate
+public class CategoryHome extends EntityHome<Category>
+{
+
+   public Category findByUsernameAndCategory(String username, String category)
+   {
+      setInstance((Category) getEntityManager().createNamedQuery("categoryByNameAndUser").setParameter("username", username).setParameter("category", category).getSingleResult());
+      return getInstance();
+   }
+
+}


Property changes on: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java (from rev 10971, branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java	                        (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,116 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks.entity;
+
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.UniqueConstraint;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.hibernate.validator.NotNull;
+
+/**
+ * 
+ * @author Jozef Hartinger
+ *
+ */
+ at Entity
+ at XmlRootElement
+ at Table(uniqueConstraints = @UniqueConstraint(columnNames = { "NAME", "OWNER_USERNAME" }))
+ at NamedQuery(name = "categoryByNameAndUser", query = "select category from Category category where category.owner.username like :username and category.name like :category")
+public class Category
+{
+   private Long id;
+   private String name;
+   private List<Task> tasks;
+   private User owner;
+
+   public Category()
+   {
+   }
+
+   public Category(Long id, String name, List<Task> tasks, User owner)
+   {
+      this.id = id;
+      this.name = name;
+      this.tasks = tasks;
+      this.owner = owner;
+   }
+
+   @Id
+   @GeneratedValue
+   @XmlTransient
+   public Long getId()
+   {
+      return id;
+   }
+
+   public void setId(Long id)
+   {
+      this.id = id;
+   }
+
+   @NotNull
+   public String getName()
+   {
+      return name;
+   }
+
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+
+   @OneToMany(mappedBy = "category", cascade = CascadeType.REMOVE)
+   @XmlTransient
+   public List<Task> getTasks()
+   {
+      return tasks;
+   }
+
+   public void setTasks(List<Task> tasks)
+   {
+      this.tasks = tasks;
+   }
+
+   @ManyToOne
+   @XmlTransient
+   public User getOwner()
+   {
+      return owner;
+   }
+
+   public void setOwner(User owner)
+   {
+      this.owner = owner;
+   }
+
+}


Property changes on: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,116 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.entity;
-
-import java.util.List;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.UniqueConstraint;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
-import org.hibernate.validator.NotNull;
-
-/**
- * 
- * @author Jozef Hartinger
- *
- */
- at Entity
- at XmlRootElement
- at Table(uniqueConstraints = @UniqueConstraint(columnNames = { "NAME", "OWNER_USERNAME" }))
- at NamedQuery(name = "contextByNameAndUser", query = "select context from Context context where context.owner.username like :username and context.name like :context")
-public class Context
-{
-   private Long id;
-   private String name;
-   private List<Task> tasks;
-   private User owner;
-
-   public Context()
-   {
-   }
-
-   public Context(Long id, String name, List<Task> tasks, User owner)
-   {
-      this.id = id;
-      this.name = name;
-      this.tasks = tasks;
-      this.owner = owner;
-   }
-
-   @Id
-   @GeneratedValue
-   @XmlTransient
-   public Long getId()
-   {
-      return id;
-   }
-
-   public void setId(Long id)
-   {
-      this.id = id;
-   }
-
-   @NotNull
-   public String getName()
-   {
-      return name;
-   }
-
-   public void setName(String name)
-   {
-      this.name = name;
-   }
-
-   @OneToMany(mappedBy = "context", cascade = CascadeType.REMOVE)
-   @XmlTransient
-   public List<Task> getTasks()
-   {
-      return tasks;
-   }
-
-   public void setTasks(List<Task> tasks)
-   {
-      this.tasks = tasks;
-   }
-
-   @ManyToOne
-   @XmlTransient
-   public User getOwner()
-   {
-      return owner;
-   }
-
-   public void setOwner(User owner)
-   {
-      this.owner = owner;
-   }
-
-}

Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -44,7 +44,7 @@
  */
 @Entity
 @XmlRootElement
- at NamedQuery(name="taskByNameAndContext", query="select task from Task task where task.name like :task and task.context.id = :context")
+ at NamedQuery(name="taskByNameAndCategory", query="select task from Task task where task.name like :task and task.category.id = :category")
 public class Task
 {
    private Long id;
@@ -52,7 +52,7 @@
    private boolean resolved;
    private Date created;
    private Date updated;
-   private Context context;
+   private Category category;
 
    @Id
    @GeneratedValue
@@ -115,26 +115,26 @@
    @ManyToOne
    @XmlTransient
    @NotNull
-   public Context getContext()
+   public Category getCategory()
    {
-      return context;
+      return category;
    }
    
 
-   public void setContext(Context context)
+   public void setCategory(Category category)
    {
-      this.context = context;
+      this.category = category;
    }
    
    @Transient
-   @XmlElement(name="context")
-   public String getContextName() {
-      return context.getName();
+   @XmlElement(name="category")
+   public String getCategoryName() {
+      return category.getName();
    }
    
    @Transient
    public User getOwner() {
-      return context.getOwner();
+      return category.getOwner();
    }
    
 }

Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -42,7 +42,7 @@
 {
    private String username;
    private String password;
-   private List<Context> contexts;
+   private List<Category> categories;
    private boolean admin;
 
    @Id
@@ -69,14 +69,14 @@
 
    @OneToMany(mappedBy = "owner")
    @XmlTransient
-   public List<Context> getContexts()
+   public List<Category> getCategories()
    {
-      return contexts;
+      return categories;
    }
 
-   public void setContexts(List<Context> contexts)
+   public void setCategories(List<Category> categories)
    {
-      this.contexts = contexts;
+      this.categories = categories;
    }
 
    public boolean isAdmin()

Copied: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java (from rev 11006, branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java	                        (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks.resource;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.example.tasks.CategoryHome;
+import org.jboss.seam.example.tasks.entity.User;
+
+/**
+ * This resource demonstrates use of plain JAX-RS resource (no ResourceHome
+ * component) with Seam. It allows retrieving (GET), creating (PUT) and deleting
+ * (DELETE) of task categories. To create new category, simply send a PUT request
+ * without entity body to /auth/category/name where "name" is the name of
+ * category. Same path applies for retrieving and deleting of category.
+ * 
+ * @author Jozef Hartinger
+ * 
+ */
+
+ at Path("/auth/category/{category}")
+ at Name("categoryResource")
+ at Produces( { "application/xml", "application/json", "application/fastinfoset" })
+ at Consumes( { "application/xml", "application/json", "application/fastinfoset" })
+public class CategoryResource
+{
+   @In
+   private CategoryHome categoryHome;
+
+   @javax.ws.rs.core.Context
+   private UriInfo uriInfo;
+
+   @In
+   private User user;
+
+   @PathParam("category")
+   private String category;
+
+   @GET
+   public Response getCategory()
+   {
+      return Response.ok(categoryHome.findByUsernameAndCategory(user.getUsername(), category)).build();
+   }
+
+   @PUT
+   public Response putCategory()
+   {
+      categoryHome.getInstance().setName(category);
+      categoryHome.getInstance().setOwner(user);
+      // may cause exception if user already has a category with that name
+      // in that case the exception is handled by exception mapper
+      categoryHome.persist();
+      return Response.created(uriInfo.getAbsolutePath()).build();
+   }
+
+   @DELETE
+   public void deleteCategory()
+   {
+      categoryHome.findByUsernameAndCategory(user.getUsername(), category);
+      categoryHome.remove();
+   }
+}


Property changes on: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,91 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.resource;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.example.tasks.ContextHome;
-import org.jboss.seam.example.tasks.entity.User;
-
-/**
- * This resource demonstrates use of plain JAX-RS resource (no ResourceHome
- * component) with Seam. It allows retrieving (GET), creating (PUT) and deleting
- * (DELETE) of task contexts. To create new context, simply send a PUT request
- * without entity body to /auth/context/name where "name" is the name of
- * context. Same path applies for retrieving and deleting of context.
- * 
- * @author Jozef Hartinger
- * 
- */
-
- at Path("/auth/context/{context}")
- at Name("contextResource")
- at Produces( { "application/xml", "application/json", "application/fastinfoset" })
- at Consumes( { "application/xml", "application/json", "application/fastinfoset" })
-public class ContextResource
-{
-   @In
-   private ContextHome contextHome;
-
-   @javax.ws.rs.core.Context
-   private UriInfo uriInfo;
-
-   @In
-   private User user;
-
-   @PathParam("context")
-   private String context;
-
-   @GET
-   public Response getContext()
-   {
-      return Response.ok(contextHome.findByUsernameAndContext(user.getUsername(), context)).build();
-   }
-
-   @PUT
-   public Response putContext()
-   {
-      contextHome.getInstance().setName(context);
-      contextHome.getInstance().setOwner(user);
-      // may cause exception if user already has a Context with that name
-      // in that case the exception is handled by exception mapper
-      contextHome.persist();
-      return Response.created(uriInfo.getAbsolutePath()).build();
-   }
-
-   @DELETE
-   public void deleteContext()
-   {
-      contextHome.findByUsernameAndContext(user.getUsername(), context);
-      contextHome.remove();
-   }
-}

Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -69,7 +69,7 @@
    {
       super.create();
       List<String> restrictions = new ArrayList<String>();
-      restrictions.add("context.owner.username = #{username} AND resolved = true");
+      restrictions.add("category.owner.username = #{username} AND resolved = true");
       getEntityQuery().setRestrictionExpressionStrings(restrictions);
       getEntityQuery().setOrderColumn("updated");
       getEntityQuery().setOrderDirection("desc");

Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -31,11 +31,11 @@
 
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Name;
-import org.jboss.seam.example.tasks.ContextHome;
+import org.jboss.seam.example.tasks.CategoryHome;
 import org.jboss.seam.example.tasks.ResourceNotFoundException;
-import org.jboss.seam.example.tasks.TaskHome;
 import org.jboss.seam.example.tasks.entity.Task;
 import org.jboss.seam.example.tasks.entity.User;
+import org.jboss.seam.framework.EntityHome;
 import org.jboss.seam.framework.Home;
 import org.jboss.seam.resteasy.ResourceHome;
 
@@ -47,7 +47,7 @@
  * @author Jozef Hartinger
  * 
  */
- at Path("/auth/context/{context}/{status}")
+ at Path("/auth/category/{category}/{status}")
 @Name("taskResourceHome")
 public class TaskResourceHome extends ResourceHome<Task, Long>
 {
@@ -57,11 +57,11 @@
    @In
    private User user;
    @In
-   private ContextHome contextHome;
+   private CategoryHome categoryHome;
    @In
-   private TaskHome taskHome;
-   @PathParam("context")
-   private String contextName;
+   private EntityHome<Task> taskHome;
+   @PathParam("category")
+   private String categoryName;
 
    public TaskResourceHome()
    {
@@ -72,7 +72,7 @@
    public Task getEntity(Long id)
    {
       Task task = super.getEntity(id);
-      if (!task.getContext().getName().equals(contextName) || !task.getOwner().getUsername().equals(user.getUsername()))
+      if (!task.getCategory().getName().equals(categoryName) || !task.getOwner().getUsername().equals(user.getUsername()))
       {
          throw new ResourceNotFoundException("Task not found");
       }
@@ -98,7 +98,7 @@
    @Override
    public Long createEntity(Task entity)
    {
-      entity.setContext(contextHome.findByUsernameAndContext(user.getUsername(), contextName));
+      entity.setCategory(categoryHome.findByUsernameAndCategory(user.getUsername(), categoryName));
       entity.setResolved(false);
       entity.setCreated(new Date());
       return super.createEntity(entity);
@@ -108,7 +108,7 @@
    public void updateEntity(Task entity, Long id)
    {
       Task task = super.getEntity(id);
-      task.setContext(contextHome.findByUsernameAndContext(user.getUsername(), contextName));
+      task.setCategory(categoryHome.findByUsernameAndCategory(user.getUsername(), categoryName));
       task.setResolved(isResolved());
       if (entity.getName() != null)
       {

Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -35,21 +35,21 @@
 import org.jboss.seam.resteasy.ResourceQuery;
 
 /**
- * This class exposes two lists of tasks for every context. Unresolved tasks can
- * be obtained by sending HTTP GET request to context/{context}/unresolved URI.
- * To obtain a list of already resolved tasks, use context/{context}/resolved
+ * This class exposes two lists of tasks for every category. Unresolved tasks can
+ * be obtained by sending HTTP GET request to category/{category}/unresolved URI.
+ * To obtain a list of already resolved tasks, use category/{category}/resolved
  * URI.
  * 
  * @author Jozef Hartinger
  * 
  */
 @Name("taskResourceQuery")
- at Path("/auth/context/{context}/{status}")
+ at Path("/auth/category/{category}/{status}")
 public class TaskResourceQuery extends ResourceQuery<Task>
 {
 
-   @PathParam("context")
-   private String contextName;
+   @PathParam("category")
+   private String categoryName;
    @PathParam("status")
    private String taskStatus;
 
@@ -64,16 +64,16 @@
    {
       super.create();
       List<String> restrictions = new ArrayList<String>();
-      restrictions.add("context.name = #{contextName}");
+      restrictions.add("category.name = #{categoryName}");
       restrictions.add("resolved = #{taskStatus}");
-      restrictions.add("context.owner.username = #{user.username}");
+      restrictions.add("category.owner.username = #{user.username}");
       getEntityQuery().setRestrictionExpressionStrings(restrictions);
    }
 
-   @Factory("contextName")
-   public String getContextName()
+   @Factory("categoryName")
+   public String getCategoryName()
    {
-      return contextName;
+      return categoryName;
    }
 
    @Factory("taskStatus")

Copied: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java (from rev 11006, branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java	                        (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,167 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks.test;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.seam.resteasy.testfwk.ResourceSeamTest;
+import org.jboss.seam.resteasy.testfwk.MockHttpServletResponse;
+import org.jboss.seam.resteasy.testfwk.MockHttpServletRequest;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/**
+ * Test class for /category part of API
+ * @author Jozef Hartinger
+ *
+ */
+public class CategoryResourceTest extends ResourceSeamTest
+{
+   @DataProvider(name = "query")
+   public String[][] getQueryData()
+   {
+      return new String[][] { new String[] { "application/xml", "<category><name>School</name></category>" }, new String[] { "application/json", "{\"category\":{\"name\":\"School\"}}" } };
+   }
+
+   @Test(dataProvider = "query")
+   public void getCategoryListTest(final String contentType, final String expectedResponse) throws Exception
+   {
+      new ResourceRequest(Method.GET, "/v1/auth/category")
+      {
+
+         @Override
+         protected void prepareRequest(MockHttpServletRequest request)
+         {
+            super.prepareRequest(request);
+            request.addHeader("Accept", contentType);
+            request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
+         }
+
+         @Override
+         protected void onResponse(MockHttpServletResponse response)
+         {
+            super.onResponse(response);
+            assertEquals(response.getStatus(), 200, "Unexpected response code.");
+            assertTrue(response.getContentAsString().contains(expectedResponse), "Unexpected response.");
+         }
+
+      }.run();
+   }
+
+   @Test
+   public void deleteCategoryTest() throws Exception
+   {
+      new ResourceRequest(Method.DELETE, "/v1/auth/category/Work")
+      {
+
+         @Override
+         protected void prepareRequest(MockHttpServletRequest request)
+         {
+            super.prepareRequest(request);
+            request.addHeader("Accept", "application/xml");
+            request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
+         }
+
+         @Override
+         protected void onResponse(MockHttpServletResponse response)
+         {
+            super.onResponse(response);
+            assertEquals(response.getStatus(), 204, "Unexpected response code.");
+         }
+
+      }.run();
+   }
+
+   @Test
+   public void createCategoryTest() throws Exception
+   {
+      
+      final String uri = "/v1/auth/category/Test%20Category";
+      final String mimeType = "application/json";
+      final String expectedResponse = "{\"category\":{\"name\":\"Test Category\"}}";
+      
+      new ResourceRequest(Method.PUT, uri)
+      {
+
+         @Override
+         protected void prepareRequest(MockHttpServletRequest request)
+         {
+            super.prepareRequest(request);
+            request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
+         }
+
+         @Override
+         protected void onResponse(MockHttpServletResponse response)
+         {
+            super.onResponse(response);
+            assertEquals(response.getStatus(), 201, "Unexpected response code.");
+         }
+
+      }.run();
+
+      new ResourceRequest(Method.GET, uri)
+      {
+
+         @Override
+         protected void prepareRequest(MockHttpServletRequest request)
+         {
+            super.prepareRequest(request);
+            request.addHeader("Accept", mimeType);
+            request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
+         }
+
+         @Override
+         protected void onResponse(MockHttpServletResponse response)
+         {
+            super.onResponse(response);
+            assertEquals(response.getStatus(), 200, "Unexpected response code.");
+            assertEquals(response.getContentAsString(), expectedResponse, "Unexpected response.");
+         }
+
+      }.run();
+   }
+
+   @Test
+   public void noAuthorizationHeaderTest() throws Exception
+   {
+      new ResourceRequest(Method.GET, "/v1/auth/category")
+      {
+
+         @Override
+         protected void prepareRequest(MockHttpServletRequest request)
+         {
+            super.prepareRequest(request);
+            request.addHeader("Accept", "application/xml");
+         }
+
+         @Override
+         protected void onResponse(MockHttpServletResponse response)
+         {
+            super.onResponse(response);
+            assertEquals(response.getStatus(), 401, "Unexpected response code.");
+         }
+
+      }.run();
+   }
+
+}


Property changes on: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,168 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.test;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import org.jboss.seam.resteasy.testfwk.ResourceSeamTest;
-import org.jboss.seam.resteasy.testfwk.MockHttpServletResponse;
-import org.jboss.seam.resteasy.testfwk.MockHttpServletRequest;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-/**
- * Test class for /context part of API
- * @author Jozef Hartinger
- *
- */
-public class ContextResourceTest extends ResourceSeamTest
-{
-   @DataProvider(name = "query")
-   public String[][] getQueryData()
-   {
-      return new String[][] { new String[] { "application/xml", "<context><name>School</name></context>" }, new String[] { "application/json", "{\"context\":{\"name\":\"School\"}}" } };
-   }
-
-   @Test(dataProvider = "query")
-   public void getContextListTest(final String contentType, final String expectedResponse) throws Exception
-   {
-      new ResourceRequest(Method.GET, "/v1/auth/context")
-      {
-
-         @Override
-         protected void prepareRequest(MockHttpServletRequest request)
-         {
-            super.prepareRequest(request);
-            request.addHeader("Accept", contentType);
-            request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
-         }
-
-         @Override
-         protected void onResponse(MockHttpServletResponse response)
-         {
-            super.onResponse(response);
-            assertEquals(response.getStatus(), 200, "Unexpected response code.");
-            assertTrue(response.getContentAsString().contains(expectedResponse), "Unexpected response.");
-         }
-
-      }.run();
-   }
-
-   @Test
-   public void deleteContextTest() throws Exception
-   {
-      new ResourceRequest(Method.DELETE, "/v1/auth/context/Work")
-      {
-
-         @Override
-         protected void prepareRequest(MockHttpServletRequest request)
-         {
-            super.prepareRequest(request);
-            request.addHeader("Accept", "application/xml");
-            request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
-         }
-
-         @Override
-         protected void onResponse(MockHttpServletResponse response)
-         {
-            super.onResponse(response);
-            assertEquals(response.getStatus(), 204, "Unexpected response code.");
-         }
-
-      }.run();
-   }
-
-   @Test
-   public void createContextTest() throws Exception
-   {
-      
-      final String uri = "/v1/auth/context/Test%20Context";
-      final String mimeType = "application/json";
-      final String expectedResponse = "{\"context\":{\"name\":\"Test Context\"}}";
-      
-      new ResourceRequest(Method.PUT, uri)
-      {
-
-         @Override
-         protected void prepareRequest(MockHttpServletRequest request)
-         {
-            super.prepareRequest(request);
-            request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
-         }
-
-         @Override
-         protected void onResponse(MockHttpServletResponse response)
-         {
-            super.onResponse(response);
-            assertEquals(response.getStatus(), 201, "Unexpected response code.");
-         }
-
-      }.run();
-
-      new ResourceRequest(Method.GET, uri)
-      {
-
-         @Override
-         protected void prepareRequest(MockHttpServletRequest request)
-         {
-            super.prepareRequest(request);
-            request.addHeader("Accept", mimeType);
-            request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
-         }
-
-         @Override
-         protected void onResponse(MockHttpServletResponse response)
-         {
-            super.onResponse(response);
-            assertEquals(response.getStatus(), 200, "Unexpected response code.");
-            assertEquals(response.getContentAsString(), expectedResponse, "Unexpected response.");
-         }
-
-      }.run();
-   }
-
-   // @Test
-   // TODO uncomment once JBSEAM-4152 is resolved
-   public void noAuthorizationHeaderTest() throws Exception
-   {
-      new ResourceRequest(Method.GET, "/v1/auth/context")
-      {
-
-         @Override
-         protected void prepareRequest(MockHttpServletRequest request)
-         {
-            super.prepareRequest(request);
-            request.addHeader("Accept", "application/xml");
-         }
-
-         @Override
-         protected void onResponse(MockHttpServletResponse response)
-         {
-            super.onResponse(response);
-            assertEquals(response.getStatus(), 401, "Unexpected response code.");
-         }
-
-      }.run();
-   }
-
-}

Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -46,7 +46,7 @@
       final String mimeType = "application/xml";
       final String representation = "<task><id>14</id></task>";
       
-      new ResourceRequest(Method.PUT, "/v1/auth/context/School/resolved/14")
+      new ResourceRequest(Method.PUT, "/v1/auth/category/School/resolved/14")
       {
 
          @Override

Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -42,7 +42,7 @@
       final String mimeType = "application/json";
       final String representation = "{\"task\":{\"name\":\"Test task\"}}";
       
-      new ResourceRequest(Method.POST, "/v1/auth/context/School/unresolved")
+      new ResourceRequest(Method.POST, "/v1/auth/category/School/unresolved")
       {
          
          @Override
@@ -71,7 +71,7 @@
       final String mimeType = "application/xml";
       final String representation = "<task><id>4</id><name>Learn new English vocabulary</name></task>";
 
-      new ResourceRequest(Method.PUT, "/v1/auth/context/School/unresolved/4")
+      new ResourceRequest(Method.PUT, "/v1/auth/category/School/unresolved/4")
       {
 
          @Override
@@ -93,7 +93,7 @@
 
       }.run();
 
-      new ResourceRequest(Method.GET, "/v1/auth/context/School/unresolved/4")
+      new ResourceRequest(Method.GET, "/v1/auth/category/School/unresolved/4")
       {
 
          @Override
@@ -118,7 +118,7 @@
    @Test
    public void deleteTaskTest() throws Exception
    {
-      new ResourceRequest(Method.DELETE, "/v1/auth/context/School/unresolved/2")
+      new ResourceRequest(Method.DELETE, "/v1/auth/category/School/unresolved/2")
       {
          
          @Override

Deleted: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java	2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,48 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.test;
-
-import org.jboss.seam.annotations.Factory;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.example.tasks.entity.User;
-import org.jboss.seam.framework.EntityHome;
-
-/**
- * Ugly hack that allows the tests tu run until JBSEAM-4152 is resolved.
- * @author Jozef Hartinger
- *
- */
-
- at Name("userFactory")
-public class UserFactory
-{
-
-   @In private EntityHome<User> userHome;
-   
-   @Factory(autoCreate=true, value="user")
-   public User getDemo() {
-      userHome.setId("demo");
-      return userHome.find();
-   }
-   
-}

Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml	2009-05-26 20:09:24 UTC (rev 11007)
@@ -4,7 +4,7 @@
 
     <test name="Tasks">
         <classes>
-            <class name="org.jboss.seam.example.tasks.test.ContextResourceTest"/>
+            <class name="org.jboss.seam.example.tasks.test.CategoryResourceTest"/>
             <class name="org.jboss.seam.example.tasks.test.TaskResourceTest"/>
             <class name="org.jboss.seam.example.tasks.test.ResolvedTaskResourceQueryTest"/>
         </classes>

Copied: branches/community/Seam_2_1/examples/tasks/view/categories.js (from rev 11006, branches/community/Seam_2_1/examples/tasks/view/contexts.js)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/categories.js	                        (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/view/categories.js	2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,30 @@
+$(document).ready(function() {
+	// load category list
+	getCategories(function(data) {
+		$(data).find('category').each(function() {
+			var categoryName = $(this).find('name').text();
+			addCategory(categoryName);
+	 	});
+	});
+	// create new category on submit
+	$('#editCategorySubmit').click(function(event) {
+		event.preventDefault();
+		var categoryName = $('#editCategoryName').attr('value');
+		putCategory(categoryName, function() {
+			addCategory(categoryName);
+			$('#editCategoryName').attr('value', '');
+		});
+	});
+});
+
+function addCategory(categoryName) {
+	var nameCell = $('<td/>').addClass('name').text(categoryName);
+	var deleteButton = $('<img/>').attr('src', 'img/task-delete.png').attr('title', 'Delete this category').click(function(event) {
+		event.preventDefault();
+		deleteCategory(categoryName, function() {
+			$('[id=' + categoryName + ']').remove();
+		});
+	});
+	var buttonCell = $('<td/>').append(deleteButton);
+	$('<tr/>').attr('id', categoryName).append(buttonCell).append(nameCell).appendTo('#categories tbody');
+}
\ No newline at end of file


Property changes on: branches/community/Seam_2_1/examples/tasks/view/categories.js
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: branches/community/Seam_2_1/examples/tasks/view/categories.xhtml (from rev 11006, branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/categories.xhtml	                        (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/view/categories.xhtml	2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core" template="template.xhtml">
+
+    <ui:define name="head">
+        <script src="categories.js" type="text/javascript" />
+    </ui:define>
+    <ui:define name="body">
+        <table id="categories">
+            <thead>
+                <tr><td colspan="2"><h2>Categories</h2></td></tr>
+            </thead>
+            <tbody/>
+        </table>
+
+        <hr />
+        
+        <form action="" id="newCategoryForm">
+            <h2>Care for a new category?</h2>
+            <input id="editCategoryName" type="text" />
+            <input id="editCategorySubmit" type="button" value="Create" />
+        </form>
+    </ui:define>
+</ui:composition>
\ No newline at end of file


Property changes on: branches/community/Seam_2_1/examples/tasks/view/categories.xhtml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: branches/community/Seam_2_1/examples/tasks/view/contexts.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/contexts.js	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/contexts.js	2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,30 +0,0 @@
-$(document).ready(function() {
-	// load context list
-	getContexts(function(data) {
-		$(data).find('context').each(function() {
-			var contextName = $(this).find('name').text();
-			addContext(contextName);
-	 	});
-	});
-	// create new context on submit
-	$('#editContextSubmit').click(function(event) {
-		event.preventDefault();
-		var contextName = $('#editContextName').attr('value');
-		putContext(contextName, function() {
-			addContext(contextName);
-			$('#editContextName').attr('value', '');
-		});
-	});
-});
-
-function addContext(contextName) {
-	var nameCell = $('<td/>').addClass('name').text(contextName);
-	var deleteButton = $('<img/>').attr('src', 'img/task-delete.png').attr('title', 'Delete this context').click(function(event) {
-		event.preventDefault();
-		deleteContext(contextName, function() {
-			$('#' + contextName).remove();
-		});
-	});
-	var buttonCell = $('<td/>').append(deleteButton);
-	$('<tr/>').attr('id', contextName).append(buttonCell).append(nameCell).appendTo('#contexts tbody');
-}
\ No newline at end of file

Deleted: branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml	2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:ui="http://java.sun.com/jsf/facelets"
-                xmlns:h="http://java.sun.com/jsf/html"
-                xmlns:f="http://java.sun.com/jsf/core" template="template.xhtml">
-
-    <ui:define name="head">
-        <script src="contexts.js" type="text/javascript" />
-    </ui:define>
-    <ui:define name="body">
-        <table id="contexts">
-            <thead>
-                <tr><td colspan="2"><h2>Contexts</h2></td></tr>
-            </thead>
-            <tbody/>
-        </table>
-
-        <hr />
-        
-        <form action="" id="newContextForm">
-            <h2>Care for a new context?</h2>
-            <input id="editContextName" type="text" />
-            <input id="editContextSubmit" type="button" value="Create" />
-        </form>
-    </ui:define>
-</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js	                        (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js	2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(!
 H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(fun!
 ction(){var G=this;while(G.firstChild){G=G.firstChild}return G}).appen
d(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.no!
 CloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pu!
 shStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,thi
s)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.!
 makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;functi!
 on K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getEl
ementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"}!
 ,isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?!
 I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),fun
ction(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}ret!
 urn o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("di!
 v");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return
}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.le!
 ngth){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}!
 if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.spe
cified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}!
 return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){retu!
 rn o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"n
extSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeo!
 f E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"q!
 ueue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(
H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ *  Copyright 2009, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)!
 }if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){!
 if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if
(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{!
 "class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementByI!
 d!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NA
ME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}ret!
 urn X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"sub!
 mit"===T.type},image:function(T){return"image"===T.type},reset:functio
n(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}!
 }return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var !
 M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].sourc
e+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplic!
 ate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undef!
 ined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=func
tion(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;f!
 or(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.!
 match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.rela
tive[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);!
 H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort(!
 ).join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for
(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)!
 }if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaK!
 ey newValue originalTarget pageX pageY prevValue relatedNode relatedTa
rget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},s!
 pecial:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagatio!
 nStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.
relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}r!
 eturn this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/!
 \./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyLi
st:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,e!
 rror").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.st!
 yle.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noClo
neEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.s!
 lice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o!
 .fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:fu
nction(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.dat!
 a=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.h!
 ost)){var H=document.getElementsByTagName("head")[0];var T=document.cr
eateElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState!
 ==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxSt!
 op")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,
G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunctio!
 n(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G]!
 ,"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F
;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cu!
 r(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};retur!
 n E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H
,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n)!
 ;n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.e!
 lem)}return false}else{var J=G-this.startTime;this.state=J/this.option
s.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this!
 [0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{to!
 p:N,left:I}}}o.offset={initialize:function(){if(this.initialized){retu
rn}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:functi!
 on(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||th!
 is[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&docum
ent.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
\ No newline at end of file


Property changes on: branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: branches/community/Seam_2_1/examples/tasks/view/resolved.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/resolved.js	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/resolved.js	2009-05-26 20:09:24 UTC (rev 11007)
@@ -45,7 +45,7 @@
 function addTask(task) {
 	var taskId = $(task).find('id').text();
 	var taskName = $(task).find('name').text();
-	var contextName = $(task).find('context').text();
+	var categoryName = $(task).find('category').text();
 	var taskCompleted = $(task).find('completed').text();
 	
 	var parent = $('#tasks tbody');
@@ -53,13 +53,13 @@
 	var completedCell = $('<td/>').addClass('completed').text(taskCompleted);
 	var undoButton = $('<img/>').attr('src', 'img/task-undo.png').attr('title', 'Undo this task').click(function(event) {
 		event.preventDefault();
-		putTask(contextName, taskId, taskName, false, function() {
+		putTask(categoryName, taskId, taskName, false, function() {
 			$('#' + taskId).remove();
 		});
 	});
 	var deleteButton = $('<img/>').attr('src', 'img/task-delete.png').attr('title', 'Delete this task').click(function(event) {
 		event.preventDefault();
-		deleteTask(contextName, taskId, true, function() {
+		deleteTask(categoryName, taskId, true, function() {
 			$('#' + taskId).remove();
 		});
 	});

Modified: branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js	2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,31 +1,31 @@
-function getContexts(callback) {
-	$.get("seam/resource/v1/auth/context", callback);
+function getCategories(callback) {
+	$.get("seam/resource/v1/auth/category", callback);
 }
 
-function putContext(contextName, callback) {
+function putCategory(categoryName, callback) {
 	$.ajax({
 		type: "PUT",
-		url: "seam/resource/v1/auth/context/" + contextName,
+		url: "seam/resource/v1/auth/category/" + categoryName,
 		contentType: "application/xml",
 		success: callback
 	});
 }
 
-function deleteContext(contextName, callback) {
+function deleteCategory(categoryName, callback) {
 	$.ajax({
 		type: "DELETE",
-		url: "seam/resource/v1/auth/context/" + contextName,
+		url: "seam/resource/v1/auth/category/" + categoryName,
 		success: callback
 	});
 }
 
-function getTask(contextName, taskId, taskDone, callback) {
-	var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ? "/resolved" : "/unresolved"));
+function getTask(categoryName, taskId, taskDone, callback) {
+	var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone ? "/resolved" : "/unresolved"));
 	$.get(URI, callback);
 }
 
-function getTasksForContext(contextName, taskDone, callback) {
-	var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ? "/resolved" : "/unresolved"));
+function getTasksForCategory(categoryName, taskDone, callback) {
+	var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone ? "/resolved" : "/unresolved"));
 	$.get(URI, function(data) {
 		callback(data);
 	});
@@ -39,14 +39,13 @@
 	});
 }
 
-function postTask(contextName, taskName, callback) {
-	var URI = escape("seam/resource/v1/auth/context/" + contextName + "/unresolved");
+function postTask(categoryName, taskName, callback) {
+	var URI = escape("seam/resource/v1/auth/category/" + categoryName + "/unresolved");
 	var data = '<task><name>' + taskName + '</name></task>';
 	var request = $.ajax({
 		type: "POST",
 		url: URI,
 		contentType: "application/xml",
-		dataType: "application/xml",
 		data: data,
 		success: function() {
 			callback(request.getResponseHeader('Location'));
@@ -54,8 +53,8 @@
 	});
 }
 
-function putTask(contextName, taskId, taskName, taskDone, callback) {
-	var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ? "/resolved/" : "/unresolved/") + taskId);
+function putTask(categoryName, taskId, taskName, taskDone, callback) {
+	var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone ? "/resolved/" : "/unresolved/") + taskId);
 	var data = '<task><id>' + taskId + '</id><name>' + taskName + '</name></task>'
 	$.ajax({
 		type: "PUT",
@@ -68,12 +67,11 @@
 	});
 }
 
-function deleteTask(contextName, taskId, taskDone, callback) {
-	var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ? "/resolved/" : "/unresolved/") + taskId);
+function deleteTask(categoryName, taskId, taskDone, callback) {
+	var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone ? "/resolved/" : "/unresolved/") + taskId);
 	$.ajax({
 		type: "DELETE",
 		url: URI,
-		dataType: "application/xml",
 		success: callback
 	});
 }
\ No newline at end of file

Modified: branches/community/Seam_2_1/examples/tasks/view/style.css
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/style.css	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/style.css	2009-05-26 20:09:24 UTC (rev 11007)
@@ -84,10 +84,10 @@
 }
 
 #rightPanel {
-	width: 280px;
-	margin-top: 30px;
-	margin-right: 20px;
+	width: 270px;
+	margin: 30px 30px 0px 0px;
 	float: right;
+	text-align: justify;
 }
 
 table td.name {
@@ -102,7 +102,7 @@
     color: #899ea6;
 }
 
-#newTask, #newContextForm {
+#newTask, #newCategoryForm {
     margin: 10px 20px 10px 20px;
 }
 

Modified: branches/community/Seam_2_1/examples/tasks/view/tasks.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/tasks.js	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/tasks.js	2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,37 +1,37 @@
 $(document).ready(function() {
-	printContexts();
+	printCategories();
 	$('#editTaskSubmit').click(function() {
 		var name = $('#editTaskName').val();
-		var contextName = $('#editTaskContext').val()
-		postTask(contextName, name, function(location) {
+		var categoryName = $('#editTaskCategory').val()
+		postTask(categoryName, name, function(location) {
 			$('#editTaskName').val('');
 			$.get(location, function(data) {
-				addTask($(data).find('task'), contextName);
+				addTask($(data).find('task'), categoryName);
 			});
 		});
 	});
 });
 
-function showTaskEditForm(contextName, taskId) {
-	var contexts = $('#editTaskContext').clone();
-	$(contexts).find('[value=' + contextName + ']').attr('selected', 'selected');
+function showTaskEditForm(categoryName, taskId) {
+	var categories = $('#editTaskCategory').clone();
+	$(categories).find('[value=' + categoryName + ']').attr('selected', 'selected');
 	var taskName = $('#' + taskId + " .name").text();
 	var name = $('<input/>').attr('type', 'text').addClass('nameField').val(taskName);
 	
 	var update = $('<input/>').attr('type', 'button').attr('id', 'update').val('Update').click(function() {
-		var newContextName = $(contexts).val();
+		var newCategoryName = $(categories).val();
 		var callback = function(data) {
 			removeTaskEditForm(taskId, taskName);
-				if (contextName == newContextName) {
+				if (categoryName == newCategoryName) {
 					updateTaskNameOnUI(taskId, data); // just update the name
 				} else {
-					$('#' + taskId).remove(); // add the task into new context
-					addTask(data, newContextName);
+					$('#' + taskId).remove(); // add the task into new category
+					addTask(data, newCategoryName);
 				}
 		}
-		putTask(newContextName, taskId, $(name).val(), false, callback);
+		putTask(newCategoryName, taskId, $(name).val(), false, callback);
 	});
-	var form = $('<form/>').attr('id', 'updateTask').append(contexts).append(name).append(update);
+	var form = $('<form/>').attr('id', 'updateTask').append(categories).append(name).append(update);
 	$('#' + taskId + ' .name').replaceWith(form);
 }
 
@@ -39,56 +39,56 @@
 	$('#' + taskId + ' form').replaceWith($('<span/>').addClass('name').text(taskName));
 }
 
-function printContexts() {
-	getContexts(function(data) {
- 	   $(data).find('context').each(function() {
- 		   addContext($(this));
+function printCategories() {
+	getCategories(function(data) {
+ 	   $(data).find('category').each(function() {
+ 		   addCategory($(this));
  	   });
 	});
 }
 
-function addContext(context) {
-	var contextName = $(context).find('name').text();
-	var escapedContextName = escape(contextName);
-	var contextCell = $('<td/>').attr('colspan', '2').addClass('name').text(contextName);
-	var contextRow = $('<tr/>').attr('id', contextName).append(contextCell);
-	$('#contexts tbody').append(contextRow).appendTo('#contexts');
-	$('<option/>').attr('value', contextName).text(contextName).appendTo('#editTaskContext');
-	getTasksForContext(contextName, false, function(data) {
+function addCategory(category) {
+	var categoryName = $(category).find('name').text();
+	var escapedCategoryName = escape(categoryName);
+	var categoryCell = $('<td/>').attr('colspan', '2').addClass('name').text(categoryName);
+	var categoryRow = $('<tr/>').attr('id', categoryName).append(categoryCell);
+	$('#categories tbody').append(categoryRow).appendTo('#categories');
+	$('<option/>').attr('value', categoryName).text(categoryName).appendTo('#editTaskCategory');
+	getTasksForCategory(categoryName, false, function(data) {
 		$(data).find('task').each(function() {
-			addTask($(this), contextName);
+			addTask($(this), categoryName);
 	 	});
 	});
 }
 
-function addTask(task, contextName) {
+function addTask(task, categoryName) {
 	var taskId = $(task).find('id').text();
 	var taskName = $(task).find('name').text();
 	
-	var parent = $('[id=' + contextName + ']');
+	var parent = $('[id=' + categoryName + ']');
 	var nameCell = $('<td/>').append($('<span/>').addClass('name').text(taskName));
 	var doneButton = $('<img/>').attr('src', 'img/task-done.png').attr('title', 'Resolve this task').click(function(event) {
 		event.preventDefault();
-		putTask(contextName, taskId, taskName, true, function() {
+		putTask(categoryName, taskId, taskName, true, function() {
 			$('#' + taskId).remove();
 		});
 	});
 	var editButton = $('<img/>').attr('src', 'img/task-edit.png').attr('title', 'Edit this task').click(function(event) {
 		event.preventDefault();
 		if ($('#' + taskId + ' #updateTask').size() == 0) {
-			showTaskEditForm(contextName, taskId);
+			showTaskEditForm(categoryName, taskId);
 		} else {
 			removeTaskEditForm(taskId, taskName);
 		}
 	});
 	var deleteButton = $('<img/>').attr('src', 'img/task-delete.png').attr('title', 'Delete this task').click(function(event) {
 		event.preventDefault();
-		deleteTask(contextName, taskId, false, function() {
+		deleteTask(categoryName, taskId, false, function() {
 			$('#' + taskId).remove();
 		});
 	});
 	var buttonCell = $('<td/>').append(doneButton).append(editButton).append(deleteButton);
-	$('<tr/>').attr('id', taskId).append(buttonCell).append(nameCell).insertAfter('[id=' + contextName + ']');
+	$('<tr/>').attr('id', taskId).append(buttonCell).append(nameCell).insertAfter('[id=' + categoryName + ']');
 }
 
 function updateTaskNameOnUI(taskId, task) {

Modified: branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml	2009-05-26 20:09:24 UTC (rev 11007)
@@ -11,7 +11,7 @@
     </ui:define>
 
     <ui:define name="body">
-        <table id="contexts">
+        <table id="categories">
             <thead>
                 <tr>
                     <td colspan="2"><h2>Yet, unresolved tasks.</h2></td>
@@ -22,7 +22,7 @@
         <hr/>
         <form id="newTask">
             <h2>Create new task</h2>
-            <select id="editTaskContext" /> <input id="editTaskName" type="text" />
+            <select id="editTaskCategory" /> <input id="editTaskName" type="text" />
             <input id="editTaskSubmit" type="button" value="Create" />
         </form>
     </ui:define>

Modified: branches/community/Seam_2_1/examples/tasks/view/template.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/template.xhtml	2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/template.xhtml	2009-05-26 20:09:24 UTC (rev 11007)
@@ -9,9 +9,7 @@
         <head>
             <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
             <title>Seam Tasks</title>
-            <script
-                src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"
-                type="text/javascript" />
+            <script src="jquery-1.3.2.min.js" type="text/javascript" />
             <script src="seam-tasks-client.js" type="text/javascript" />
             <link href="style.css" rel="stylesheet" type="text/css" />
             <ui:insert name="head" />
@@ -23,7 +21,7 @@
                     <s:div rendered="#{identity.loggedIn}">
 	                    <ul id="menu">
 	                        <li><a href="tasks.seam">Tasks</a></li>
-	                        <li><a href="contexts.seam">Contexts</a></li>
+	                        <li><a href="categories.seam">Categories</a></li>
 	                        <li><a href="resolved.seam">Resolved tasks</a></li>
 	                        <li>
 	                            <s:link id="menuLogoutId" action="#{identity.logout}" value="Logout" propagation="none" />




More information about the seam-commits mailing list