Kawai Wiki

Compare Revisions

Ignore whitespace Rev 166 → Rev 173

/tags/kawai-1.0.1/src/main/java/org/kawai/model/Preview.java
New file
0,0 → 1,127
package org.kawai.model;
 
import java.util.Date;
 
public class Preview {
private int id;
private int userId;
private User user;
private String name;
private int languageId;
private String title;
private String body;
private Date createdOn;
private boolean isNew;
private boolean isSystemPage;
private String comment;
public Preview() { }
 
public int getId() {
return id;
}
 
public void setId(int id) {
this.id = id;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getComment() {
return comment;
}
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
 
public int getUserId() {
return userId;
}
 
public void setUserId(int userId) {
this.userId = userId;
}
 
public Date getCreatedOn() {
return createdOn;
}
 
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
 
public String getTitle() {
return title;
}
 
public void setTitle(String title) {
this.title = title;
}
 
public String getBody() {
return body;
}
 
public void setBody(String body) {
this.body = body;
}
 
public String getName() {
return name;
}
 
public void setName(String name) {
this.name = name;
}
 
public int getLanguageId() {
return languageId;
}
 
public void setLanguageId(int languageId) {
this.languageId = languageId;
}
public void setNew(boolean b) {
this.isNew = b;
}
public boolean isNew() {
return isNew;
}
public void setSystemPage(boolean b) {
this.isSystemPage = b;
}
public boolean isSystemPage() {
return isSystemPage;
}
public Page getPage() {
Page p = new Page();
p.setId(-1);
p.setName(name);
p.setLanguageId(languageId);
p.setTitle(title);
p.setBody(body);
p.setDeleted(false);
p.setCreatedById(userId);
p.setCreatedBy(user);
p.setCreatedOn(createdOn);
p.setPreview(true);
p.setNew(isNew);
p.setSystemPage(isSystemPage);
p.setComment(comment);
return p;
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/model/Language.java
New file
0,0 → 1,122
package org.kawai.model;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
 
import org.mentawai.list.ListData;
import org.mentawai.list.SimpleListData;
 
public class Language {
 
private static final List<Language> LANGUAGES = new ArrayList<Language>(16);
private final int id;
private final String name;
private final Locale loc;
private final String imageFile;
 
public Language(int code, String name, String locale, String imageFile) {
this.id = code;
this.name = name;
this.loc = getLocaleFromString(locale);
this.imageFile = imageFile;
}
public Language(int code, String name, String locale) {
this(code, name, locale, null);
}
public static void add(Language language) {
LANGUAGES.add(language);
}
public static Language getDefault() {
if (LANGUAGES.isEmpty()) throw new IllegalStateException("No languages were defined!");
return LANGUAGES.get(0);
}
 
public int getId() {
return id;
}
public String getName() {
return name;
}
public Locale getLocale() {
return loc;
}
public String getImageFile() {
return imageFile;
}
@Override
public String toString() {
return name;
}
public static ListData getListData() {
SimpleListData list = new SimpleListData("languages");
for(Language l : LANGUAGES) {
list.add(l.getId(), l.getName());
}
return list;
}
public static Language fromId(int id) {
for(Language l : LANGUAGES) {
if (l.getId() == id) return l;
}
return null;
}
public static Language fromLocale(Locale loc) {
if (loc == null) return null;
for(Language l : LANGUAGES) {
if (l.getLocale().equals(loc)) return l;
}
for(Language l : LANGUAGES) {
if (l.getLocale().getLanguage().equals(loc.getLanguage())) {
return l;
}
}
return null;
}
public static Language fromLocale(String s) {
if (s == null) return null;
Locale loc = getLocaleFromString(s);
return fromLocale(loc);
}
public static Language fromName(String name) {
if (name == null) return null;
for(Language l : LANGUAGES) {
if (l.getName().equalsIgnoreCase(name)) return l;
}
return null;
}
public static Locale getLocaleFromString(String s) {
if (s == null) return null;
String[] temp = s.split("_");
if (temp.length == 1) {
return new Locale(temp[0]);
} else if (temp.length == 2) {
return new Locale(temp[0], temp[1]);
} else if (temp.length == 3) {
return new Locale(temp[0], temp[1], temp[2]);
}
return null;
}
public static List<Language> all() {
return LANGUAGES;
}
public static void clear() {
LANGUAGES.clear();
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/model/Group.java
New file
0,0 → 1,42
package org.kawai.model;
 
import org.mentawai.list.ListData;
import org.mentawai.list.SimpleListData;
 
public enum Group {
 
ADMIN(1, "Admin"), EDITOR(2, "Editor");
private int id;
private String name;
 
private Group(int code, String name) {
this.id = code;
this.name = name;
}
 
public int getId() {
return id;
}
public String getName() {
return name;
}
public static Group fromId(int id) {
for(Group g : Group.values()) {
if (g.getId() == id) {
return g;
}
}
return null;
}
public static ListData getListData() {
SimpleListData list = new SimpleListData("groups");
for(Group g : Group.values()) {
list.add(g.getId(), g.getName());
}
return list;
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/model/Page.java
New file
0,0 → 1,234
package org.kawai.model;
 
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
 
public class Page {
private static final SimpleDateFormat FORMATTER = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
public static final String LEFT_COLUMN = "LeftColumn";
public static final String CSS = "CSS";
public static final String PRINT_CSS = "PrintCSS";
public static final String LOGO = "logo";
public static final String JAVASCRIPT = "JavaScript";
private int id;
private String name;
private String title;
private String body;
private boolean isSystemPage;
private int languageId;
private int modifiedById;
private User modifiedBy;
private Date modifiedOn;
private int createdById;
private User createdBy;
private Date createdOn;
private boolean isFrontPage;
private Boolean isDeleted;
private boolean isPreview;
private boolean isNew;
private boolean isRevision;
private int revisionNumber;
private String comment;
public Page() { }
public void setPreview(Preview preview) {
this.isPreview = true;
this.title = preview.getTitle();
this.body = preview.getBody();
}
public void setComment(String s) {
this.comment = s;
}
public String getComment() {
return comment;
}
 
public boolean isRevision() {
return isRevision;
}
 
public void setRevision(boolean isRevision) {
this.isRevision = isRevision;
}
 
public int getRevisionNumber() {
return revisionNumber;
}
 
public void setRevisionNumber(int revisionNumber) {
this.revisionNumber = revisionNumber;
}
 
public int getId() {
return id;
}
 
public void setId(int id) {
this.id = id;
}
 
public String getName() {
return name;
}
 
public void setName(String name) {
this.name = name;
}
 
public String getTitle() {
return title;
}
 
public void setTitle(String title) {
this.title = title;
}
 
public String getBody() {
return body;
}
 
public void setBody(String body) {
this.body = body;
}
 
public boolean isSystemPage() {
return isSystemPage;
}
 
public void setSystemPage(boolean isSystemPage) {
this.isSystemPage = isSystemPage;
}
 
public int getLanguageId() {
return languageId;
}
 
public void setLanguageId(int languageId) {
this.languageId = languageId;
}
public Language getLanguage() {
return Language.fromId(languageId);
}
public Locale getLocale() {
return getLanguage() != null ? getLanguage().getLocale() : null;
}
public String getLang() {
return getLocale() != null ? getLocale().toString() : null;
}
 
public int getModifiedById() {
return modifiedById;
}
public boolean isModified() {
return modifiedById > 0;
}
 
public void setModifiedById(int modifiedById) {
this.modifiedById = modifiedById;
}
 
public Date getModifiedOn() {
return modifiedOn;
}
public String getFormattedModifiedOn() {
return modifiedOn != null ? FORMATTER.format(modifiedOn) : null;
}
 
public void setModifiedOn(Date modifiedOn) {
this.modifiedOn = modifiedOn;
}
 
public int getCreatedById() {
return createdById;
}
 
public void setCreatedById(int createdById) {
this.createdById = createdById;
}
 
public Date getCreatedOn() {
return createdOn;
}
public String getFormattedCreatedOn() {
return createdOn != null ? FORMATTER.format(createdOn) : null;
}
 
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
public void setFrontPage(boolean isFrontPage) {
this.isFrontPage = isFrontPage;
}
public boolean isFrontPage() {
return isFrontPage;
}
public User getModifiedBy() {
return modifiedBy;
}
 
public void setModifiedBy(User modifiedBy) {
this.modifiedBy = modifiedBy;
}
 
public User getCreatedBy() {
return createdBy;
}
 
public void setCreatedBy(User createdBy) {
this.createdBy = createdBy;
}
public boolean isCSS() {
return name.equals(CSS) || name.equals(PRINT_CSS);
}
public Boolean isDeleted() {
return isDeleted;
}
public boolean getDeleted() {
return isDeleted != null ? isDeleted : false;
}
public void setDeleted(Boolean b) {
this.isDeleted = b;
}
public void setPreview(boolean b) {
this.isPreview = b;
}
public boolean isPreview() {
return isPreview;
}
public boolean isNew() {
return isNew;
}
public void setNew(boolean b) {
this.isNew = b;
}
 
@Override
public String toString() {
return "Page:[name=" + name + ";language=" + getLanguage() + "]";
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/model/Revision.java
New file
0,0 → 1,165
package org.kawai.model;
 
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
 
public class Revision {
private static final SimpleDateFormat FORMATTER = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
private int id;
private Integer revision;
private String name;
private int languageId;
private int userId;
private User user;
private String currTitle;
private String oldTitle;
private String newTitle;
private String oldBody;
private String newBody;
private Date createdOn;
private String comment;
private boolean isSystemPage;
private boolean isFrontPage;
public Revision() { }
 
public int getId() {
return id;
}
public void setTitle(String s) {
this.currTitle = s;
}
public String getTitle() {
return currTitle;
}
public void setFrontPage(boolean b) {
this.isFrontPage = b;
}
public boolean isFrontPage() {
return isFrontPage;
}
public void setSystemPage(boolean b) {
this.isSystemPage = b;
}
public boolean isSystemPage() {
return isSystemPage;
}
public String getComment() {
return comment;
}
public void setComment(String s) {
this.comment = s;
}
 
public void setId(int id) {
this.id = id;
}
 
public Integer getRevision() {
return revision;
}
 
public void setRevision(int revision) {
this.revision = revision;
}
 
public String getName() {
return name;
}
 
public void setName(String name) {
this.name = name;
}
 
public int getLanguageId() {
return languageId;
}
 
public void setLanguageId(int languageId) {
this.languageId = languageId;
}
 
public int getUserId() {
return userId;
}
 
public void setUserId(int userId) {
this.userId = userId;
}
 
public User getUser() {
return user;
}
 
public void setUser(User user) {
this.user = user;
}
 
public String getOldTitle() {
return oldTitle;
}
 
public void setOldTitle(String oldTitle) {
this.oldTitle = oldTitle;
}
 
public String getNewTitle() {
return newTitle;
}
 
public void setNewTitle(String newTitle) {
this.newTitle = newTitle;
}
public Language getLanguage() {
return Language.fromId(languageId);
}
public Locale getLocale() {
return getLanguage() != null ? getLanguage().getLocale() : null;
}
public String getLang() {
return getLocale() != null ? getLocale().toString() : null;
}
 
public String getOldBody() {
return oldBody;
}
 
public void setOldBody(String oldBody) {
this.oldBody = oldBody;
}
 
public String getNewBody() {
return newBody;
}
 
public void setNewBody(String newBody) {
this.newBody = newBody;
}
 
public Date getCreatedOn() {
return createdOn;
}
public String getFormattedCreatedOn() {
return FORMATTER.format(createdOn);
}
 
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/model/User.java
New file
0,0 → 1,55
package org.kawai.model;
 
 
public class User {
private int id;
private String username;
private String password;
private int groupId;
public User() { }
 
public int getId() {
return id;
}
 
public void setId(int id) {
this.id = id;
}
 
public String getUsername() {
return username;
}
public boolean isAdmin() {
return groupId == Group.ADMIN.getId();
}
 
public void setUsername(String username) {
this.username = username;
}
 
public String getPassword() {
return password;
}
 
public void setPassword(String password) {
this.password = password;
}
 
public int getGroupId() {
return groupId;
}
public Group getGroup() {
return Group.fromId(groupId);
}
 
public void setGroupId(int groupId) {
this.groupId = groupId;
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/dao/PageDAO.java
New file
0,0 → 1,51
package org.kawai.dao;
 
import java.util.List;
 
import org.kawai.model.Language;
import org.kawai.model.Page;
import org.kawai.model.Preview;
import org.kawai.model.Revision;
 
public interface PageDAO {
public Page load(int id);
public void update(Page p);
public Page loadByName(String name, Language lang);
public Page loadByName(String name, Language lang, int revision);
public Page loadByNameWithPreview(int userId, String name, Language lang);
public Page loadFrontPage(Language lang);
public void insert(Page p);
public boolean exists(String name, Language lang);
public boolean isSystemPage(String name);
public List<Page> loadAll(boolean includeSystemPages);
public boolean setNewFrontPage(Page p);
public boolean delete(Page p);
public String getFrontPage(Language lang);
public Preview loadPreview(int userId, String name, Language lang);
public Preview insertPreview(int userId, Page p, String comment);
public void deletePreview(int userId, String name, Language lang);
public Revision loadRevision(int revision, String name, Language lang);
public void insertRevision(Revision r);
public List<Revision> loadRevisions(String name, Language lang);
public List<Revision> loadLastRevisions(Language lang, boolean includeSystemPages);
}
/tags/kawai-1.0.1/src/main/java/org/kawai/dao/UserDAO.java
New file
0,0 → 1,16
package org.kawai.dao;
 
import org.kawai.model.User;
 
public interface UserDAO {
public User findByUsername(String username);
public void insert(User u);
public void update(User u);
public boolean insertOrUpdate(User u);
public User load(int id);
}
/tags/kawai-1.0.1/src/main/java/org/kawai/dao/jdbc/JdbcPageDAO.java
New file
0,0 → 1,493
package org.kawai.dao.jdbc;
 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
 
import org.kawai.dao.PageDAO;
import org.kawai.model.Language;
import org.kawai.model.Page;
import org.kawai.model.Preview;
import org.kawai.model.Revision;
import org.kawai.model.User;
import org.mentabean.BeanSession;
 
public class JdbcPageDAO extends AbstractJdbcDAO implements PageDAO {
public JdbcPageDAO(BeanSession session) {
super(session);
}
 
@Override
public Page load(int id) {
Page p = new Page();
p.setId(id);
if (session.load(p)) {
loadUsers(p);
return p;
}
return null;
}
@Override
public Page loadByName(String name, Language lang) {
return loadByName(name, lang, -1);
}
@Override
public Page loadByName(String name, Language lang, int revision) {
Page p = new Page();
p.setName(name);
p.setLanguageId(lang.getId());
p.setDeleted(false);
p = session.loadUnique(p);
 
if (p != null) {
if (revision >= 0) {
Revision r = loadRevision(revision, name, lang);
if (r != null) {
p.setCreatedById(r.getUserId());
p.setCreatedOn(r.getCreatedOn());
p.setModifiedById(-1);
p.setModifiedOn(null);
p.setRevision(true);
p.setRevisionNumber(r.getRevision());
p.setTitle(r.getNewTitle());
p.setBody(r.getNewBody());
}
}
loadUsers(p);
}
return p;
}
@Override
public Page loadFrontPage(Language lang) {
Page p = new Page();
p.setLanguageId(lang.getId());
p.setFrontPage(true);
p.setDeleted(false);
p = session.loadUnique(p);
if (p != null) {
loadUsers(p);
}
return p;
}
private void loadUsers(Page p) {
User modifier = new User();
modifier.setId(p.getModifiedById());
if (p.getModifiedById() > 0) {
if (session.load(modifier)) {
p.setModifiedBy(modifier);
} else {
throw new IllegalStateException("Cannot load user by id: " + p.getModifiedById());
}
}
User creator = new User();
creator.setId(p.getCreatedById());
if (p.getCreatedById() > 0) {
if (session.load(creator)) {
p.setCreatedBy(creator);
} else {
throw new IllegalStateException("Cannot load user by id: " + p.getCreatedById());
}
}
}
@Override
public void update(Page p) {
session.update(p);
}
@Override
public void insert(Page p) {
p.setDeleted(false);
session.insert(p);
}
@Override
public boolean exists(String name, Language lang) {
return loadByName(name, lang) != null;
}
@Override
public boolean isSystemPage(String name) {
Page page = new Page();
page.setName(name);
page.setDeleted(false);
List<Page> list = session.loadList(page);
for(Page thePage : list) {
if (thePage.isSystemPage()) return true;
}
return false;
}
@Override
public List<Page> loadAll(boolean includeSystemPages) {
String[] propsToExclude = { "body" };
PreparedStatement stmt = null;
ResultSet rset = null;
try {
 
StringBuilder query = new StringBuilder(512);
query.append("select ").append(session.buildSelectMinus(Page.class, "p", propsToExclude));
query.append(", ").append(session.buildSelect(User.class, "creator"));
query.append(", ").append(session.buildSelect(User.class, "modifier"));
query.append(" from Pages p");
query.append(" join Users creator on p.created_by = creator.id");
query.append(" left join Users modifier on p.modified_by = modifier.id");
query.append(" where p.deleted = 'F'");
if (!includeSystemPages) {
query.append(" and p.system_page = 'F'");
}
query.append(" order by p.system_page, p.front_page, p.name, p.language_id");
stmt = conn.prepareStatement(query.toString());
rset = stmt.executeQuery();
List<Page> pages = new LinkedList<Page>();
while(rset.next()) {
Page p = new Page();
session.populateBeanMinus(rset, p, "p", propsToExclude);
User creator = new User();
session.populateBean(rset, creator, "creator");
p.setCreatedBy(creator);
if (rset.getInt("modifier_id") > 0) {
User modifier = new User();
session.populateBean(rset, modifier, "modifier");
p.setModifiedBy(modifier);
}
pages.add(p);
}
return pages;
} catch(Exception e) {
throw new RuntimeException(e);
} finally {
close(stmt, rset);
}
}
private Page get(List<Page> pages, Language lang) {
for(Page p : pages) {
if (p.getLanguage() == lang) return p;
}
return null;
}
@Override
public boolean setNewFrontPage(Page p) {
if (p.isSystemPage() || p.isFrontPage() || p.isDeleted()) return false;
Page page = new Page();
page.setFrontPage(true);
page.setDeleted(false);
List<Page> frontPages = session.loadList(page);
Page currFrontPage = get(frontPages, p.getLanguage());
if (currFrontPage != null) {
// it is not front-page anymore...
session.load(currFrontPage); // reload to attach to session...
currFrontPage.setFrontPage(false);
session.update(currFrontPage);
}
p.setFrontPage(true);
session.update(p);
return true;
}
@Override
public boolean delete(Page p) {
if (p.isDeleted() || p.isSystemPage() || p.isFrontPage()) return false;
p.setDeleted(true);
session.update(p);
return true;
}
@Override
public Preview loadPreview(int userId, String name, Language lang) {
Preview p = new Preview();
p.setName(name);
p.setLanguageId(lang.getId());
p.setUserId(userId);
p = session.loadUnique(p);
if (p != null) {
User user = new User();
user.setId(userId);
session.load(user);
p.setUser(user);
Page page = loadByName(name, lang);
if (page != null) {
p.setNew(false);
p.setSystemPage(page.isSystemPage());
} else {
p.setNew(true);
p.setSystemPage(false);
}
}
return p;
}
@Override
public Preview insertPreview(int userId, Page page, String comment) {
Preview preview = loadPreview(userId, page.getName(), page.getLanguage());
if (preview != null) {
preview.setTitle(page.getTitle());
preview.setBody(page.getBody());
preview.setComment(comment);
session.update(preview);
} else {
preview = new Preview();
preview.setName(page.getName());
preview.setLanguageId(page.getLanguageId());
preview.setUserId(userId);
preview.setTitle(page.getTitle());
preview.setBody(page.getBody());
preview.setComment(comment);
session.insert(preview);
}
return preview;
}
@Override
public String getFrontPage(Language lang) {
Page page = new Page();
page.setLanguageId(lang.getId());
page.setFrontPage(true);
Page front = session.loadUnique(page);
if (front != null) {
return front.getName();
}
return null;
}
@Override
public Page loadByNameWithPreview(int userId, String name, Language lang) {
Page p = loadByName(name, lang);
if (p == null) {
// we may still have a preview...
Preview preview = loadPreview(userId, name, lang);
if (preview != null) {
preview.setNew(true);
return preview.getPage();
}
return null;
} else {
// check if we have a preview for this page...
Preview preview = loadPreview(userId, name, lang);
if (preview != null) {
preview.setNew(false);
p.setPreview(preview);
}
return p;
}
}
@Override
public void deletePreview(int userId, String name, Language lang) {
Preview preview = loadPreview(userId, name, lang);
if (preview != null) {
Preview p = new Preview();
p.setId(preview.getId());
session.delete(p);
}
}
@Override
public Revision loadRevision(int revision, String name, Language lang) {
Revision r = new Revision();
r.setRevision(revision);
r.setName(name);
r.setLanguageId(lang.getId());
return session.loadUnique(r);
}
@Override
public void insertRevision(Revision r) {
PreparedStatement stmt = null;
ResultSet rset = null;
try {
// first time, lock whole table
stmt = conn.prepareStatement("LOCK TABLES Revisions WRITE"); // this works as a synchronized block locked on the database... (I tested it!)
stmt.execute();
stmt.close();
stmt = conn.prepareStatement("select max(revision) from Revisions where name = ? and language_id = ?");
stmt.setString(1, r.getName());
stmt.setInt(2, r.getLanguageId());
rset = stmt.executeQuery();
rset.next();
int revisionNumber = rset.getInt(1) + 1;
if (rset.wasNull()) {
// inserting for the very first time... (page creatiion, not modification)
revisionNumber = 0;
}
rset.close();
stmt.close();
r.setRevision(revisionNumber);
session.insert(r);
 
stmt = conn.prepareStatement("UNLOCK TABLES");
stmt.execute();
} catch(Exception e) {
throw new RuntimeException(e);
} finally {
close(stmt, rset);
}
}
@Override
public List<Revision> loadRevisions(String name, Language lang) {
String[] propsToExclude = { "oldTitle", "newTitle", "oldBody", "newBody" };
PreparedStatement stmt = null;
ResultSet rset = null;
try {
StringBuilder query = new StringBuilder(256);
query.append("select ").append(session.buildSelectMinus(Revision.class, "r", propsToExclude));
query.append(", ").append(session.buildSelect(User.class, "u"));
query.append(", p.system_page p_system_page");
query.append(", p.front_page p_front_page");
query.append(", p.title p_title");
query.append(" from Revisions r join Users u on r.user_id = u.id");
query.append(" join Pages p on r.name = p.name and r.language_id = p.language_id");
query.append(" where r.name = ? and r.language_id = ?");
query.append(" order by revision desc");
query.append(" limit 50");
stmt = conn.prepareStatement(query.toString());
stmt.setString(1, name);
stmt.setInt(2, lang.getId());
rset = stmt.executeQuery();
List<Revision> revisions = new ArrayList<Revision>(50);
while(rset.next()) {
Revision r = new Revision();
session.populateBeanMinus(rset, r, "r", propsToExclude);
User u = new User();
session.populateBean(rset, u, "u");
r.setUser(u);
boolean isSystemPage = rset.getString("p_system_page").equals("T");
r.setSystemPage(isSystemPage);
boolean isFrontPage = rset.getString("p_front_page").equals("T");
r.setFrontPage(isFrontPage);
String title = rset.getString("p_title");
r.setTitle(title);
revisions.add(r);
}
return revisions;
} catch(Exception e) {
throw new RuntimeException(e);
} finally {
close(stmt, rset);
}
}
@Override
public List<Revision> loadLastRevisions(Language lang, boolean includeSystemPages) {
String[] propsToExclude = { "oldTitle", "newTitle", "oldBody", "newBody" };
PreparedStatement stmt = null;
ResultSet rset = null;
try {
StringBuilder sb = new StringBuilder(512);
sb.append("select ").append(session.buildSelectMinus(Revision.class, "r", propsToExclude));
sb.append(", ").append(session.buildSelect(User.class, "u"));
sb.append(", p.system_page p_system_page");
sb.append(", p.front_page p_front_page");
sb.append(", p.title p_title");
sb.append(" from Revisions r join Users u on r.user_id = u.id");
sb.append(" join Pages p on r.name = p.name and r.language_id = p.language_id");
sb.append(" where r.language_id = ?");
if (!includeSystemPages) {
sb.append(" and p.system_page = 'F'");
}
sb.append(" order by r.created_on desc");
sb.append(" limit 50");
stmt = conn.prepareStatement(sb.toString());
stmt.setInt(1, lang.getId());
rset = stmt.executeQuery();
List<Revision> results = new ArrayList<Revision>(50);
while(rset.next()) {
Revision r = new Revision();
session.populateBeanMinus(rset, r, "r", propsToExclude);
User u = new User();
session.populateBean(rset, u, "u");
r.setUser(u);
boolean isSystemPage = rset.getString("p_system_page").equals("T");
r.setSystemPage(isSystemPage);
boolean isFrontPage = rset.getString("p_front_page").equals("T");
r.setFrontPage(isFrontPage);
String title = rset.getString("p_title");
r.setTitle(title);
results.add(r);
}
return results;
} catch(Exception e) {
throw new RuntimeException(e);
} finally {
close(stmt, rset);
}
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/dao/jdbc/JdbcUserDAO.java
New file
0,0 → 1,119
package org.kawai.dao.jdbc;
 
import java.util.List;
 
import org.kawai.dao.UserDAO;
import org.kawai.model.User;
import org.mentabean.BeanSession;
 
public class JdbcUserDAO extends AbstractJdbcDAO implements UserDAO {
 
public JdbcUserDAO(BeanSession session) {
super(session);
}
@Override
public User load(int id) {
User u = new User();
u.setId(id);
try {
 
if (session.load(u)) {
return u;
}
return null;
} catch(Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void update(User u) {
try {
session.update(u);
} catch(Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void insert(User u) {
try {
session.insert(u);
} catch(Exception e) {
throw new RuntimeException(e);
}
}
private List<User> find(User u) {
try {
return session.loadList(u);
} catch(Exception e) {
throw new RuntimeException(e);
}
}
@Override
public boolean insertOrUpdate(User u) {
String username = u.getUsername();
User user = findByUsername(username);
if (user != null) {
u.setId(user.getId());
update(u);
return false;
} else {
insert(u);
return true;
}
}
@Override
public User findByUsername(String username) {
User u = new User();
u.setUsername(username);
List<User> list = find(u);
if (list == null || list.isEmpty()) {
return null;
} else if (list.size() > 1) {
throw new IllegalStateException("More than one user with the same username!");
} else {
return list.get(0);
}
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/dao/jdbc/AbstractJdbcDAO.java
New file
0,0 → 1,28
package org.kawai.dao.jdbc;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
import org.mentabean.BeanSession;
 
public abstract class AbstractJdbcDAO {
protected BeanSession session;
protected Connection conn;
public AbstractJdbcDAO(BeanSession session) {
this.session = session;
this.conn = session.getConnection();
}
public final static void close(PreparedStatement stmt, ResultSet rset) {
if (rset != null) try { rset.close(); } catch(Exception e) { e.printStackTrace(); }
if (stmt != null) try { stmt.close(); } catch(Exception e) { e.printStackTrace(); }
}
public final static void close(PreparedStatement stmt) {
close(stmt, null);
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/AppManager.java
New file
0,0 → 1,291
package org.kawai;
 
import java.util.List;
 
import org.kawai.action.FileAction;
import org.kawai.action.LoginAction;
import org.kawai.action.PageAction;
import org.kawai.action.UserAction;
import org.kawai.dao.jdbc.JdbcPageDAO;
import org.kawai.dao.jdbc.JdbcUserDAO;
import org.kawai.model.Group;
import org.kawai.model.Language;
import org.kawai.model.Page;
import org.kawai.model.Preview;
import org.kawai.model.Revision;
import org.kawai.model.User;
import org.kawai.tag.kcode.KCodeHandler;
import org.mentabean.DBTypes;
import org.mentawai.action.LogoutAction;
import org.mentawai.ajax.renderer.JsonRenderer;
import org.mentawai.ajax.renderer.ResultRenderer;
import org.mentawai.core.ActionConfig;
import org.mentawai.core.ApplicationManager;
import org.mentawai.core.Context;
import org.mentawai.core.Filter;
import org.mentawai.core.Props;
import org.mentawai.db.C3P0ConnectionHandler;
import org.mentawai.db.ConnectionHandler;
import org.mentawai.filter.AuthenticationFilter;
import org.mentawai.filter.AuthorizationFilter;
import org.mentawai.filter.ExceptionFilter;
import org.mentawai.filter.FileUploadFilter;
import org.mentawai.filter.FlashScopeFilter;
import org.mentawai.filter.MentaContainerFilter;
import org.mentawai.filter.TransactionFilter;
import org.mentawai.filter.ValidationFilter;
import org.mentawai.i18n.LocaleManager;
import org.mentawai.transaction.JdbcTransaction;
 
public class AppManager extends ApplicationManager {
 
private Props props;
private ConnectionHandler connHandler;
public ConnectionHandler getConnHandler() {
return connHandler;
}
@Override
public void init(Context application) {
ApplicationManager.DEFAULT_ENVIRONMENT = Environment.PROD;
this.props = getProps();
///////////////////////////////////////////////////
// TURN ON/OFF APP MANAGER AUTO-REDEPLOY FEATURE
// OBS: Requires http://www.javarebel.com to work
///////////////////////////////////////////////////
setReloadable(props.getBoolean("auto_reload"));
////////////////////////////////////////////////
// Setting up supported kCodes tags
////////////////////////////////////////////////
List<String> kCodeTags = props.getList("kcodes");
for(String tag : kCodeTags) {
KCodeHandler.add(tag);
}
}
 
@Override
public void setupDB() {
String driver = props.getString("jdbc.driver");
String url = props.getString("jdbc.url");
String user = props.getString("jdbc.user");
String pass = props.getString("jdbc.pass");
this.connHandler = new C3P0ConnectionHandler(driver, url, user, pass);
}
@Override
public void loadBeans() {
bean(User.class, "Users")
.pk("id", DBTypes.AUTOINCREMENT)
.field("username", DBTypes.STRING)
.field("password", DBTypes.STRING)
.field("groupId", "group_id", DBTypes.INTEGER);
bean(Page.class, "Pages")
.pk("id", DBTypes.AUTOINCREMENT)
.field("name", DBTypes.STRING)
.field("title", DBTypes.STRING)
.field("body", DBTypes.STRING)
.field("languageId", "language_id", DBTypes.INTEGER)
.field("systemPage", "system_page", DBTypes.BOOLEANSTRING)
.field("frontPage", "front_page", DBTypes.BOOLEANSTRING)
.field("modifiedById", "modified_by", DBTypes.INTEGER)
.field("modifiedOn", "modified_on", DBTypes.NOW_ON_UPDATE_TIMESTAMP)
.field("createdById", "created_by", DBTypes.INTEGER)
.field("createdOn", "created_on", DBTypes.NOW_ON_INSERT_TIMESTAMP)
.field("deleted", DBTypes.BOOLEANSTRING);
bean(Preview.class, "Previews")
.pk("id", DBTypes.AUTOINCREMENT)
.field("userId", "user_id", DBTypes.INTEGER)
.field("title", DBTypes.STRING)
.field("body", DBTypes.STRING)
.field("createdOn", "created_on", DBTypes.NOW_ON_INSERT_TIMESTAMP)
.field("name", DBTypes.STRING)
.field("comment", DBTypes.STRING)
.field("languageId", "language_id", DBTypes.INTEGER);
bean(Revision.class, "Revisions")
.pk("id", DBTypes.AUTOINCREMENT)
.field("userId", "user_id", DBTypes.INTEGER)
.field("newTitle", "new_title", DBTypes.STRING)
.field("newBody", "new_body", DBTypes.STRING)
.field("oldTitle", "old_title", DBTypes.STRING)
.field("oldBody", "old_body", DBTypes.STRING)
.field("createdOn", "created_on", DBTypes.AUTOTIMESTAMP)
.field("name", DBTypes.STRING)
.field("languageId", "language_id", DBTypes.INTEGER)
.field("comment", DBTypes.STRING)
.field("revision", DBTypes.INTEGER);
 
}
 
@Override
public void loadLocales() {
Language.clear();
if (!props.has("languages")) {
Language l = new Language(1, "English", "en");
Language.add(l);
addLocale(l.getLocale());
} else {
List<String[]> languages = props.getArrays("languages");
for(int i = 0; i < languages.size(); i++) {
String[] array = languages.get(i);
Language l = new Language(i + 1, array[0], array[1], array.length >= 3 ? array[2] : null);
Language.add(l);
addLocale(l.getLocale());
}
}
LocaleManager.stopLocaleScan();
}
@Override
public void loadLists() {
addList(Group.getListData());
addList(Language.getListData());
}
@Override
public void loadFilters() {
/////////////////////////////////////////////
// GLOBAL FILTERS
/////////////////////////////////////////////
filter(new ExceptionFilter());
on(EXCEPTION, fwd("/error.jsp"));
filter(new MentaContainerFilter());
filter(new FlashScopeFilter());
//////////////////////////////////////////////////////////
// AUTHENTICATION: ALL ACTIONS THAT DO NOT IMPLEMENT
// THE AuthenticationFree INTERFACE WILL REQUIRE
// AUTHENTICATION
//////////////////////////////////////////////////////////
filter(new AuthenticationFilter());
on(LOGIN, redir("/"));
filter(new ValidationFilter());
filter(new TransactionFilter("transaction"));
}
@Override
public void setupIoC() {
 
////////////////////////////////////////////////////////
// INVERSION OF CONTROL: SET UP YOUR REPOSITORIES OR
// ANY OTHER OBJECT IMPLEMENTATION YOU WANT TO MAKE
// AVAILABLE THROUGH IOC (INVERSION OF CONTROL)
////////////////////////////////////////////////////////
ioc("conn", connHandler);
ioc("beanManager", getBeanManager()); // always return the same instance...
ioc("userDAO", JdbcUserDAO.class);
ioc("pageDAO", JdbcPageDAO.class);
ioc("beanSession", props.getClass("mentabean.dialect"));
ioc("transaction", JdbcTransaction.class);
}
@Override
public void loadActions() {
on(AJAX, ajax(new JsonRenderer()));
ActionConfig mainAction = action("/Page", PageAction.class)
.on(SUCCESS, fwd("/show_page.jsp"));
on(INDEX, redir(mainAction));
on(UPDATED, redir(mainAction, true));
Filter adminFilter = new AuthorizationFilter("admin");
Filter editorFilter = new AuthorizationFilter("admin", "editor");
on(ACCESSDENIED, redir(mainAction));
action("/User", UserAction.class, "add")
.filter(adminFilter)
.on(ERROR, chain(mainAction))
.on(CREATED, redir(mainAction));
action("/User", UserAction.class, "check")
.filter(adminFilter)
.all(ajax(new ResultRenderer()));
action("/Login", LoginAction.class)
.on(ERROR, chain(mainAction))
.on(SUCCESS, redir(mainAction, true));
action("/Logout", LogoutAction.class)
.on(SUCCESS, redir(mainAction));
action("/Page", PageAction.class, "get")
.filter(editorFilter);
action("/Page", PageAction.class, "getPreview")
.filter(editorFilter);
action("/Page", PageAction.class, "getRevisions")
.filter(editorFilter);
action("/Page", PageAction.class, "add")
.filter(editorFilter)
.on(ERROR, chain(mainAction))
.on(CREATED, redir(mainAction, true));
action("/Page", PageAction.class, "setFrontPage")
.filter(adminFilter);
action("/Page", PageAction.class, "delete")
.filter(adminFilter);
action("/Page", PageAction.class, "edit")
.filter(editorFilter);
 
action("/Page", PageAction.class, "list")
.filter(editorFilter);
action("/Page", PageAction.class, "discardPreview")
.filter(editorFilter)
.on(REMOVED, redir(mainAction, true));
action("/Page", PageAction.class, "savePreview")
.filter(editorFilter)
.on(SUCCESS, redir(mainAction, true));
action("/Page", PageAction.class, "getCSS")
.on(SUCCESS, fwd("/generate_css.jsp"));
action("/Page", PageAction.class, "getPrintCSS")
.on(SUCCESS, fwd("/generate_css.jsp"));
action("/File", FileAction.class, "upload")
.filter(editorFilter)
.filter(new FileUploadFilter())
.on(SUCCESS, redir(mainAction, true));
action("/File", FileAction.class, "listFiles")
.filter(editorFilter);
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/tag/EditTooltip.java
New file
0,0 → 1,42
package org.kawai.tag;
 
import java.util.Locale;
 
import javax.servlet.jsp.JspException;
 
import org.kawai.model.Language;
import org.kawai.model.Page;
import org.kawai.model.User;
import org.mentawai.i18n.LocaleManager;
import org.mentawai.tag.util.PrintTag;
 
public class EditTooltip extends PrintTag {
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public String getStringToPrint() throws JspException {
Locale loc = Language.getDefault().getLocale();
Page page = (Page) pageContext.findAttribute(name);
if (page == null) {
throw new JspException("Cannot find page with name: " + name);
}
User modifier = page.getModifiedBy();
if (modifier != null) {
return "Last modified by " + modifier.getUsername() + " on " + LocaleManager.formatDateTime(loc, page.getModifiedOn());
} else {
User creator = page.getCreatedBy();
if (creator == null) {
throw new IllegalStateException("Page without creator: " + page);
} else {
return "Created by " + creator.getUsername() + " on " + LocaleManager.formatDateTime(loc, page.getCreatedOn());
}
}
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/tag/kcode/ContextPath.java
New file
0,0 → 1,27
package org.kawai.tag.kcode;
 
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
 
public class ContextPath implements KCode {
@Override
public String getTag() {
return "contextPath";
}
@Override
public boolean hasBody() {
return false;
}
@Override
public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException {
if (body != null) throw new JspException("contextPath tag cannot have a body!");
HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
return req.getContextPath();
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/tag/kcode/Image.java
New file
0,0 → 1,34
package org.kawai.tag.kcode;
 
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
 
public class Image implements KCode {
@Override
public String getTag() {
return "img";
}
@Override
public boolean hasBody() {
return false;
}
@Override
public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException {
if (body != null) throw new JspException("contextPath tag cannot have a body!");
String filename = attributes.get("file");
if (filename == null) throw new JspException("file attribute is mandatory!");
HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
String cp = req.getContextPath();
return "<img src=\"" + cp + "/uploads/images/" + filename + "\" border=\"0\" />";
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/tag/kcode/KCodeHandler.java
New file
0,0 → 1,206
package org.kawai.tag.kcode;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import javax.servlet.jsp.JspException;
 
import org.kawai.model.Page;
import org.mentawai.tag.util.PrintTag;
 
public class KCodeHandler extends PrintTag {
private static final Map<String, String> EMPTY_MAP = new HashMap<String, String>();
private static final List<KCode> codes = new ArrayList<KCode>();
public static void add(KCode code) {
codes.add(code);
}
public static void add(String tag) {
String klassName = tag;
try {
if (!klassName.contains(".")) {
klassName = "org.kawai.tag.kcode." + klassName;
}
Class<?> klass = Class.forName(klassName);
KCode code = (KCode) klass.newInstance();
add(code);
} catch(Exception e) {
throw new RuntimeException("Cannot add kcode tag: " + tag + " / " + klassName);
}
}
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public String getStringToPrint() throws JspException {
Page page = (Page) pageContext.findAttribute(name);
if (page == null) {
throw new JspException("Cannot find page with name: " + name);
}
String body = page.getBody();
for(KCode code : codes) {
String tag = code.getTag();
while(checkForTag(tag, body)) {
String[] parts = splitCodeBlock(tag, body, code.hasBody());
if (parts == null) {
break;
}
Map<String, String> attributes = parseAttributes(parts[0]);
StringBuilder sb = new StringBuilder(1024 * 10);
sb.append(parts[1]);
sb.append(code.process(pageContext, attributes, parts[2]));
sb.append(parts[3]);
body = sb.toString();
}
}
return body;
}
private static final boolean checkForTag(String tag, String body) {
int start = body.indexOf("[" + tag);
if (start == -1) return false;
int end = body.indexOf(']', start);
return end != -1;
}
private static String[] splitCodeBlock(String tag, String body, boolean hasBody) {
if (hasBody) {
int start = body.indexOf("[" + tag);
if (start == -1) return null;
int closingBracketIndex = body.indexOf("]", start);
if (closingBracketIndex == -1) return null;
int end = body.indexOf("[/" + tag + "]");
if (end > start) {
// body tag...
String part1 = "";
if (start > 0) {
part1 = body.substring(0, start);
}
String part2 = "";
int len = ("[/" + tag + "]").length();
if (end < body.length() - len - 1) {
part2 = body.substring(end + len, body.length());
}
String contents = "";
int contentsStart = body.indexOf("]", start) + 1;
int contentsEnd = end;
if (contentsEnd > contentsStart) {
contents = body.substring(contentsStart, contentsEnd);
}
String tagAttributes = "";
len = ("[" + tag).length();
if (closingBracketIndex > start + len) {
tagAttributes = body.substring(start + len, closingBracketIndex).trim();
}
return new String[] { tagAttributes, part1, contents, part2 };
}
return null;
} else {
int start = body.indexOf("[" + tag);
if (start == -1) return null;
int closingBracketIndex = body.indexOf("/]", start);
if (closingBracketIndex == -1) return null;
int end = closingBracketIndex + 2;
if (end > start) {
String part1 = "";
if (start > 0) {
part1 = body.substring(0, start);
}
String part2 = "";
if (end < body.length()) {
part2 = body.substring(end, body.length());
}
String contents = null;
String tagAttributes = "";
int len = ("[" + tag).length();
if (closingBracketIndex > start + len) {
tagAttributes = body.substring(start + len, closingBracketIndex).trim();
}
return new String[] { tagAttributes, part1, contents, part2 };
}
return null;
}
}
private static Map<String, String> parseAttributes(String attrs) {
if (attrs.trim().equals("")) return EMPTY_MAP;
Map<String, String> map = new HashMap<String, String>();
String[] temp = attrs.split("\" +");
for(int i = 0; i < temp.length; i++) {
String s = temp[i];
if (i != temp.length - 1) {
s = s + "\"";
}
String[] temp2 = s.split("\\=");
if (temp2.length == 2) {
String key = temp2[0];
String val = temp2[1];
if (val.startsWith("\"") && val.endsWith("\"")) {
val = val.substring(1, val.length() - 1);
map.put(key, val);
} else {
if (val.startsWith("\"")) {
val = val.substring(1);
}
map.put(key, val);
}
}
}
return map;
}
public static void main(String[] args) {
String x1 = "house";
String x2 = "home";
String s = "aaaaaa [code a=\"asfadf\" bbb=\"asfasfffff\"]" + x1 + "[/code] bbbbb [code ]" + x2 + "[/code] cccccccccccc";
String[] blocks = splitCodeBlock("code", s, true);
for(String x : blocks) System.out.println("{" + x + "}");
blocks = splitCodeBlock("code", blocks[3], true);
for(String x : blocks) System.out.println("{" + x + "}");
s = "aaaaaa [code flip=\"1\" flop=\"2\" /]";
blocks = splitCodeBlock("code", s, false);
for(String x : blocks) System.out.println("{" + x + "}");
 
s = "aaaaaa [code /]";
blocks = splitCodeBlock("code", s, false);
for(String x : blocks) System.out.println("{" + x + "}");
 
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/tag/kcode/KCode.java
New file
0,0 → 1,15
package org.kawai.tag.kcode;
 
import java.util.Map;
 
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
 
public interface KCode {
public String getTag();
public boolean hasBody();
public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException;
}
/tags/kawai-1.0.1/src/main/java/org/kawai/tag/kcode/Download.java
New file
0,0 → 1,35
package org.kawai.tag.kcode;
 
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
 
public class Download implements KCode {
@Override
public String getTag() {
return "download";
}
@Override
public boolean hasBody() {
return false;
}
@Override
public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException {
if (body != null) throw new JspException("contextPath tag cannot have a body!");
String filename = attributes.get("file");
if (filename == null) throw new JspException("file attribute is mandatory!");
HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
String cp = req.getContextPath();
return "<a href=\"" + cp + "/uploads/archive/" + filename + "\">" + filename + "</a>";
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/tag/kcode/Code.java
New file
0,0 → 1,71
package org.kawai.tag.kcode;
 
import java.util.Iterator;
import java.util.Map;
 
import javax.servlet.jsp.PageContext;
 
import org.mentaregex.Regex;
 
public class Code implements KCode {
@Override
public boolean hasBody() {
return true;
}
@Override
public String getTag() {
return "code";
}
@Override
public String process(PageContext context, Map<String, String> attrs, String html) {
StringBuilder sb = new StringBuilder(1024 * 10);
boolean indent = true;
if (attrs.containsKey("ul")) {
indent = attrs.get("ul").equals("true");
}
 
if (indent) sb.append("<ul>");
sb.append(buildOpenShTag(attrs));
sb.append(escapeAngleBrackets(html));
sb.append("</pre>");
if (indent) sb.append("</ul>");
sb.append("<br/>");
return sb.toString();
}
private String escapeAngleBrackets(String html) {
String s = Regex.sub(html, "s/\\</\\&lt\\;/g");
s = Regex.sub(s, "s/\\>/\\&gt\\;/g");
return s;
}
private static String buildOpenShTag(Map<String, String> map) {
StringBuilder sb = new StringBuilder(256);
sb.append("<pre class=\"");
if (map.containsKey("brush")) {
sb.append("brush: ").append(map.get("brush")).append(";");
} else {
sb.append("brush: java;");
}
map.remove("brush");
if (map.containsKey("highlight")) {
sb.append(" highlight: [").append(map.get("highlight")).append("];");
}
map.remove("highlight");
Iterator<String> iter = map.keySet().iterator();
while(iter.hasNext()) {
String name = iter.next();
if (name.equals("ul")) continue;
String value = map.get(name);
sb.append(" ").append(name).append(": ").append(value).append(";");
}
sb.append("\">");
return sb.toString();
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/tag/kcode/PageLink.java
New file
0,0 → 1,53
package org.kawai.tag.kcode;
 
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
 
import org.kawai.action.PageAction;
import org.kawai.model.Page;
 
public class PageLink implements KCode {
@Override
public boolean hasBody() {
return false;
}
@Override
public String getTag() {
return "pageLink";
}
@Override
public String process(PageContext pageContext, Map<String, String> attrs, String html) throws JspException {
HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
String name = attrs.get("name");
if (name == null) throw new JspException("Name attribute is mandatory for tag pageLink!");
 
String text = attrs.get("text");
if (text == null) throw new JspException("Text attribute is mandatory for tag pageLink!");
String linkClass = attrs.get("linkClass");
String clickedClass = attrs.get("clickedClass");
String sizeClass = attrs.get("class");
if (sizeClass != null) {
linkClass = sizeClass;
clickedClass = sizeClass + "Clicked";
}
// check if we are displaying that page...
Page page = (Page) pageContext.findAttribute(PageAction.BODY_COLUMN_KEY);
if (page != null && page.getName().equals(name)) {
return "<span" + (clickedClass != null ? " class=\"" + clickedClass + "\"" : "") + ">" + text + "</span>";
} else {
return "<a href=\"" + req.getContextPath() + "/Page.mtw?name=" + name + "\"" + (linkClass != null ? " class=\"" + linkClass + "\"" : "") + ">" + text + "</a>";
}
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/tag/ListFlags.java
New file
0,0 → 1,56
package org.kawai.tag;
 
import java.util.Locale;
 
import javax.servlet.jsp.JspException;
 
import org.kawai.model.Language;
import org.mentawai.i18n.LocaleManager;
import org.mentawai.tag.i18n.RewriteWithLoc;
import org.mentawai.tag.util.PrintTag;
 
public class ListFlags extends PrintTag {
@Override
public String getStringToPrint() throws JspException {
/*
<mtw:isLocale value="pt">
<a href="<mtw:urlWithLoc loc="pt" tagsToExclude="revision" />"><img src="images/brazil.gif" border="0" width="20" height="13" style="border: 3px solid #ccc;" /></a>
<a href="<mtw:urlWithLoc loc="en" tagsToExclude="revision" />"><img src="images/usa.gif" width="20" height="13" border="0" style="border: 3px solid #fff;" /></a>
</mtw:isLocale>
<mtw:isLocale value="en">
<a href="<mtw:urlWithLoc loc="pt" tagsToExclude="revision" />"><img src="images/brazil.gif" border="0" width="20" height="13" style="border: 3px solid #fff;" /></a>
<a href="<mtw:urlWithLoc loc="en" tagsToExclude="revision" />"><img src="images/usa.gif" width="20" height="13" border="0" style="border: 3px solid #ccc;" /></a>
</mtw:isLocale>
*/
if (Language.all().size() == 1) return "";
LocaleManager.decideLocale(req, res); // force the locale to be chosen from param or cookie...
Locale selectedLocale = LocaleManager.getLocale(req, false);
String cp = req.getContextPath();
StringBuilder sb = new StringBuilder(1024);
 
for(Language lang : Language.all()) {
Locale loc = lang.getLocale();
boolean selected = lang.getLocale().equals(selectedLocale);
 
RewriteWithLoc tag = new RewriteWithLoc();
tag.setPageContext(pageContext);
tag.setLoc(loc.toString());
tag.setTagsToExclude("revision");
tag.doStartTag();
String href = tag.getStringToPrint();
sb.append("<a href=\"").append(href).append("\">");
sb.append("<img src=\"").append(cp).append("/uploads/images/").append(lang.getImageFile()).append("\" border=\"0\" width=\"20\" height=\"13\" style=\"border: 3px solid ");
if (selected) sb.append("#ccc");
else sb.append("#fff");
sb.append("; \" /></a>\n");
}
return sb.toString();
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/action/AbstractAction.java
New file
0,0 → 1,36
package org.kawai.action;
 
import java.util.Locale;
 
import org.kawai.dao.PageDAO;
import org.kawai.dao.UserDAO;
import org.kawai.model.Language;
import org.kawai.model.User;
import org.mentawai.core.BaseAction;
import org.mentawai.core.Context;
 
public abstract class AbstractAction extends BaseAction {
protected final PageDAO pageDAO;
protected final UserDAO userDAO;
protected Language language;
protected User sessionUser;
public AbstractAction(UserDAO userDAO, PageDAO pageDAO) {
this.userDAO = userDAO;
this.pageDAO = pageDAO;
}
@Override
public void setLocale(Locale loc) {
super.setLocale(loc);
this.language = Language.fromLocale(loc);
}
@Override
public void setSession(Context session) {
super.setSession(session);
this.sessionUser = getSessionObj();
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/action/LoginAction.java
New file
0,0 → 1,78
package org.kawai.action;
 
import org.kawai.dao.UserDAO;
import org.kawai.model.User;
import org.mentawai.action.BaseLoginAction;
 
 
public class LoginAction extends BaseLoginAction {
private final UserDAO userDAO;
public LoginAction(UserDAO userDAO) {
this.userDAO = userDAO;
}
@Override
public String execute() {
if (!isPost()) return ERROR;
String username = input.getString("username");
String password = input.getString("password");
boolean isOk = true;
if (username == null || username.trim().equals("")) {
addError("username", "Please enter an username!");
output.setValue("showForm", "login");
isOk = false;
}
if (password == null || password.trim().equals("")) {
addError("password", "Please enter a password!");
output.setValue("showForm", "login");
isOk = false;
}
if (!isOk) return ERROR;
User u = userDAO.findByUsername(username);
if (u == null) {
addError("username", "Username unknown!");
output.setValue("showForm", "login");
return ERROR;
}
if (u.getPassword().equalsIgnoreCase(password)) {
setSessionObj(u);
setSessionGroups(u.getGroup());
String name = input.getString("name");
if (name != null) output.setValue("name", name);
String lang = input.getString("lang");
if (lang != null) output.setValue("lang", lang);
return SUCCESS;
} else {
addError("password", "Incorrect password!");
output.setValue("showForm", "login");
return ERROR;
}
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/action/PageAction.java
New file
0,0 → 1,388
package org.kawai.action;
 
import java.util.List;
 
import org.kawai.dao.PageDAO;
import org.kawai.dao.UserDAO;
import org.kawai.model.Group;
import org.kawai.model.Language;
import org.kawai.model.Page;
import org.kawai.model.Preview;
import org.kawai.model.Revision;
import org.mentawai.filter.AuthenticationFree;
import org.mentawai.rule.MethodRule;
import org.mentawai.rule.RegexRule;
import org.mentawai.validation.Validatable;
import org.mentawai.validation.ValidationInterceptor;
import org.mentawai.validation.Validator;
 
public class PageAction extends AbstractAction implements AuthenticationFree, Validatable, ValidationInterceptor {
public static final String LEFT_COLUMN_KEY = "leftColumn";
public static final String BODY_COLUMN_KEY = "bodyColumn";
public static final String CSS_KEY = "css";
public static final String LOGO_KEY = "logo";
public static final String JAVASCRIPT_KEY = "js";
public PageAction(UserDAO userDAO, PageDAO pageDAO) {
super(userDAO, pageDAO);
}
 
@Override
public boolean bypassAuthentication(String method) {
if (method == null) return true;
if (method.equals("getCSS")) return true;
if (method.equals("getPrintCSS")) return true;
if (method.equals("getLastRevisions")) return true;
return false;
}
@Override
public void prepareValidator(Validator val, String method) {
if (method != null && method.equals("add") && isPost()) {
val.requiredFields("Required field!", "newPage.name", "newPage.title", "newPage.body", "newPage.languageId");
val.requiredLists("Required field!", "newPage.languageId");
val.add("newPage.name", RegexRule.getInstance("[A-Za-z0-9_\\-]+"), "Invalid name for page!");
val.add("newPage.name", MethodRule.getInstance(this, "checkPageDoesNotExist"), "This page already exists!");
val.add("newPage.name", MethodRule.getInstance(this, "checkNotSystemPage"), "Cannot create a system page!");
}
}
@Override
public boolean beforeValidation(String method) {
return true; // go ahead with validation...
}
@Override
public void afterValidation(String method, boolean wasOk) {
if (method == null) return;
if (method.equals("add") && !wasOk) {
output.setValue("showForm", method);
}
}
boolean checkPageDoesNotExist() {
Page p = input.getObject(Page.class, "newPage");
if (p.getName() == null || p.getLanguage() == null) {
return true;
}
return !pageDAO.exists(p.getName(), p.getLanguage());
}
boolean checkNotSystemPage() {
Page p = input.getObject(Page.class, "newPage");
if (p.getName() == null) {
return true;
}
return !pageDAO.isSystemPage(p.getName());
}
private Page loadLeftColumn(Language lang) {
if (sessionUser != null) {
return pageDAO.loadByNameWithPreview(sessionUser.getId(), Page.LEFT_COLUMN, lang);
} else {
return pageDAO.loadByName(Page.LEFT_COLUMN, lang);
}
}
private Page loadLogo(Language lang) {
if (sessionUser != null) {
return pageDAO.loadByNameWithPreview(sessionUser.getId(), Page.LOGO, lang);
} else {
return pageDAO.loadByName(Page.LOGO, lang);
}
}
private void setLogo(Language lang) {
Page logo = loadLogo(lang);
output.setValue(LOGO_KEY, logo);
}
private void setLeftColumn(Language lang) {
Page lc = loadLeftColumn(lang);
output.setValue(LEFT_COLUMN_KEY, lc);
}
private Page loadCSS() {
if (sessionUser != null) {
return pageDAO.loadByNameWithPreview(sessionUser.getId(), Page.CSS, Language.getDefault());
} else {
return pageDAO.loadByName(Page.CSS, Language.getDefault());
}
}
private void setCSS() {
Page css = loadCSS();
output.setValue(CSS_KEY, css);
}
private Page loadJavaScript() {
if (sessionUser != null) {
return pageDAO.loadByNameWithPreview(sessionUser.getId(), Page.JAVASCRIPT, Language.getDefault());
} else {
return pageDAO.loadByName(Page.JAVASCRIPT, Language.getDefault());
}
}
private void setJavaScript() {
Page js = loadJavaScript();
output.setValue(JAVASCRIPT_KEY, js);
}
// for ajax
public String get() {
String name = input.getString("name");
String lang = input.getString("lang");
int revision = input.getInt("revision", -1);
Language language = Language.fromLocale(lang);
if (name != null && language != null) {
Page page = pageDAO.loadByName(name, language, revision);
if (page != null) {
output.setValue("page", page);
}
}
return AJAX;
}
public String getPreview() {
String name = input.getString("name");
String lang = input.getString("lang");
Language language = Language.fromLocale(lang);
Page page = null;
if (name != null && language != null) {
if (sessionUser != null) {
Preview preview = pageDAO.loadPreview(sessionUser.getId(), name, language);
if (preview != null) {
page = preview.getPage();
}
}
if (page != null) {
output.setValue("page", page);
}
}
return AJAX;
}
public String getCSS() {
setCSS();
return SUCCESS;
}
public String getPrintCSS() {
Page page = pageDAO.loadByName(Page.PRINT_CSS, Language.getDefault());
output.setValue(CSS_KEY, page);
return SUCCESS;
}
private Language getLanguage() {
return getLanguage(input.getString("lang"));
}
private Language getLanguage(String lang) {
if (lang == null) return language;
Language l = Language.fromLocale(lang);
if (l == null) return language;
return l;
}
private String getName() {
String name = input.getString("name");
return getName(name);
}
private String getName(String name) {
if (name == null) {
name = pageDAO.getFrontPage(language);
if (name == null) {
throw new IllegalStateException("There is no front page defined for language: " + language);
}
}
return name;
}
@Override
public String execute() {
String name = getName();
Language language = getLanguage();
int revision = input.getInt("revision", -1);
Page page;
if (sessionUser != null && revision == -1) {
page = pageDAO.loadByNameWithPreview(sessionUser.getId(), name, language);
} else {
page = pageDAO.loadByName(name, language, revision);
}
if (page == null || page.isDeleted() || page.isSystemPage()) {
return INDEX;
}
setCSS();
setJavaScript();
setLeftColumn(page.getLanguage());
setLogo(page.getLanguage());
output.setValue(BODY_COLUMN_KEY, page);
return SUCCESS;
}
private void setPageRedirParams(Page page) {
if (!page.isSystemPage()) {
output.setValue("name", page.getName());
output.setValue("lang", page.getLanguage().getLocale());
}
}
public String savePreview() {
String name = input.getString("name");
Language lang = Language.fromLocale(input.getString("lang"));
int userId = sessionUser.getId();
Preview preview = pageDAO.loadPreview(userId, name, lang);
if (preview != null) {
Page page = pageDAO.loadByName(name, lang);
if (page != null) {
String oldTitle = page.getTitle();
String oldBody = page.getBody();
page.setTitle(preview.getTitle());
page.setBody(preview.getBody());
page.setModifiedById(preview.getUserId());
pageDAO.update(page);
insertRevision(page, preview.getComment(), oldTitle, oldBody);
pageDAO.deletePreview(userId, name, lang);
} else {
page = preview.getPage();
pageDAO.insert(page);
pageDAO.deletePreview(userId, name, lang);
insertRevision(page,null, null, null);
}
setPageRedirParams(page);
}
return SUCCESS;
}
private void insertRevision(Page page, String comment, String oldTitle, String oldBody) {
Revision r = new Revision();
r.setName(page.getName());
r.setLanguageId(page.getLanguageId());
r.setUserId(sessionUser.getId());
r.setNewTitle(page.getTitle());
r.setNewBody(page.getBody());
r.setOldTitle(oldTitle);
r.setOldBody(oldBody);
r.setComment(comment);
pageDAO.insertRevision(r);
}
public String edit() {
if (!isPost()) return INDEX;
String name = input.getString("name");
String lang = input.getString("lang");
if (name.equals("CSS")) {
// does not make sense to have CSS in different languages... (well, maybe it does, but we do NOT want to maintain more than one CSS)
lang = "en";
}
Page page = pageDAO.loadByName(name, Language.fromLocale(lang));
if (page != null) {
String oldTitle = page.getTitle();
String oldBody = page.getBody();
input.inject(page);
page.setModifiedById(sessionUser.getId());
if (input.getBoolean("isPreview")) {
pageDAO.insertPreview(sessionUser.getId(), page, input.getString("comment"));
} else {
pageDAO.update(page);
insertRevision(page, input.getString("comment"), oldTitle, oldBody);
// and now you have to delete the preview!
pageDAO.deletePreview(sessionUser.getId(), page.getName(), page.getLanguage());
}
setPageRedirParams(page);
}
return UPDATED;
}
public String discardPreview() {
String name = input.getString("name");
Language lang = Language.fromLocale(input.getString("lang"));
int userId = sessionUser.getId();
pageDAO.deletePreview(userId, name, lang);
output.setValue("name", name);
output.setValue("lang", lang.getLocale());
return REMOVED;
}
public String add() {
if (!isPost()) return INDEX;
Page p = input.getObject(Page.class, "newPage");
p.setCreatedById(sessionUser.getId());
if (input.getBoolean("isPreview")) {
pageDAO.insertPreview(sessionUser.getId(), p, null);
} else {
pageDAO.insert(p);
// and now you have to delete the preview!
pageDAO.deletePreview(sessionUser.getId(), p.getName(), p.getLanguage());
// also add revision zero...
insertRevision(p, null, null, null);
}
setPageRedirParams(p);
return CREATED;
}
public String list() {
List<Page> pages = pageDAO.loadAll(sessionUser.getGroup() == Group.ADMIN);
output.setValue("pages", pages);
return AJAX;
}
public String setFrontPage() {
int id = input.getInt("pageId");
Page p = pageDAO.load(id);
if (p != null) {
if (pageDAO.setNewFrontPage(p)) {
output.setValue("lang", p.getLang());
}
}
return UPDATED;
}
public String delete() {
int id = input.getInt("pageId");
Page p = pageDAO.load(id);
if (p != null ) {
pageDAO.delete(p);
}
return UPDATED;
}
public String getRevisions() {
String name = input.getString("name");
Language lang = Language.fromLocale(input.getString("lang"));
List<Revision> revisions = pageDAO.loadRevisions(name, lang);
output.setValue("revisions", revisions);
boolean isSystemPage = pageDAO.isSystemPage(name);
output.setValue("isSystemPage", isSystemPage);
return AJAX;
}
public String getLastRevisions() {
Language lang = Language.fromLocale(input.getString("lang"));
List<Revision> revisions = pageDAO.loadLastRevisions(lang, sessionUser != null);
output.setValue("revisions", revisions);
return AJAX;
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/action/UserAction.java
New file
0,0 → 1,113
package org.kawai.action;
 
import org.kawai.dao.UserDAO;
import org.kawai.model.User;
import org.mentawai.core.BaseAction;
import org.mentawai.filter.AuthenticationFree;
import org.mentawai.rule.EqualRule;
import org.mentawai.rule.MethodRule;
import org.mentawai.rule.RegexRule;
import org.mentawai.validation.Validatable;
import org.mentawai.validation.ValidationInterceptor;
import org.mentawai.validation.Validator;
 
public class UserAction extends BaseAction implements Validatable, AuthenticationFree, ValidationInterceptor {
private final UserDAO userDAO;
public UserAction(UserDAO userDAO) {
this.userDAO = userDAO;
}
 
// You cannot log to register...
@Override
public boolean bypassAuthentication(String method) {
if (method == null) return false;
if (method.equals("add")) return true;
if (method.equals("check")) return true;
return false;
}
// Validate the fields for the user form...
@Override
public void prepareValidator(Validator val, String method) {
String username_regex = "^[A-Za-z][A-Za-z0-9\\-\\_\\.]*[A-Za-z0-9]$";
if (method != null && method.equals("add") && isPost()) {
val.requiredFields("Required Field", "username", "password", "groupId");
val.requiredLists("Required Field", "groupId");
val.add("username", RegexRule.getInstance(username_regex), "Invalid Username");
val.add("username", MethodRule.getInstance(this, "checkUsernameAdd"), "Username already exists!");
val.add("password", EqualRule.getInstance("password", "passconf"), "Passwords do not match!");
}
}
@Override
public boolean beforeValidation(String method) {
return true; // go ahead with validation...
}
@Override
public void afterValidation(String method, boolean wasOk) {
if (method == null) return;
if (method.equals("add") && !wasOk) {
output.setValue("showForm", "addNewUser");
}
}
boolean checkUsernameAdd(String username) {
return userDAO.findByUsername(username) == null;
}
public String check() {
if (!isPost()) return ERROR;
String username = input.getString("username");
String sessionUsername = input.getString("sessionUsername");
if (isEmpty(username)) return ERROR;
User u = userDAO.findByUsername(username);
if (u == null) return SUCCESS; // username does not exist
if (sessionUsername != null && u.getUsername().equals(sessionUsername)) return SUCCESS;
return ALREADY;
}
public String add() {
if (!isPost()) {
// we only want to allow post to add an user...
return ERROR;
} else {
User u = input.getObject(User.class);
userDAO.insert(u);
 
addMessage("User " + u.getUsername() + " added!", true);
return CREATED;
}
}
}
/tags/kawai-1.0.1/src/main/java/org/kawai/action/FileAction.java
New file
0,0 → 1,112
package org.kawai.action;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Set;
import java.util.TreeSet;
 
import org.apache.commons.fileupload.FileItem;
import org.kawai.dao.PageDAO;
import org.kawai.dao.UserDAO;
import org.mentawai.core.ApplicationManager;
import org.mentawai.filter.AuthenticationFree;
 
public class FileAction extends AbstractAction implements AuthenticationFree {
private static final String UPLOAD_DIR = "uploads";
public FileAction(UserDAO userDAO, PageDAO pageDAO) {
super(userDAO, pageDAO);
}
@Override
public boolean bypassAuthentication(String method) {
if (method != null && method.equals("upload")) return false;
return false;
}
private String getFolderFromName(String name) {
name = name.toLowerCase();
if (name.endsWith(".jpg") || name.endsWith(".gif") || name.endsWith(".jpeg") || name.endsWith(".png")) {
return "images";
}
if (name.endsWith(".jar") || name.endsWith(".zip") || name.endsWith(".tar") || name.endsWith(".gz") || name.endsWith(".bzip") || name.endsWith(".war")) {
return "archive";
}
return "others";
}
public String upload() {
FileItem fileItem = (FileItem) input.getValue("Filedata");
if (fileItem != null) {
String filename = fileItem.getName();
String folder = getFolderFromName(filename);
String dir = ApplicationManager.getRealPath() + File.separator + UPLOAD_DIR + File.separator + folder + File.separator;
File file = new File(dir + filename);
if (file.exists()) {
output.setValue("status", "error");
output.setValue("msg", "File already exists: " + filename);
return AJAX;
}
try {
FileOutputStream fos = new FileOutputStream(file);
InputStream is = fileItem.getInputStream();
byte[] data = new byte[4096];
int read;
while((read = is.read(data)) != -1) {
fos.write(data, 0, read);
}
is.close();
fos.close();
output.setValue("status", "success");
output.setValue("msg", "File uploaded to folder <i>" + folder + "</i>: " + filename);
return AJAX;
} catch(Exception e) {
e.printStackTrace();
output.setValue("status", "error");
output.setValue("msg", "Error saving file: " + filename);
return AJAX;
}
} else {
output.setValue("status", "error");
output.setValue("msg", "Error uploading file!");
return AJAX;
}
}
public String listFiles() {
File[] images = (new File(ApplicationManager.getRealPath() + File.separator + "uploads" + File.separator + "images")).listFiles();
File[] archive = (new File(ApplicationManager.getRealPath() + File.separator + "uploads" + File.separator + "archive")).listFiles();
File[] others = (new File(ApplicationManager.getRealPath() + File.separator + "uploads" + File.separator + "others")).listFiles();
Set<String> files = new TreeSet<String>();
if (images != null) for(File f : images) {
if (f.isHidden()) continue;
files.add("/uploads/images/" + f.getName());
}
if (archive != null) for(File f : archive) {
if (f.isHidden()) continue;
files.add("/uploads/archive/" + f.getName());
}
if (others != null) for(File f : others) {
if (f.isHidden()) continue;
files.add("/uploads/others/" + f.getName());
}
output.setValue("files", files);
return AJAX;
}
}
/tags/kawai-1.0.1/src/main/webapp/jquery/jquery-1.6.4.min.js
New file
0,0 → 1,4
/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */
(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete
t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.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|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean
(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<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>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
/tags/kawai-1.0.1/src/main/webapp/index.jsp
New file
0,0 → 1,10
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Kawai redirect...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Refresh" content="0; url=Page.mtw" />
</head>
<body>
</body>
</html>
/tags/kawai-1.0.1/src/main/webapp/error.jsp
New file
0,0 → 1,29
<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="mtw" uri="http://www.mentaframework.org/tags-mtw/"%>
 
<html>
<head>
<title>Error</title>
</head>
<body>
<h2>Error:</h2>
<h3>
<mtw:out value="message" />
</h3>
<h4>
<mtw:out value="exception" />
</h4>
<h5>
<mtw:out value="stackheader" />
</h5>
<mtw:out value="stacktrace" />
</body>
 
</html>
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowfolderopen2_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/se_maj_rond.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_folder_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/expanded.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/nw_maj_rond.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/sw_med_rond.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/external.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/kawai.ico
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_help_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_sortup.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_waste_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_error_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_info_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/file.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_infosml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/newwindow-classic.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/folder-closed.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowfolderclosed1_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/rss.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/nw_maj_hi.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/remove.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_folder_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/product_logo.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_members_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/collapsed.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/nw_min_hi.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/help_logo.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/nw_med.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowmembers1_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/pdf.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_sortleft.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowmembers2_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_help_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/nw_maj.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/loading.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/nw_min_036.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_alert.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/external-classic.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_doc_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_warning_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_success_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/nw_min.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/view.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/folder.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowfolder1_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_usergroups_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/nw_med_rond.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowfolder2_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/strich.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/kawai.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_sortright.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/preview.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/sw_maj_rond.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowwaste1_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowwaste2_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/kawai-logo.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_members_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/none.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-build-successfull.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-redgreen.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-teal.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-bolt.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-blue.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-copper.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-bulldozer.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-pinky.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-petesucks.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-brewed.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-1.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-green.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-2.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-propaganda-2.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-3.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-4.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-propaganda.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-5.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-feather.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-built.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-purple.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-mavenfactured.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-button-black.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/logos/maven-frankenstein.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_confirmsml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/update.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/fix.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_sortdown.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_warning_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/add.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_doc_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/poweredby_036.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/nw_med_hi.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/kawai-logo2.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_success_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_alertsml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/pagina1.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/sw_min.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowusergroups1_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_arrowusergroups2_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_waste_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/newwindow.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_usergroups_sml.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/chk.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_error_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/icon_info_lrg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/images/folder-open.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/tld/taglib.tld
New file
0,0 → 1,48
<?xml version="1.0" encoding="UTF-8" ?>
 
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
 
 
 
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>kawai</short-name>
<display-name>Kawai</display-name>
 
<tag>
<name>editTooltip</name>
<tag-class>org.kawai.tag.EditTooltip</tag-class>
<body-content>empty</body-content>
<display-name></display-name>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<name>kcode</name>
<tag-class>org.kawai.tag.kcode.KCodeHandler</tag-class>
<body-content>empty</body-content>
<display-name></display-name>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<name>listFlags</name>
<tag-class>org.kawai.tag.ListFlags</tag-class>
<body-content>empty</body-content>
<display-name></display-name>
</tag>
</taglib>
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/conf/test/appManager.properties
New file
0,0 → 1,20
 
# Properties specific for UNIT TESTS
# Will overwrite any properties defined on 'default'
 
# Mentawai auto-reload with JRebel
auto_reload = false
 
# MentaBean with H2 (embedded database)
#mentabean.dialect = org.mentabean.jdbc.H2BeanSession
#jdbc.driver = org.h2.Driver
#jdbc.url = jdbc:h2:MentaTest
#jdbc.user = sa
#jdbc.pass =
 
# MentaBean with MySQL
mentabean.dialect = org.mentabean.jdbc.MySQLBeanSession
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost/Kawai?autoReconnect=true
jdbc.user = kawai
jdbc.pass = 1kawai23
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/conf/qa/appManager.properties
New file
0,0 → 1,14
 
# Properties specific from QA environment
# Will overwrite any properties defined on 'default'
 
# Mentawai auto-reload with JRebel
auto_reload = false
 
# MentaBean with MySQL
mentabean.dialect = org.mentabean.jdbc.MySQLBeanSession
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost/Kawai?autoReconnect=true
jdbc.user = kawai
jdbc.pass = 1kawai23
 
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/conf/default/appManager.properties
New file
0,0 → 1,19
 
# Default values go here
# They can be overwritten by specific properties from the environment
 
# Initialization script for database
db.script = WEB-INF/db/kawai.sql
 
# kCodes Tags
kcodes = Code, ContextPath, PageLink, Image, Download
 
# Languages supported
languages = [ ["English", "en", "flag_usa.gif"] , ["Portuguese", "pt", "flag_brazil.gif"] ]
 
# Google Analytics
include_google_analytics = false
 
 
 
 
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/conf/prod/appManager.properties
New file
0,0 → 1,17
 
# Properties specific from PRODUCTION environment
# Will overwrite any properties defined on 'default'
 
# Mentawai auto-reload with JRebel
auto_reload = false
 
# MentaBean with MySQL
mentabean.dialect = org.mentabean.jdbc.MySQLBeanSession
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost/Kawai?autoReconnect=true
jdbc.user = kawai
jdbc.pass = 1kawai23
 
# Google Analytics
# You can change the google_analytics.jsp file and enable the option below
include_google_analytics = false
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/conf/int/appManager.properties
New file
0,0 → 1,13
 
# Properties specific from INTEGRATION environment
# Will overwrite any properties defined on 'default'
 
# Mentawai auto-reload with JRebel
auto_reload = false
 
# MentaBean with MySQL
mentabean.dialect = org.mentabean.jdbc.MySQLBeanSession
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost/Kawai?autoReconnect=true
jdbc.user = kawai
jdbc.pass = 1kawai23
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/conf/dev/appManager.properties
New file
0,0 → 1,13
 
# Properties specific from DEVELOPMENT environment
# Will overwrite any properties defined on 'default'
 
# Mentawai auto-reload with JRebel
auto_reload = true
 
# MentaBean with MySQL
mentabean.dialect = org.mentabean.jdbc.MySQLBeanSession
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost/Kawai?autoReconnect=true
jdbc.user = kawai
jdbc.pass = 1kawai23
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/db/init.sql
New file
0,0 → 1,156
-- MySQL dump 10.13 Distrib 5.1.40, for apple-darwin9.5.0 (i386)
--
-- Host: localhost Database: Kawai
-- ------------------------------------------------------
-- Server version 5.1.40
 
 
 
 
 
 
 
 
 
 
 
 
--
-- Current Database: `Kawai`
--
 
 
 
--
-- Table structure for table `Pages`
--
 
DROP TABLE IF EXISTS `Pages`;
 
 
CREATE TABLE `Pages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`language_id` int(11) NOT NULL,
`front_page` enum('T','F') NOT NULL DEFAULT 'F',
`system_page` enum('T','F') NOT NULL DEFAULT 'F',
`title` varchar(255) DEFAULT NULL,
`body` text NOT NULL,
`modified_by` int(11) DEFAULT NULL,
`modified_on` timestamp NULL DEFAULT NULL,
`created_by` int(11) NOT NULL,
`created_on` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`deleted` enum('T','F') NOT NULL DEFAULT 'F',
PRIMARY KEY (`id`),
UNIQUE KEY `indx_name_lang` (`name`,`language_id`),
KEY `indx_deleted` (`deleted`),
KEY `indx_front_page` (`front_page`),
KEY `indx_language_id` (`language_id`)
);
 
 
--
-- Dumping data for table `Pages`
--
 
 
INSERT INTO `Pages` VALUES (1,'LeftColumn',1,'F','T','','<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" /]</li>\r\n<li>[pageLink name=\"Page2\" text=\"My Page Two\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"large\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h4>Section H4</h4>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"medium\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"medium\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"medium\">Google</a></li>\r\n</ul>\r\n<br/>\r\n\r\n<h5>Section H5</h5>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"small\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"small\">Google</a></li>\r\n</ul>\r\n',2,'2011-11-06 19:18:29',1,'2011-10-25 21:32:07','F'),(2,'LeftColumn',2,'F','T','','<h3>Seção H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"Página Um\" /]</li>\r\n<li>[pageLink name=\"Page2\" text=\"Página Dois\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h3>Seção H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"Página Um\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"large\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h4>Seção H4</h4>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"Página Um\" class=\"medium\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"medium\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"medium\">Google</a></li>\r\n</ul>\r\n<br/>\r\n\r\n<h5>Seção H5</h5>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"Página Um\" class=\"small\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"small\">Google</a></li>\r\n</ul>\r\n\r\n',2,'2011-11-06 19:16:38',1,'2011-10-25 21:32:07','F'),(26,'Page1',1,'F','F','My Page One','<h2>My Page One</h2>\r\nWrite whatever you want here:\r\n<ul>\r\n<li>\r\nBlah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah\r\n</li>\r\n</ul>\r\n<br/>\r\n[code]\r\n\r\npackage org.kawai.model;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\nimport java.util.Locale;\r\n\r\nimport org.mentawai.list.ListData;\r\nimport org.mentawai.list.SimpleListData;\r\n\r\npublic class Language {\r\n\r\n private static final List<Language> LANGUAGES = new ArrayList<Language>(16);\r\n \r\n private final int id;\r\n private final String name;\r\n private final Locale loc;\r\n private final String imageFile;\r\n\r\n public Language(int code, String name, String locale, String imageFile) {\r\n this.id = code;\r\n this.name = name;\r\n this.loc = getLocaleFromString(locale);\r\n this.imageFile = imageFile;\r\n }\r\n \r\n public Language(int code, String name, String locale) {\r\n this(code, name, locale, null);\r\n }\r\n \r\n public static void add(Language language) {\r\n LANGUAGES.add(language);\r\n }\r\n \r\n public static Language getDefault() {\r\n if (LANGUAGES.isEmpty()) throw new IllegalStateException(\"No languages were defined!\");\r\n return LANGUAGES.get(0);\r\n }\r\n\r\n public int getId() {\r\n return id;\r\n }\r\n \r\n public String getName() {\r\n return name;\r\n }\r\n \r\n public Locale getLocale() {\r\n return loc;\r\n }\r\n \r\n public String getImageFile() {\r\n return imageFile;\r\n }\r\n \r\n @Override\r\n public String toString() {\r\n return name;\r\n }\r\n \r\n public static ListData getListData() {\r\n SimpleListData list = new SimpleListData(\"languages\");\r\n for(Language l : LANGUAGES) {\r\n list.add(l.getId(), l.getName());\r\n }\r\n return list;\r\n }\r\n \r\n public static Language fromId(int id) {\r\n for(Language l : LANGUAGES) {\r\n if (l.getId() == id) return l;\r\n }\r\n return null;\r\n }\r\n \r\n public static Language fromLocale(Locale loc) {\r\n if (loc == null) return null;\r\n for(Language l : LANGUAGES) {\r\n if (l.getLocale().equals(loc)) return l;\r\n }\r\n for(Language l : LANGUAGES) {\r\n if (l.getLocale().getLanguage().equals(loc.getLanguage())) {\r\n return l;\r\n }\r\n }\r\n return null;\r\n }\r\n \r\n public static Language fromLocale(String s) {\r\n if (s == null) return null;\r\n Locale loc = getLocaleFromString(s);\r\n return fromLocale(loc);\r\n }\r\n \r\n public static Language fromName(String name) {\r\n if (name == null) return null;\r\n for(Language l : LANGUAGES) {\r\n if (l.getName().equalsIgnoreCase(name)) return l;\r\n }\r\n return null;\r\n }\r\n \r\n public static Locale getLocaleFromString(String s) {\r\n if (s == null) return null;\r\n String[] temp = s.split(\"_\");\r\n if (temp.length == 1) {\r\n return new Locale(temp[0]);\r\n } else if (temp.length == 2) {\r\n return new Locale(temp[0], temp[1]);\r\n } else if (temp.length == 3) {\r\n return new Locale(temp[0], temp[1], temp[2]);\r\n }\r\n return null;\r\n }\r\n \r\n public static List<Language> all() {\r\n return LANGUAGES;\r\n }\r\n \r\n public static void clear() {\r\n LANGUAGES.clear();\r\n }\r\n}\r\n[/code]\r\n',2,'2011-11-06 18:48:54',1,'2011-11-06 18:48:20','F'),(3,'Intro',1,'T','F','Welcome to Kawai, the Wiki for Open Source projects!','<h1>Header H1</h1>\r\n<ul>\r\n <li>Test 1</li>\r\n <li>Test 2</li>\r\n <li>Test 3</li>\r\n</ul>\r\n<br />\r\n\r\n<h2>Header H2</h2>\r\nSome content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. \r\n<br /><br/>\r\n\r\n<h3>Header H3</h3>\r\nYou can use the &#91;code&#93; tag to format source code:\r\n<br/><br/>\r\n[code]\r\npackage org.kawai.tag.kcode;\r\n\r\nimport java.util.Map;\r\n\r\nimport javax.servlet.jsp.JspException;\r\nimport javax.servlet.jsp.PageContext;\r\n\r\npublic interface KCode {\r\n \r\n public String getTag();\r\n \r\n public boolean hasBody();\r\n \r\n public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException;\r\n}\r\n[/code]\r\n<p>\r\nAnd simple HTML to write your technical content. There are also many kawai tags that you can use and you can even create your own tags to help you.\r\n</p>\r\n<h4>Header H4</h4>\r\n<ul>\r\n <li>Test 1</li>\r\n <li>Test 2</li>\r\n <li>Test 3</li>\r\n <li>Test 4</li>\r\n</ul>\r\n<h5>Header H5</h5>\r\n<ul>\r\n <li>Test 1</li>\r\n <li>Test 2</li>\r\n <li>Test 3</li>\r\n <li>Test 4</li>\r\n</ul>\r\n<br />\r\n',2,'2011-11-06 18:44:11',1,'2011-10-25 21:32:07','F'),(4,'Intro',2,'T','F','Bem-vindo ao Kawai, o Wiki para Open Source','<h1>Cabeçalho H1</h1>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n</ul>\r\n<br />\r\n\r\n<h2>Cabeçalho H2</h2>\r\nAlgum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. \r\n<br /><br/>\r\n\r\n<h3>Header H3</h3>\r\nVocê também pode formatar código facilmente com a tag &#91;code&#93;:\r\n<br/><br/>\r\n[code]\r\npackage org.kawai.tag.kcode;\r\n\r\nimport java.util.Map;\r\n\r\nimport javax.servlet.jsp.JspException;\r\nimport javax.servlet.jsp.PageContext;\r\n\r\npublic interface KCode {\r\n \r\n public String getTag();\r\n \r\n public boolean hasBody();\r\n \r\n public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException;\r\n}\r\n[/code]\r\n<p>\r\nPara publicar conteúdo você pode usar tags simples de HTML ou as tags do Kawai. E você pode criar suas próprias tags.\r\n</p>\r\n<h4>Cabeçalho H4</h4>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<h5>Cabeçalho H5</h5>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<br />\r\n',2,'2011-11-06 19:19:10',1,'2011-10-25 21:32:07','F'),(5,'CSS',1,'F','T','','/************************/\r\n/* CSS BASE SddddddTARTS */\r\n/************************/\r\nbody {\r\n margin: 0px;\r\n padding: 0px 0px 10px 0px;\r\n}\r\nimg {\r\n border:none;\r\n}\r\ntable {\r\n padding:0px;\r\n width: 100%;\r\n margin-left: -2px;\r\n margin-right: -2px;\r\n}\r\nacronym {\r\n cursor: help;\r\n border-bottom: 1px dotted #feb;\r\n}\r\ntable.bodyTable th, table.bodyTable td {\r\n padding: 2px 4px 2px 4px;\r\n vertical-align: top;\r\n}\r\ndiv.clear{\r\n clear:both;\r\n visibility: hidden;\r\n}\r\ndiv.clear hr{\r\n display: none;\r\n}\r\n\r\niframe { \r\nwidth: 100%;\r\n_width: 80%; /* IE 6 */\r\n}\r\n\r\n#projectLogo {\r\n font-size: xx-large; \r\n font-weight: bold;\r\n}\r\n#organizationLogo img, #projectLogo img, #projectLogo span{\r\n margin: 8px;\r\n}\r\n#projectLogo span{\r\n border: 1px solid;\r\n padding: 4px 10px 4px 10px;\r\n background-color: #eee;\r\n cursor: pointer;\r\n}\r\n.xleft, #organizationLogo img{\r\n float:left;\r\n} \r\n.xright, #projectLogo img, #projectLogo span{\r\n float:right;\r\n text-shadow: #7CFC00;\r\n}\r\n#banner {\r\n border-bottom: 1px solid #fff;\r\n}\r\n#banner img {\r\n border: none;\r\n}\r\n#footer, #breadcrumbs {\r\n padding: 3px 10px 3px 10px;\r\n}\r\n#leftColumn {\r\n width: 18%;\r\n float:left;\r\n}\r\n#bodyColumn {\r\n margin-left: 20%;\r\n margin-right: 1%;\r\n}\r\n#navcolumn {\r\n padding: 8px 4px 0 8px;\r\n}\r\n#navcolumn h5, #navcolumn ul {\r\n margin: 0;\r\n padding: 0;\r\n font-size: small;\r\n}\r\n#navcolumn li {\r\n list-style-type: none;\r\n background-image: none;\r\n background-repeat: no-repeat;\r\n background-position: 0 0.4em;\r\n padding-left: 16px;\r\n list-style-position: ouside;\r\n line-height: 1.2em;\r\n font-size: smaller;\r\n}\r\n#navcolumn li.expanded {\r\n background-image: url(../images/expanded.gif);\r\n}\r\n#navcolumn li.collapsed {\r\n background-image: url(../images/collapsed.gif);\r\n}\r\n#poweredBy {\r\n text-align: center;\r\n}\r\n#navcolumn img {\r\n margin-top: 10px;\r\n margin-bottom: 3px;\r\n}\r\n#poweredBy img {\r\n display:block;\r\n margin: 20px 0 20px 17px;\r\n border: 1px solid black;\r\n width: 90px;\r\n height: 30px;\r\n}\r\n#search img {\r\n margin: 0px;\r\n display: block;\r\n}\r\n#search #q, #search #btnG {\r\n border: 1px solid #999;\r\n margin-bottom:10px;\r\n}\r\n#search form {\r\n margin: 0px;\r\n}\r\n#lastPublished {\r\n font-size: x-small;\r\n}\r\n.navSection {\r\n margin-bottom: 2px;\r\n padding: 8px;\r\n}\r\n.navSectionHead {\r\n font-weight: bold;\r\n font-size: x-small;\r\n}\r\n.section {\r\n padding: 4px;\r\n}\r\n#footer {\r\n font-size: x-small;\r\n}\r\n#breadcrumbs {\r\n font-size: x-small;\r\n margin: 0pt;\r\n}\r\n.source {\r\n padding: 12px;\r\n margin: 1em 7px 1em 7px;\r\n}\r\n.source pre {\r\n margin: 0px;\r\n padding: 0px;\r\n}\r\n\r\n/****************************/\r\n/* CSS OVERRIDE STARTS HERE */\r\n/****************************/\r\n\r\nbody, td, select, input, li{\r\n font-family: Verdana, Helvetica, Arial, sans-serif;\r\n font-size: 13px;\r\n}\r\na {\r\n text-decoration: none;\r\n}\r\na:link {\r\n color:#36a;\r\n}\r\na:visited {\r\n color:#47a;\r\n}\r\na:active, a:hover {\r\n color:#69c;\r\n}\r\na.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {\r\n background: url(../images/external.png) right center no-repeat;\r\n padding-right: 15px;\r\n}\r\na.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover {\r\n background: url(../images/newwindow.png) right center no-repeat;\r\n padding-right: 18px;\r\n}\r\n\r\n#bodyColumn h1 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #999;\r\n color: #900;\r\n background-color: #ccc;\r\n font-weight:900;\r\n font-size: 28px;\r\n}\r\n\r\n#bodyColumn h2 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #999;\r\n color: #900;\r\n background-color: #ddd;\r\n font-weight:900;\r\n font-size: 24px;\r\n}\r\n\r\n#bodyColumn h3 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #aaa;\r\n color: #900;\r\n background-color: #eee;\r\n font-weight: normal;\r\n font-size: 20px;\r\n}\r\n#bodyColumn h4 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #aaa;\r\n color: #900;\r\n background-color: #eee;\r\n font-weight: normal;\r\n font-size: 16px;\r\n}\r\n#bodyColumn h5 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #aaa;\r\n color: #900;\r\n background-color: #fff;\r\n font-weight: normal;\r\n font-size: 14px;\r\n}\r\n\r\n\r\np {\r\n line-height: 1.3em;\r\n font-size: small;\r\n}\r\n#breadcrumbs {\r\n border-top: 1px solid #aaa;\r\n border-bottom: 1px solid #aaa;\r\n background-color: #ccc;\r\n}\r\n#leftColumn {\r\n margin: 10px 0 0 5px;\r\n border: 1px solid #999;\r\n background-color: #eee;\r\n}\r\n#navcolumn h3 {\r\n font-size: 14px;\r\n border-bottom: 1px solid #aaaaaa;\r\n padding-left: 4px;\r\n}\r\n#navcolumn h4 {\r\n font-size: 12px;\r\n border-bottom: 1px solid #aaaaaa;\r\n padding-left: 4px;\r\n}\r\n\r\n#navcolumn h5 {\r\n font-size: smaller;\r\n border-bottom: 1px solid #aaaaaa;\r\n padding-left: 4px;\r\n margin-bottom: 15px;\r\n}\r\n\r\n#navcolumn .large {\r\n font-size: 14px;\r\n padding-bottom: 2px;\r\n}\r\n\r\n#navcolumn .largeClicked {\r\n font-size: 14px;\r\n padding-bottom: 2px;\r\n color: #451D29;\r\n}\r\n\r\n\r\n#navcolumn .medium {\r\n font-size: 13px;\r\n padding-bottom: 2px;\r\n}\r\n\r\n#navcolumn .small {\r\n font-size: 12px;\r\n padding-bottom: 2px;\r\n}\r\n#navcolumn li {\r\n padding-bottom: 2px;\r\n}\r\ntable.bodyTable th {\r\n color: white;\r\n background-color: #bbb;\r\n text-align: left;\r\n font-weight: bold;\r\n}\r\n\r\ntable.bodyTable th, table.bodyTable td {\r\n font-size: 1em;\r\n}\r\n\r\ntable.bodyTable tr.a {\r\n background-color: #ddd;\r\n}\r\n\r\ntable.bodyTable tr.b {\r\n background-color: #eee;\r\n}\r\n\r\n.source {\r\n border: 1px solid #999;\r\n}\r\n\r\n/* For the list all pages table */\r\n\r\n#listAllPagesTable\r\n{\r\n font-family: \"Lucida Sans Unicode\", \"Lucida Grande\", Sans-Serif;\r\n font-size: 12px;\r\n background: #fff;\r\n margin: 25px;\r\n width: 90%;\r\n border-collapse: collapse;\r\n text-align: center;\r\n}\r\n#listAllPagesTable th\r\n{\r\n font-size: 14px;\r\n font-weight: normal;\r\n color: #039;\r\n padding: 10px 8px;\r\n border-bottom: 2px solid #6678b1;\r\n}\r\n#listAllPagesTable td\r\n{\r\n border-bottom: 1px solid #ccc;\r\n color: #669;\r\n padding: 6px 8px;\r\n height: 30px; overflow-y: hidden;\r\n}\r\n#listAllPagesTable tbody tr:hover td\r\n{\r\n color: #009;\r\n}\r\n\r\n/* for list revisions */\r\n\r\n.revisionsTable\r\n{\r\n font-family: \"Lucida Sans Unicode\", \"Lucida Grande\", Sans-Serif;\r\n font-size: 12px;\r\n background: #fff;\r\n margin: 25px;\r\n width: 90%;\r\n border-collapse: collapse;\r\n text-align: center;\r\n}\r\n.revisionsTable th\r\n{\r\n font-size: 14px;\r\n font-weight: normal;\r\n color: #039;\r\n padding: 10px 8px;\r\n border-bottom: 2px solid #6678b1;\r\n}\r\n.revisionsTable td\r\n{\r\n border-bottom: 1px solid #ccc;\r\n color: #669;\r\n padding: 6px 8px;\r\n height: 30px; overflow-y: hidden;\r\n}\r\n.revisionsTable tbody tr:hover td\r\n{\r\n color: #009;\r\n}\r\n',2,'2011-11-06 00:13:38',1,'2011-10-25 21:32:07','F'),(6,'PrintCSS',1,'F','T',NULL,'/* For printing */\n\n#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {\n display: none;\n}\n#bodyColumn, body.docs div.docs {\n margin: 0 !important;\n border: none !important\n}',NULL,NULL,1,'2011-10-25 21:32:07','F'),(17,'Logo',1,'F','T','','&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"[contextPath/]\"><img src=\"[contextPath /]/images/kawai-logo2.png\" border=\"0\" /></a>',2,'2011-11-05 23:21:51',1,'2011-10-29 12:47:06','F'),(18,'Logo',2,'F','T','','&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"[contextPath/]\"><img src=\"[contextPath /]/images/kawai-logo2.png\" border=\"0\" /></a>',2,'2011-11-05 23:02:42',1,'2011-10-29 12:47:06','F'),(20,'JavaScript',1,'F','T','','function myJavaScriptFunction {\r\n\r\n // put something here!!!!\r\n\r\n}\r\n',2,'2011-11-01 14:26:11',1,'2011-10-31 08:49:02','F'),(27,'Page1',2,'F','F','Minha Página Um','<h2>Minha Página Um</h2>\r\nPublique qualquer coisa aqui:\r\n<ul>\r\n<li>\r\nBlah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah\r\n</li>\r\n</ul>\r\n<br/>\r\n[code]\r\n\r\npackage org.kawai.model;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\nimport java.util.Locale;\r\n\r\nimport org.mentawai.list.ListData;\r\nimport org.mentawai.list.SimpleListData;\r\n\r\npublic class Language {\r\n\r\n private static final List<Language> LANGUAGES = new ArrayList<Language>(16);\r\n \r\n private final int id;\r\n private final String name;\r\n private final Locale loc;\r\n private final String imageFile;\r\n\r\n public Language(int code, String name, String locale, String imageFile) {\r\n this.id = code;\r\n this.name = name;\r\n this.loc = getLocaleFromString(locale);\r\n this.imageFile = imageFile;\r\n }\r\n \r\n public Language(int code, String name, String locale) {\r\n this(code, name, locale, null);\r\n }\r\n \r\n public static void add(Language language) {\r\n LANGUAGES.add(language);\r\n }\r\n \r\n public static Language getDefault() {\r\n if (LANGUAGES.isEmpty()) throw new IllegalStateException(\"No languages were defined!\");\r\n return LANGUAGES.get(0);\r\n }\r\n\r\n public int getId() {\r\n return id;\r\n }\r\n \r\n public String getName() {\r\n return name;\r\n }\r\n \r\n public Locale getLocale() {\r\n return loc;\r\n }\r\n \r\n public String getImageFile() {\r\n return imageFile;\r\n }\r\n \r\n @Override\r\n public String toString() {\r\n return name;\r\n }\r\n \r\n public static ListData getListData() {\r\n SimpleListData list = new SimpleListData(\"languages\");\r\n for(Language l : LANGUAGES) {\r\n list.add(l.getId(), l.getName());\r\n }\r\n return list;\r\n }\r\n \r\n public static Language fromId(int id) {\r\n for(Language l : LANGUAGES) {\r\n if (l.getId() == id) return l;\r\n }\r\n return null;\r\n }\r\n \r\n public static Language fromLocale(Locale loc) {\r\n if (loc == null) return null;\r\n for(Language l : LANGUAGES) {\r\n if (l.getLocale().equals(loc)) return l;\r\n }\r\n for(Language l : LANGUAGES) {\r\n if (l.getLocale().getLanguage().equals(loc.getLanguage())) {\r\n return l;\r\n }\r\n }\r\n return null;\r\n }\r\n \r\n public static Language fromLocale(String s) {\r\n if (s == null) return null;\r\n Locale loc = getLocaleFromString(s);\r\n return fromLocale(loc);\r\n }\r\n \r\n public static Language fromName(String name) {\r\n if (name == null) return null;\r\n for(Language l : LANGUAGES) {\r\n if (l.getName().equalsIgnoreCase(name)) return l;\r\n }\r\n return null;\r\n }\r\n \r\n public static Locale getLocaleFromString(String s) {\r\n if (s == null) return null;\r\n String[] temp = s.split(\"_\");\r\n if (temp.length == 1) {\r\n return new Locale(temp[0]);\r\n } else if (temp.length == 2) {\r\n return new Locale(temp[0], temp[1]);\r\n } else if (temp.length == 3) {\r\n return new Locale(temp[0], temp[1], temp[2]);\r\n }\r\n return null;\r\n }\r\n \r\n public static List<Language> all() {\r\n return LANGUAGES;\r\n }\r\n \r\n public static void clear() {\r\n LANGUAGES.clear();\r\n }\r\n}\r\n[/code]\r\n',0,NULL,1,'2011-11-06 18:50:17','F'),(28,'Page2',1,'F','F','My Page Two','<h2>My Page 2</h2>\r\nYou can also show the uploaded pictures with some kawai tags:\r\n<ul>\r\n<li>American flag: [img file=\"flag_usa.gif\" /]</li>\r\n<br/>\r\n<li>Brazilian flag: [img file=\"flag_brazil.gif\" /]</li>\r\n</ul>\r\n\r\n',2,'2011-11-06 18:54:14',1,'2011-11-06 18:53:01','F'),(29,'Page2',2,'F','F','Minha Página Dois','<h2>Minha Página Dois</h2>\r\nVocê também pode exibir <i>uploaded images</i> com as tags do Kawai:\r\n<ul>\r\n<li>Bandeira americana: [img file=\"flag_usa.gif\" /]</li>\r\n<br/>\r\n<li>Bandeira brasileira: [img file=\"flag_brazil.gif\" /]</li>\r\n</ul>\r\n',0,NULL,1,'2011-11-06 18:56:02','F');
 
 
--
-- Table structure for table `Previews`
--
 
DROP TABLE IF EXISTS `Previews`;
 
 
CREATE TABLE `Previews` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`language_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`created_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`title` varchar(200) NOT NULL,
`body` text NOT NULL,
`comment` varchar(250) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `index_p_l_u` (`name`,`language_id`,`user_id`)
);
 
 
--
-- Dumping data for table `Previews`
--
 
 
 
 
--
-- Table structure for table `Revisions`
--
 
DROP TABLE IF EXISTS `Revisions`;
 
 
CREATE TABLE `Revisions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`revision` int(11) NOT NULL,
`name` varchar(100) NOT NULL,
`language_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`created_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`old_title` varchar(250) DEFAULT NULL,
`new_title` varchar(250) DEFAULT NULL,
`old_body` text,
`new_body` text NOT NULL,
`comment` varchar(250) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_n_l_r` (`name`,`language_id`,`revision`),
KEY `indx_language_id` (`language_id`),
KEY `indx_created_on` (`created_on`)
);
 
 
--
-- Dumping data for table `Revisions`
--
 
 
INSERT INTO `Revisions` VALUES (84,0,'LeftColumn',1,2,'2011-11-06 19:18:29','','','<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" /]</li>\r\n<li>[pageLink name=\"Page2\" text=\"My Page Two\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"large\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h4>Section H4</h4>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"medium\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"medium\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"medium\">Google</a></li>\r\n</ul>\r\n<br/>\r\n\r\n<h5>Section H5</h5> \r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"small\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"small\">Google</a></li>\r\n</ul>\r\n','<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" /]</li>\r\n<li>[pageLink name=\"Page2\" text=\"My Page Two\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"large\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h4>Section H4</h4>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"medium\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"medium\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"medium\">Google</a></li>\r\n</ul>\r\n<br/>\r\n\r\n<h5>Section H5</h5>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"small\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"small\">Google</a></li>\r\n</ul>\r\n','changed link'),(85,0,'Intro',2,2,'2011-11-06 19:19:10','Bem-vindo ao Kawai, o Wiki para Open Source','Bem-vindo ao Kawai, o Wiki para Open Source','<h1>Cabeçalho H1</h1>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n</ul>\r\n<br />\r\n\r\n<h2>Cabeçalho H2</h2>\r\nAlgum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. \r\n<br /><br/>\r\n\r\n<h3>Header H3</h3>\r\nVocê também pode formatar código facilmente com a tag &#91;code&#93;:\r\n<br/><br/>\r\n[code]\r\npackage org.kawai.tag.kcode;\r\n\r\nimport java.util.Map;\r\n\r\nimport javax.servlet.jsp.JspException;\r\nimport javax.servlet.jsp.PageContext;\r\n\r\npublic interface KCode {\r\n \r\n public String getTag();\r\n \r\n public boolean hasBody();\r\n \r\n public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException;\r\n}\r\n[/code]\r\n<p>\r\nPara publicar conteúdo você pode usar tags simples de HTML ou as tags do Kawai. E você pode criar suas próprias tags.\r\n</p>\r\n<h4>Header H4</h4>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<h5>Header H5</h5>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<br />\r\n','<h1>Cabeçalho H1</h1>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n</ul>\r\n<br />\r\n\r\n<h2>Cabeçalho H2</h2>\r\nAlgum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. \r\n<br /><br/>\r\n\r\n<h3>Header H3</h3>\r\nVocê também pode formatar código facilmente com a tag &#91;code&#93;:\r\n<br/><br/>\r\n[code]\r\npackage org.kawai.tag.kcode;\r\n\r\nimport java.util.Map;\r\n\r\nimport javax.servlet.jsp.JspException;\r\nimport javax.servlet.jsp.PageContext;\r\n\r\npublic interface KCode {\r\n \r\n public String getTag();\r\n \r\n public boolean hasBody();\r\n \r\n public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException;\r\n}\r\n[/code]\r\n<p>\r\nPara publicar conteúdo você pode usar tags simples de HTML ou as tags do Kawai. E você pode criar suas próprias tags.\r\n</p>\r\n<h4>Cabeçalho H4</h4>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<h5>Cabeçalho H5</h5>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<br />\r\n','tradução');
 
 
--
-- Table structure for table `Users`
--
 
DROP TABLE IF EXISTS `Users`;
 
 
CREATE TABLE `Users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) DEFAULT NULL,
`password` varchar(100) DEFAULT NULL,
`group_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_username` (`username`)
);
 
 
--
-- Dumping data for table `Users`
--
 
 
INSERT INTO `Users` VALUES (1,'admin','abc123',1),(2,'editor','abc123',2);
 
 
 
 
 
 
 
 
 
 
 
-- Dump completed on 2011-11-06 13:20:16
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/db/dump_db.sh
New file
0,0 → 1,4
#!/bin/bash
 
mysqldump -h localhost -u kawai -p1kawai23 --no-create-db --add-locks=FALSE --lock-tables=FALSE --databases Kawai | perl -pe 's/^\/\*.+\*\/;$//g' | perl -pe 's/\) ENGINE.+$/\);/g' | perl -pe 's/^USE.+$//g' > kawai.sql
 
Property changes:
Added: svn:executable
+ *
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/db/grant.sql
New file
0,0 → 1,0
grant all privileges on Kawai.* to 'kawai'@'localhost' identified by '1kawai23';
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/db/kawai.sql
New file
0,0 → 1,156
-- MySQL dump 10.13 Distrib 5.1.40, for apple-darwin9.5.0 (i386)
--
-- Host: localhost Database: Kawai
-- ------------------------------------------------------
-- Server version 5.1.40
 
 
 
 
 
 
 
 
 
 
 
 
--
-- Current Database: `Kawai`
--
 
 
 
--
-- Table structure for table `Pages`
--
 
DROP TABLE IF EXISTS `Pages`;
 
 
CREATE TABLE `Pages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`language_id` int(11) NOT NULL,
`front_page` enum('T','F') NOT NULL DEFAULT 'F',
`system_page` enum('T','F') NOT NULL DEFAULT 'F',
`title` varchar(255) DEFAULT NULL,
`body` text NOT NULL,
`modified_by` int(11) DEFAULT NULL,
`modified_on` timestamp NULL DEFAULT NULL,
`created_by` int(11) NOT NULL,
`created_on` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`deleted` enum('T','F') NOT NULL DEFAULT 'F',
PRIMARY KEY (`id`),
UNIQUE KEY `indx_name_lang` (`name`,`language_id`),
KEY `indx_deleted` (`deleted`),
KEY `indx_front_page` (`front_page`),
KEY `indx_language_id` (`language_id`)
);
 
 
--
-- Dumping data for table `Pages`
--
 
 
INSERT INTO `Pages` VALUES (1,'LeftColumn',1,'F','T','','<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" /]</li>\r\n<li>[pageLink name=\"Page2\" text=\"My Page Two\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"large\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h4>Section H4</h4>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"medium\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"medium\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"medium\">Google</a></li>\r\n</ul>\r\n<br/>\r\n\r\n<h5>Section H5</h5>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"small\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"small\">Google</a></li>\r\n</ul>\r\n',2,'2011-11-06 19:18:29',1,'2011-10-25 21:32:07','F'),(2,'LeftColumn',2,'F','T','','<h3>Seção H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"Página Um\" /]</li>\r\n<li>[pageLink name=\"Page2\" text=\"Página Dois\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h3>Seção H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"Página Um\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"large\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h4>Seção H4</h4>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"Página Um\" class=\"medium\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"medium\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"medium\">Google</a></li>\r\n</ul>\r\n<br/>\r\n\r\n<h5>Seção H5</h5>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"Página Um\" class=\"small\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"small\">Google</a></li>\r\n</ul>\r\n\r\n',2,'2011-11-06 19:16:38',1,'2011-10-25 21:32:07','F'),(26,'Page1',1,'F','F','My Page One','<h2>My Page One</h2>\r\nWrite whatever you want here:\r\n<ul>\r\n<li>\r\nBlah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah\r\n</li>\r\n</ul>\r\n<br/>\r\n[code]\r\n\r\npackage org.kawai.model;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\nimport java.util.Locale;\r\n\r\nimport org.mentawai.list.ListData;\r\nimport org.mentawai.list.SimpleListData;\r\n\r\npublic class Language {\r\n\r\n private static final List<Language> LANGUAGES = new ArrayList<Language>(16);\r\n \r\n private final int id;\r\n private final String name;\r\n private final Locale loc;\r\n private final String imageFile;\r\n\r\n public Language(int code, String name, String locale, String imageFile) {\r\n this.id = code;\r\n this.name = name;\r\n this.loc = getLocaleFromString(locale);\r\n this.imageFile = imageFile;\r\n }\r\n \r\n public Language(int code, String name, String locale) {\r\n this(code, name, locale, null);\r\n }\r\n \r\n public static void add(Language language) {\r\n LANGUAGES.add(language);\r\n }\r\n \r\n public static Language getDefault() {\r\n if (LANGUAGES.isEmpty()) throw new IllegalStateException(\"No languages were defined!\");\r\n return LANGUAGES.get(0);\r\n }\r\n\r\n public int getId() {\r\n return id;\r\n }\r\n \r\n public String getName() {\r\n return name;\r\n }\r\n \r\n public Locale getLocale() {\r\n return loc;\r\n }\r\n \r\n public String getImageFile() {\r\n return imageFile;\r\n }\r\n \r\n @Override\r\n public String toString() {\r\n return name;\r\n }\r\n \r\n public static ListData getListData() {\r\n SimpleListData list = new SimpleListData(\"languages\");\r\n for(Language l : LANGUAGES) {\r\n list.add(l.getId(), l.getName());\r\n }\r\n return list;\r\n }\r\n \r\n public static Language fromId(int id) {\r\n for(Language l : LANGUAGES) {\r\n if (l.getId() == id) return l;\r\n }\r\n return null;\r\n }\r\n \r\n public static Language fromLocale(Locale loc) {\r\n if (loc == null) return null;\r\n for(Language l : LANGUAGES) {\r\n if (l.getLocale().equals(loc)) return l;\r\n }\r\n for(Language l : LANGUAGES) {\r\n if (l.getLocale().getLanguage().equals(loc.getLanguage())) {\r\n return l;\r\n }\r\n }\r\n return null;\r\n }\r\n \r\n public static Language fromLocale(String s) {\r\n if (s == null) return null;\r\n Locale loc = getLocaleFromString(s);\r\n return fromLocale(loc);\r\n }\r\n \r\n public static Language fromName(String name) {\r\n if (name == null) return null;\r\n for(Language l : LANGUAGES) {\r\n if (l.getName().equalsIgnoreCase(name)) return l;\r\n }\r\n return null;\r\n }\r\n \r\n public static Locale getLocaleFromString(String s) {\r\n if (s == null) return null;\r\n String[] temp = s.split(\"_\");\r\n if (temp.length == 1) {\r\n return new Locale(temp[0]);\r\n } else if (temp.length == 2) {\r\n return new Locale(temp[0], temp[1]);\r\n } else if (temp.length == 3) {\r\n return new Locale(temp[0], temp[1], temp[2]);\r\n }\r\n return null;\r\n }\r\n \r\n public static List<Language> all() {\r\n return LANGUAGES;\r\n }\r\n \r\n public static void clear() {\r\n LANGUAGES.clear();\r\n }\r\n}\r\n[/code]\r\n',2,'2011-11-06 18:48:54',1,'2011-11-06 18:48:20','F'),(3,'Intro',1,'T','F','Welcome to Kawai, the Wiki for Open Source projects!','<h1>Header H1</h1>\r\n<ul>\r\n <li>Test 1</li>\r\n <li>Test 2</li>\r\n <li>Test 3</li>\r\n</ul>\r\n<br />\r\n\r\n<h2>Header H2</h2>\r\nSome content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. Some content goes here. \r\n<br /><br/>\r\n\r\n<h3>Header H3</h3>\r\nYou can use the &#91;code&#93; tag to format source code:\r\n<br/><br/>\r\n[code]\r\npackage org.kawai.tag.kcode;\r\n\r\nimport java.util.Map;\r\n\r\nimport javax.servlet.jsp.JspException;\r\nimport javax.servlet.jsp.PageContext;\r\n\r\npublic interface KCode {\r\n \r\n public String getTag();\r\n \r\n public boolean hasBody();\r\n \r\n public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException;\r\n}\r\n[/code]\r\n<p>\r\nAnd simple HTML to write your technical content. There are also many kawai tags that you can use and you can even create your own tags to help you.\r\n</p>\r\n<h4>Header H4</h4>\r\n<ul>\r\n <li>Test 1</li>\r\n <li>Test 2</li>\r\n <li>Test 3</li>\r\n <li>Test 4</li>\r\n</ul>\r\n<h5>Header H5</h5>\r\n<ul>\r\n <li>Test 1</li>\r\n <li>Test 2</li>\r\n <li>Test 3</li>\r\n <li>Test 4</li>\r\n</ul>\r\n<br />\r\n',2,'2011-11-06 18:44:11',1,'2011-10-25 21:32:07','F'),(4,'Intro',2,'T','F','Bem-vindo ao Kawai, o Wiki para Open Source','<h1>Cabeçalho H1</h1>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n</ul>\r\n<br />\r\n\r\n<h2>Cabeçalho H2</h2>\r\nAlgum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. \r\n<br /><br/>\r\n\r\n<h3>Header H3</h3>\r\nVocê também pode formatar código facilmente com a tag &#91;code&#93;:\r\n<br/><br/>\r\n[code]\r\npackage org.kawai.tag.kcode;\r\n\r\nimport java.util.Map;\r\n\r\nimport javax.servlet.jsp.JspException;\r\nimport javax.servlet.jsp.PageContext;\r\n\r\npublic interface KCode {\r\n \r\n public String getTag();\r\n \r\n public boolean hasBody();\r\n \r\n public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException;\r\n}\r\n[/code]\r\n<p>\r\nPara publicar conteúdo você pode usar tags simples de HTML ou as tags do Kawai. E você pode criar suas próprias tags.\r\n</p>\r\n<h4>Cabeçalho H4</h4>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<h5>Cabeçalho H5</h5>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<br />\r\n',2,'2011-11-06 19:19:10',1,'2011-10-25 21:32:07','F'),(5,'CSS',1,'F','T','','/************************/\r\n/* CSS BASE SddddddTARTS */\r\n/************************/\r\nbody {\r\n margin: 0px;\r\n padding: 0px 0px 10px 0px;\r\n}\r\nimg {\r\n border:none;\r\n}\r\ntable {\r\n padding:0px;\r\n width: 100%;\r\n margin-left: -2px;\r\n margin-right: -2px;\r\n}\r\nacronym {\r\n cursor: help;\r\n border-bottom: 1px dotted #feb;\r\n}\r\ntable.bodyTable th, table.bodyTable td {\r\n padding: 2px 4px 2px 4px;\r\n vertical-align: top;\r\n}\r\ndiv.clear{\r\n clear:both;\r\n visibility: hidden;\r\n}\r\ndiv.clear hr{\r\n display: none;\r\n}\r\n\r\niframe { \r\nwidth: 100%;\r\n_width: 80%; /* IE 6 */\r\n}\r\n\r\n#projectLogo {\r\n font-size: xx-large; \r\n font-weight: bold;\r\n}\r\n#organizationLogo img, #projectLogo img, #projectLogo span{\r\n margin: 8px;\r\n}\r\n#projectLogo span{\r\n border: 1px solid;\r\n padding: 4px 10px 4px 10px;\r\n background-color: #eee;\r\n cursor: pointer;\r\n}\r\n.xleft, #organizationLogo img{\r\n float:left;\r\n} \r\n.xright, #projectLogo img, #projectLogo span{\r\n float:right;\r\n text-shadow: #7CFC00;\r\n}\r\n#banner {\r\n border-bottom: 1px solid #fff;\r\n}\r\n#banner img {\r\n border: none;\r\n}\r\n#footer, #breadcrumbs {\r\n padding: 3px 10px 3px 10px;\r\n}\r\n#leftColumn {\r\n width: 18%;\r\n float:left;\r\n}\r\n#bodyColumn {\r\n margin-left: 20%;\r\n margin-right: 1%;\r\n}\r\n#navcolumn {\r\n padding: 8px 4px 0 8px;\r\n}\r\n#navcolumn h5, #navcolumn ul {\r\n margin: 0;\r\n padding: 0;\r\n font-size: small;\r\n}\r\n#navcolumn li {\r\n list-style-type: none;\r\n background-image: none;\r\n background-repeat: no-repeat;\r\n background-position: 0 0.4em;\r\n padding-left: 16px;\r\n list-style-position: ouside;\r\n line-height: 1.2em;\r\n font-size: smaller;\r\n}\r\n#navcolumn li.expanded {\r\n background-image: url(../images/expanded.gif);\r\n}\r\n#navcolumn li.collapsed {\r\n background-image: url(../images/collapsed.gif);\r\n}\r\n#poweredBy {\r\n text-align: center;\r\n}\r\n#navcolumn img {\r\n margin-top: 10px;\r\n margin-bottom: 3px;\r\n}\r\n#poweredBy img {\r\n display:block;\r\n margin: 20px 0 20px 17px;\r\n border: 1px solid black;\r\n width: 90px;\r\n height: 30px;\r\n}\r\n#search img {\r\n margin: 0px;\r\n display: block;\r\n}\r\n#search #q, #search #btnG {\r\n border: 1px solid #999;\r\n margin-bottom:10px;\r\n}\r\n#search form {\r\n margin: 0px;\r\n}\r\n#lastPublished {\r\n font-size: x-small;\r\n}\r\n.navSection {\r\n margin-bottom: 2px;\r\n padding: 8px;\r\n}\r\n.navSectionHead {\r\n font-weight: bold;\r\n font-size: x-small;\r\n}\r\n.section {\r\n padding: 4px;\r\n}\r\n#footer {\r\n font-size: x-small;\r\n}\r\n#breadcrumbs {\r\n font-size: x-small;\r\n margin: 0pt;\r\n}\r\n.source {\r\n padding: 12px;\r\n margin: 1em 7px 1em 7px;\r\n}\r\n.source pre {\r\n margin: 0px;\r\n padding: 0px;\r\n}\r\n\r\n/****************************/\r\n/* CSS OVERRIDE STARTS HERE */\r\n/****************************/\r\n\r\nbody, td, select, input, li{\r\n font-family: Verdana, Helvetica, Arial, sans-serif;\r\n font-size: 13px;\r\n}\r\na {\r\n text-decoration: none;\r\n}\r\na:link {\r\n color:#36a;\r\n}\r\na:visited {\r\n color:#47a;\r\n}\r\na:active, a:hover {\r\n color:#69c;\r\n}\r\na.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {\r\n background: url(../images/external.png) right center no-repeat;\r\n padding-right: 15px;\r\n}\r\na.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover {\r\n background: url(../images/newwindow.png) right center no-repeat;\r\n padding-right: 18px;\r\n}\r\n\r\n#bodyColumn h1 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #999;\r\n color: #900;\r\n background-color: #ccc;\r\n font-weight:900;\r\n font-size: 28px;\r\n}\r\n\r\n#bodyColumn h2 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #999;\r\n color: #900;\r\n background-color: #ddd;\r\n font-weight:900;\r\n font-size: 24px;\r\n}\r\n\r\n#bodyColumn h3 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #aaa;\r\n color: #900;\r\n background-color: #eee;\r\n font-weight: normal;\r\n font-size: 20px;\r\n}\r\n#bodyColumn h4 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #aaa;\r\n color: #900;\r\n background-color: #eee;\r\n font-weight: normal;\r\n font-size: 16px;\r\n}\r\n#bodyColumn h5 {\r\n padding: 4px 4px 4px 6px;\r\n border: 1px solid #aaa;\r\n color: #900;\r\n background-color: #fff;\r\n font-weight: normal;\r\n font-size: 14px;\r\n}\r\n\r\n\r\np {\r\n line-height: 1.3em;\r\n font-size: small;\r\n}\r\n#breadcrumbs {\r\n border-top: 1px solid #aaa;\r\n border-bottom: 1px solid #aaa;\r\n background-color: #ccc;\r\n}\r\n#leftColumn {\r\n margin: 10px 0 0 5px;\r\n border: 1px solid #999;\r\n background-color: #eee;\r\n}\r\n#navcolumn h3 {\r\n font-size: 14px;\r\n border-bottom: 1px solid #aaaaaa;\r\n padding-left: 4px;\r\n}\r\n#navcolumn h4 {\r\n font-size: 12px;\r\n border-bottom: 1px solid #aaaaaa;\r\n padding-left: 4px;\r\n}\r\n\r\n#navcolumn h5 {\r\n font-size: smaller;\r\n border-bottom: 1px solid #aaaaaa;\r\n padding-left: 4px;\r\n margin-bottom: 15px;\r\n}\r\n\r\n#navcolumn .large {\r\n font-size: 14px;\r\n padding-bottom: 2px;\r\n}\r\n\r\n#navcolumn .largeClicked {\r\n font-size: 14px;\r\n padding-bottom: 2px;\r\n color: #451D29;\r\n}\r\n\r\n\r\n#navcolumn .medium {\r\n font-size: 13px;\r\n padding-bottom: 2px;\r\n}\r\n\r\n#navcolumn .small {\r\n font-size: 12px;\r\n padding-bottom: 2px;\r\n}\r\n#navcolumn li {\r\n padding-bottom: 2px;\r\n}\r\ntable.bodyTable th {\r\n color: white;\r\n background-color: #bbb;\r\n text-align: left;\r\n font-weight: bold;\r\n}\r\n\r\ntable.bodyTable th, table.bodyTable td {\r\n font-size: 1em;\r\n}\r\n\r\ntable.bodyTable tr.a {\r\n background-color: #ddd;\r\n}\r\n\r\ntable.bodyTable tr.b {\r\n background-color: #eee;\r\n}\r\n\r\n.source {\r\n border: 1px solid #999;\r\n}\r\n\r\n/* For the list all pages table */\r\n\r\n#listAllPagesTable\r\n{\r\n font-family: \"Lucida Sans Unicode\", \"Lucida Grande\", Sans-Serif;\r\n font-size: 12px;\r\n background: #fff;\r\n margin: 25px;\r\n width: 90%;\r\n border-collapse: collapse;\r\n text-align: center;\r\n}\r\n#listAllPagesTable th\r\n{\r\n font-size: 14px;\r\n font-weight: normal;\r\n color: #039;\r\n padding: 10px 8px;\r\n border-bottom: 2px solid #6678b1;\r\n}\r\n#listAllPagesTable td\r\n{\r\n border-bottom: 1px solid #ccc;\r\n color: #669;\r\n padding: 6px 8px;\r\n height: 30px; overflow-y: hidden;\r\n}\r\n#listAllPagesTable tbody tr:hover td\r\n{\r\n color: #009;\r\n}\r\n\r\n/* for list revisions */\r\n\r\n.revisionsTable\r\n{\r\n font-family: \"Lucida Sans Unicode\", \"Lucida Grande\", Sans-Serif;\r\n font-size: 12px;\r\n background: #fff;\r\n margin: 25px;\r\n width: 90%;\r\n border-collapse: collapse;\r\n text-align: center;\r\n}\r\n.revisionsTable th\r\n{\r\n font-size: 14px;\r\n font-weight: normal;\r\n color: #039;\r\n padding: 10px 8px;\r\n border-bottom: 2px solid #6678b1;\r\n}\r\n.revisionsTable td\r\n{\r\n border-bottom: 1px solid #ccc;\r\n color: #669;\r\n padding: 6px 8px;\r\n height: 30px; overflow-y: hidden;\r\n}\r\n.revisionsTable tbody tr:hover td\r\n{\r\n color: #009;\r\n}\r\n',2,'2011-11-06 00:13:38',1,'2011-10-25 21:32:07','F'),(6,'PrintCSS',1,'F','T',NULL,'/* For printing */\n\n#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {\n display: none;\n}\n#bodyColumn, body.docs div.docs {\n margin: 0 !important;\n border: none !important\n}',NULL,NULL,1,'2011-10-25 21:32:07','F'),(17,'Logo',1,'F','T','','&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"[contextPath/]\"><img src=\"[contextPath /]/images/kawai-logo2.png\" border=\"0\" /></a>',2,'2011-11-05 23:21:51',1,'2011-10-29 12:47:06','F'),(18,'Logo',2,'F','T','','&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"[contextPath/]\"><img src=\"[contextPath /]/images/kawai-logo2.png\" border=\"0\" /></a>',2,'2011-11-05 23:02:42',1,'2011-10-29 12:47:06','F'),(20,'JavaScript',1,'F','T','','function myJavaScriptFunction {\r\n\r\n // put something here!!!!\r\n\r\n}\r\n',2,'2011-11-01 14:26:11',1,'2011-10-31 08:49:02','F'),(27,'Page1',2,'F','F','Minha Página Um','<h2>Minha Página Um</h2>\r\nPublique qualquer coisa aqui:\r\n<ul>\r\n<li>\r\nBlah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah\r\n</li>\r\n</ul>\r\n<br/>\r\n[code]\r\n\r\npackage org.kawai.model;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\nimport java.util.Locale;\r\n\r\nimport org.mentawai.list.ListData;\r\nimport org.mentawai.list.SimpleListData;\r\n\r\npublic class Language {\r\n\r\n private static final List<Language> LANGUAGES = new ArrayList<Language>(16);\r\n \r\n private final int id;\r\n private final String name;\r\n private final Locale loc;\r\n private final String imageFile;\r\n\r\n public Language(int code, String name, String locale, String imageFile) {\r\n this.id = code;\r\n this.name = name;\r\n this.loc = getLocaleFromString(locale);\r\n this.imageFile = imageFile;\r\n }\r\n \r\n public Language(int code, String name, String locale) {\r\n this(code, name, locale, null);\r\n }\r\n \r\n public static void add(Language language) {\r\n LANGUAGES.add(language);\r\n }\r\n \r\n public static Language getDefault() {\r\n if (LANGUAGES.isEmpty()) throw new IllegalStateException(\"No languages were defined!\");\r\n return LANGUAGES.get(0);\r\n }\r\n\r\n public int getId() {\r\n return id;\r\n }\r\n \r\n public String getName() {\r\n return name;\r\n }\r\n \r\n public Locale getLocale() {\r\n return loc;\r\n }\r\n \r\n public String getImageFile() {\r\n return imageFile;\r\n }\r\n \r\n @Override\r\n public String toString() {\r\n return name;\r\n }\r\n \r\n public static ListData getListData() {\r\n SimpleListData list = new SimpleListData(\"languages\");\r\n for(Language l : LANGUAGES) {\r\n list.add(l.getId(), l.getName());\r\n }\r\n return list;\r\n }\r\n \r\n public static Language fromId(int id) {\r\n for(Language l : LANGUAGES) {\r\n if (l.getId() == id) return l;\r\n }\r\n return null;\r\n }\r\n \r\n public static Language fromLocale(Locale loc) {\r\n if (loc == null) return null;\r\n for(Language l : LANGUAGES) {\r\n if (l.getLocale().equals(loc)) return l;\r\n }\r\n for(Language l : LANGUAGES) {\r\n if (l.getLocale().getLanguage().equals(loc.getLanguage())) {\r\n return l;\r\n }\r\n }\r\n return null;\r\n }\r\n \r\n public static Language fromLocale(String s) {\r\n if (s == null) return null;\r\n Locale loc = getLocaleFromString(s);\r\n return fromLocale(loc);\r\n }\r\n \r\n public static Language fromName(String name) {\r\n if (name == null) return null;\r\n for(Language l : LANGUAGES) {\r\n if (l.getName().equalsIgnoreCase(name)) return l;\r\n }\r\n return null;\r\n }\r\n \r\n public static Locale getLocaleFromString(String s) {\r\n if (s == null) return null;\r\n String[] temp = s.split(\"_\");\r\n if (temp.length == 1) {\r\n return new Locale(temp[0]);\r\n } else if (temp.length == 2) {\r\n return new Locale(temp[0], temp[1]);\r\n } else if (temp.length == 3) {\r\n return new Locale(temp[0], temp[1], temp[2]);\r\n }\r\n return null;\r\n }\r\n \r\n public static List<Language> all() {\r\n return LANGUAGES;\r\n }\r\n \r\n public static void clear() {\r\n LANGUAGES.clear();\r\n }\r\n}\r\n[/code]\r\n',0,NULL,1,'2011-11-06 18:50:17','F'),(28,'Page2',1,'F','F','My Page Two','<h2>My Page 2</h2>\r\nYou can also show the uploaded pictures with some kawai tags:\r\n<ul>\r\n<li>American flag: [img file=\"flag_usa.gif\" /]</li>\r\n<br/>\r\n<li>Brazilian flag: [img file=\"flag_brazil.gif\" /]</li>\r\n</ul>\r\n\r\n',2,'2011-11-06 18:54:14',1,'2011-11-06 18:53:01','F'),(29,'Page2',2,'F','F','Minha Página Dois','<h2>Minha Página Dois</h2>\r\nVocê também pode exibir <i>uploaded images</i> com as tags do Kawai:\r\n<ul>\r\n<li>Bandeira americana: [img file=\"flag_usa.gif\" /]</li>\r\n<br/>\r\n<li>Bandeira brasileira: [img file=\"flag_brazil.gif\" /]</li>\r\n</ul>\r\n',0,NULL,1,'2011-11-06 18:56:02','F');
 
 
--
-- Table structure for table `Previews`
--
 
DROP TABLE IF EXISTS `Previews`;
 
 
CREATE TABLE `Previews` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`language_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`created_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`title` varchar(200) NOT NULL,
`body` text NOT NULL,
`comment` varchar(250) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `index_p_l_u` (`name`,`language_id`,`user_id`)
);
 
 
--
-- Dumping data for table `Previews`
--
 
 
 
 
--
-- Table structure for table `Revisions`
--
 
DROP TABLE IF EXISTS `Revisions`;
 
 
CREATE TABLE `Revisions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`revision` int(11) NOT NULL,
`name` varchar(100) NOT NULL,
`language_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`created_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`old_title` varchar(250) DEFAULT NULL,
`new_title` varchar(250) DEFAULT NULL,
`old_body` text,
`new_body` text NOT NULL,
`comment` varchar(250) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_n_l_r` (`name`,`language_id`,`revision`),
KEY `indx_language_id` (`language_id`),
KEY `indx_created_on` (`created_on`)
);
 
 
--
-- Dumping data for table `Revisions`
--
 
 
INSERT INTO `Revisions` VALUES (84,0,'LeftColumn',1,2,'2011-11-06 19:18:29','','','<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" /]</li>\r\n<li>[pageLink name=\"Page2\" text=\"My Page Two\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"large\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h4>Section H4</h4>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"medium\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"medium\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"medium\">Google</a></li>\r\n</ul>\r\n<br/>\r\n\r\n<h5>Section H5</h5> \r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"small\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"small\">Google</a></li>\r\n</ul>\r\n','<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" /]</li>\r\n<li>[pageLink name=\"Page2\" text=\"My Page Two\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h3>Section H3</h3>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"large\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"large\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"large\">Google</a></li>\r\n</ul>\r\n\r\n<h4>Section H4</h4>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"medium\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"medium\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"medium\">Google</a></li>\r\n</ul>\r\n<br/>\r\n\r\n<h5>Section H5</h5>\r\n<ul>\r\n<li>[pageLink name=\"Page1\" text=\"My Page One\" class=\"small\" /]</li>\r\n<li><a href=\"http://www.cnn.com\" target=\"_blank\" class=\"small\">CNN</a></li>\r\n<li><a href=\"http://www.google.com\" target=\"_blank\" class=\"small\">Google</a></li>\r\n</ul>\r\n','changed link'),(85,0,'Intro',2,2,'2011-11-06 19:19:10','Bem-vindo ao Kawai, o Wiki para Open Source','Bem-vindo ao Kawai, o Wiki para Open Source','<h1>Cabeçalho H1</h1>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n</ul>\r\n<br />\r\n\r\n<h2>Cabeçalho H2</h2>\r\nAlgum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. \r\n<br /><br/>\r\n\r\n<h3>Header H3</h3>\r\nVocê também pode formatar código facilmente com a tag &#91;code&#93;:\r\n<br/><br/>\r\n[code]\r\npackage org.kawai.tag.kcode;\r\n\r\nimport java.util.Map;\r\n\r\nimport javax.servlet.jsp.JspException;\r\nimport javax.servlet.jsp.PageContext;\r\n\r\npublic interface KCode {\r\n \r\n public String getTag();\r\n \r\n public boolean hasBody();\r\n \r\n public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException;\r\n}\r\n[/code]\r\n<p>\r\nPara publicar conteúdo você pode usar tags simples de HTML ou as tags do Kawai. E você pode criar suas próprias tags.\r\n</p>\r\n<h4>Header H4</h4>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<h5>Header H5</h5>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<br />\r\n','<h1>Cabeçalho H1</h1>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n</ul>\r\n<br />\r\n\r\n<h2>Cabeçalho H2</h2>\r\nAlgum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. Algum conteúdo aqui. \r\n<br /><br/>\r\n\r\n<h3>Header H3</h3>\r\nVocê também pode formatar código facilmente com a tag &#91;code&#93;:\r\n<br/><br/>\r\n[code]\r\npackage org.kawai.tag.kcode;\r\n\r\nimport java.util.Map;\r\n\r\nimport javax.servlet.jsp.JspException;\r\nimport javax.servlet.jsp.PageContext;\r\n\r\npublic interface KCode {\r\n \r\n public String getTag();\r\n \r\n public boolean hasBody();\r\n \r\n public String process(PageContext pageContext, Map<String, String> attributes, String body) throws JspException;\r\n}\r\n[/code]\r\n<p>\r\nPara publicar conteúdo você pode usar tags simples de HTML ou as tags do Kawai. E você pode criar suas próprias tags.\r\n</p>\r\n<h4>Cabeçalho H4</h4>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<h5>Cabeçalho H5</h5>\r\n<ul>\r\n <li>Teste 1</li>\r\n <li>Teste 2</li>\r\n <li>Teste 3</li>\r\n <li>Teste 4</li>\r\n</ul>\r\n<br />\r\n','tradução');
 
 
--
-- Table structure for table `Users`
--
 
DROP TABLE IF EXISTS `Users`;
 
 
CREATE TABLE `Users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) DEFAULT NULL,
`password` varchar(100) DEFAULT NULL,
`group_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_username` (`username`)
);
 
 
--
-- Dumping data for table `Users`
--
 
 
INSERT INTO `Users` VALUES (1,'admin','abc123',1),(2,'editor','abc123',2),(4,'helio.frota','abc123',1),(3,'saoj','abc123',1);
 
 
 
 
 
 
 
 
 
 
 
-- Dump completed on 2011-11-06 13:20:16
/tags/kawai-1.0.1/src/main/webapp/WEB-INF/web.xml
New file
0,0 → 1,53
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
 
<!-- Override default start page -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
 
 
<!-- The Mentawai controller -->
<servlet>
<servlet-name>Controller</servlet-name>
<servlet-class>org.mentawai.core.Controller</servlet-class>
<init-param>
<param-name>applicationManager</param-name>
<param-value>org.kawai.AppManager</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
 
<!-- Listener to grag context path at startup -->
<listener>
<listener-class>org.mentawai.core.ContextPathGrabber</listener-class>
</listener>
 
<!-- You must choose an extension to indicate a mentawai action -->
<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>*.mtw</url-pattern>
</servlet-mapping>
<!-- filter>
<filter-name>DebugFilter</filter-name>
<filter-class>org.mentawai.util.DebugServletFilter</filter-class>
</filter>
 
<filter-mapping>
<filter-name>DebugFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping -->
 
<session-config>
<session-timeout>30</session-timeout>
</session-config>
 
</web-app>
/tags/kawai-1.0.1/src/main/webapp/show_page.jsp
New file
0,0 → 1,1368
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@taglib prefix="mtw" uri="http://www.mentaframework.org/tags-mtw/"%>
<%@ taglib uri="/WEB-INF/tld/taglib.tld" prefix="k" %>
 
<html>
<head>
 
<title><mtw:out value="bodyColumn.title" /></title>
 
<style type="text/css" media="all">
@import url("<mtw:contextPath/>/Page.getCSS.mtw?file=main.css");
</style>
 
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="imagetoolbar" content="false" />
 
<link rel="shortcut icon" type="image/x-icon" href="<mtw:contextPath />/images/kawai.ico" />
<link rel="icon" type="image/gif" href="<mtw:contextPath />/images/kawai.gif" />
<link rel="stylesheet" href="<mtw:contextPath/>/Page.getPrintCSS.mtw?file=print.css" type="text/css" media="print" />
 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="author" content="Sergio Oliveira Junior" />
<meta name="email" content="sergio.oliveira.jr@gmail.com" />
 
<link href="<mtw:contextPath/>/css/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery/jquery-1.6.4.min.js"></script>
<script src="<mtw:contextPath/>/js/jquery-ui-1.8.16.custom.min.js"></script>
 
<link href="<mtw:contextPath />/uploadify/uploadify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="<mtw:contextPath />/uploadify/swfobject.js"></script>
<script type="text/javascript" src="<mtw:contextPath />/uploadify/jquery.uploadify.v2.1.4.min.js"></script>
 
<!-- Include required JS files -->
<script type="text/javascript" src="<mtw:contextPath/>/sh/js/shCore.js"></script>
<!--
At least one brush, here we choose JS. You need to include a brush for every
language you want to highlight
-->
<script type="text/javascript" src="<mtw:contextPath/>/sh/js/shBrushJava.js"></script>
<!-- Include *at least* the core style and default theme -->
<link href="<mtw:contextPath/>/sh/css/shCore.css" rel="stylesheet" type="text/css" />
<link href="<mtw:contextPath/>/sh/css/shThemeDefault.css" rel="stylesheet" type="text/css" />
<!-- Finally, to actually run the highlighter, you need to include this JS on your page -->
<script type="text/javascript">
SyntaxHighlighter.all();
</script>
 
<!-- User JavaScript -->
<script type="text/javascript">
 
<mtw:out value="js.body" />
 
</script>
 
 
<script language="JavaScript">
$(document).ready(function() {
<mtw:if test="showForm" value="login">
showLoginDialog();
</mtw:if>
 
<mtw:if test="showForm" value="addNewUser">
showAddNewUserDialog(false);
</mtw:if>
<mtw:if test="showForm" value="add">
showCreateNewPageDialog();
</mtw:if>
 
<mtw:outMessage>
alert('<mtw:out />');
</mtw:outMessage>
 
$('#loginDialog').keyup(function(e) {
if (e.keyCode == 13) {
$('#loginForm').submit();
}
});
$('#file_upload').uploadify({
'uploader' : '<mtw:contextPath />/uploadify/uploadify.swf',
'script' : '<mtw:contextPath />/File.upload.mtw;jsessionid=<%= session.getId() %>',
'cancelImg' : '<mtw:contextPath />/uploadify/cancel.png',
'folder' : '<mtw:contextPath />/uploads',
'scriptData': { 'JSESSIONID': '<%= session.getId() %>'},
'auto' : true,
'multi' : true,
'onComplete' : function(event, ID, fileObj, response, data) {
 
var resp = eval('(' + response + ')');
if (resp.status == 'success') {
$('#uploadResults').append('<tr><td style="color: blue;">' + resp.msg + '</td></tr>');
} else if (resp.status == 'error') {
$('#uploadResults').append('<tr><td style="color: red;">' + resp.msg + '</td></tr>');
}
}
});
 
// ajax add new user:
 
$('#usernameLoading').hide();
$('#addNewUserUsername').blur( function() {
$('#usernameMessage').hide();
if ($('#addNewUserUsername').val().trim() != '') {
 
$('#usernameLoading').show();
$.post("<mtw:contextPath />/User.check.mtw", {
username : $('#addNewUserUsername').val()
}, function(response) {
$('#usernameMessage').fadeOut();
setTimeout("usernameResult('"
+ escape(response) + "')", 400);
});
}
return false;
});
 
});
function prepareEditPageDialog(myDialog, theTitle) {
 
options = {
autoOpen: false,
width: 1000,
modal: true,
title: theTitle,
buttons: [
{
text: "Save",
click: function() { $('#editPageForm').submit(); }
},
{
text: "Preview",
click: function() { $('#editPagePreview').val('true'); $('#editPageForm').submit(); }
},
{
text: "Cancel",
click: function() { $(this).dialog("close"); }
}
]
};
 
myDialog.dialog(options);
 
return myDialog;
}
 
function prepareShowPageDialog(myDialog, theTitle) {
 
options = {
autoOpen: false,
width: 800,
modal: true,
title: theTitle,
buttons: [
{
text: "Back",
click: function() { $(this).dialog("close"); }
},
{
text: "Close",
click: function() { $(this).dialog("close"); $('#listLastRevisionsDialog').dialog('close'); $('#listRevisionsDialog').dialog('close'); $('#listAllPagesDialog').dialog('close'); }
}
]
};
 
myDialog.dialog(options);
 
return myDialog;
}
function prepareFileListDialog(myDialog) {
 
options = {
autoOpen: false,
width: 400,
height: 300,
modal: true,
title: "Files uploaded:",
buttons: [
{
text: "Close",
click: function() { $(this).dialog("close"); }
}
]
};
 
myDialog.dialog(options);
 
return myDialog;
}
 
function prepareListAllPagesDialog(myDialog, showEdit) {
 
listAllPagesButtons = [
{
text: "Close",
click: function() { $(this).dialog("close"); }
}];
 
if (showEdit) {
listAllPagesButtons = [
{
text: "FrontPage",
click: function() { $('#listAllPagesForm').attr('action', '<mtw:contextPath/>/Page.setFrontPage.mtw'); $('#listAllPagesForm').submit(); }
},
{
text: "Delete",
click: function() { $('#listAllPagesForm').attr('action', '<mtw:contextPath/>/Page.delete.mtw'); $('#listAllPagesForm').submit(); }
},
{
text: "Close",
click: function() { $(this).dialog("close"); }
}];
}
 
options = {
autoOpen: false,
width: 800,
height: 450,
modal: true,
title: 'Pages:',
buttons: listAllPagesButtons
};
 
myDialog.dialog(options);
 
return myDialog;
}
 
function prepareListRevisionsDialog(myDialog, name, lang, showBackButton) {
theButtons = [
{
text: "Back",
click: function() { $(this).dialog("close"); }
},
{
text: "Close",
click: function() { $(this).dialog("close"); $('#listAllPagesDialog').dialog('close'); }
}
];
if (!showBackButton) {
theButtons = [
{
text: "Close",
click: function() { $(this).dialog("close"); $('#listAllPagesDialog').dialog('close'); }
}
];
}
 
options = {
autoOpen: false,
width: 800,
height: 450,
modal: true,
title: 'Revisions for ' + name + ' in ' + lang,
buttons: theButtons
};
 
myDialog.dialog(options);
 
return myDialog;
}
function prepareListLastRevisionsDialog(myDialog, language) {
theButtons = [
{
text: "Close",
click: function() { $(this).dialog("close"); }
}
];
 
options = {
autoOpen: false,
width: 800,
height: 450,
modal: true,
title: 'Latest revisions in ' + language,
buttons: theButtons
};
 
myDialog.dialog(options);
 
return myDialog;
}
function prepareFileUploadDialog(myDialog) {
options = {
autoOpen: false,
width: 400,
height: 300,
modal: true,
title: 'Uploading files...',
buttons: [
{
text: "Close",
click: function() { $(this).dialog("close"); }
}
]
};
 
myDialog.dialog(options);
 
return myDialog;
}
function showEditPageDialog(pageName, lang) {
 
$.getJSON('<mtw:contextPath />/Page.get.mtw?name=' + pageName + '&lang=' + lang, function(data) {
 
if (data.page.systemPage) {
$('.editPageTitleCell').hide();
} else {
$('.editPageTitleCell').show();
$('#editPageTitle').val(data.page.title);
}
if (data.page.new) {
$('#editPageCommentCell').hide();
} else {
$('#editPageCommentCell').show();
if (data.page.preview) {
$('#editPageComment').val(data.page.comment);
}
}
$('#editPageTextArea').val(data.page.body);
$('#editPageName').val(data.page.name);
$('#editPageLang').val(data.page.lang);
 
myDialog = $('#editPageDialog');
myDialog = prepareEditPageDialog(myDialog, 'Editing <i><font color="darkblue">' + pageName + "</font></i> in <i>" + data.page.language.name + "<i>...");
myDialog.dialog('open');
});
return false;
}
function showFileListDialog() {
 
$.getJSON('<mtw:contextPath />/File.listFiles.mtw', function(data) {
 
$('#fileListTable').html('');
if (data.files.length == 0) {
$('#fileListTable').html('<tr><td align="center">No files uploaded yet!</td></tr>');
} else {
$.each(data.files, function(i,file) {
$('#fileListTable').append('<tr><td>' + file + '</td></tr>');
});
}
 
myDialog = $('#fileListDialog');
myDialog = prepareFileListDialog(myDialog);
myDialog.dialog('open');
});
return false;
}
 
function showShowPageDialog(pageName, lang, revision) {
 
$.getJSON('<mtw:contextPath />/Page.get.mtw?name=' + pageName + '&lang=' + lang + '&revision=' + revision, function(data) {
if (data.page.systemPage) {
$('.showPageTitleCell').hide();
} else {
$('.showPageTitleCell').show();
$('#showPageTitle').val(data.page.title);
}
$('#showPageTextArea').val(data.page.body);
 
theTitle = 'Showing <i><font color="darkblue">' + pageName + "</font></i> in <i>" + data.page.language.name + "<i>...";
if (revision > 0) {
theTitle += ' (Revision #' + revision + ')';
}
 
myDialog = $('#showPageDialog');
myDialog = prepareShowPageDialog(myDialog, theTitle);
myDialog.dialog('open');
});
return false;
}
 
function showEditPreviewDialog(pageName, lang) {
 
$.getJSON('<mtw:contextPath />/Page.getPreview.mtw?name=' + pageName + '&lang=' + lang, function(data) {
 
if (data.page.systemPage) {
$('.editPageTitleCell').hide();
} else {
$('.editPageTitleCell').show();
$('#editPageTitle').val(data.page.title);
}
if (data.page.new) {
$('#editPageCommentCell').hide();
} else {
$('#editPageCommentCell').show();
if (data.page.preview) {
$('#editPageComment').val(data.page.comment);
}
}
$('#editPageTextArea').val(data.page.body);
$('#editPageName').val(data.page.name);
$('#editPageLang').val(data.page.lang);
 
myDialog = $('#editPageDialog');
myDialog = prepareEditPageDialog(myDialog, 'Editing <i><font color="darkblue">' + pageName + "</font></i> in <i>" + data.page.language.name + "<i>...");
myDialog.dialog('open');
});
return false;
}
function showEditPreviewNewPageDialog(pageName, lang) {
 
$.getJSON('<mtw:contextPath />/Page.getPreview.mtw?name=' + pageName + '&lang=' + lang, function(data) {
$('#createNewPageName').val(data.page.name);
$('#createNewPageTitle').val(data.page.title);
$('#createNewPageLanguage').val(data.page.languageId);
$('#createNewPageTextArea').val(data.page.body);
$('#createNewPageNameError').text('');
$('#createNewPageTitleError').text('');
$('#createNewPageLanguageError').text('');
$('#createNewPageBodyError').text('');
showCreateNewPageDialog();
 
$('#createPageLanguageCell').hide();
});
return false;
}
function showListAllPagesDialog(isAdmin) {
 
$.getJSON('<mtw:contextPath />/Page.list.mtw', function(data) {
 
tableData = '';
tableData += '<tr>';
if (isAdmin) tableData += '<th>&nbsp;</th>';
tableData += '<th>Name</th>';
tableData += '<th>Language</th>';
tableData += '<th>Created By</th>';
tableData += '<th>Modified By</th>';
tableData += '<th>&nbsp;</th>';
tableData += '<th>&nbsp;</th>';
tableData += '<th>&nbsp;</th>';
tableData += '</tr>';
 
$.each(data.pages, function(i,page) {
pageName = page.name;
 
modifiedBy = '';
if (page.modifiedById > 0) {
modifiedBy = page.modifiedBy.username;
}
 
if (page.systemPage == true) {
pageName = '*' + pageName;
}
 
if (page.frontPage == true) {
pageName = '[' + pageName + ']';
}
modifiedOnTitle = '';
if (page.formattedModifiedOn != null) {
modifiedOnTitle = ' title="' + page.formattedModifiedOn + '"';
}
createdOnTitle = '';
if (page.formattedCreatedOn != null) {
createdOnTitle = ' title="' + page.formattedCreatedOn + '"';
}
radioCell = '&nbsp;';
viewCell = '&nbsp;';
if (page.CSS == false && page.systemPage == false) {
viewCell = '<a title="View Page" tabindex="-1" href="<mtw:contextPath/>/Page.mtw?name=' + page.name + '&lang=' + page.lang + '"><img src="<mtw:contextPath/>/images/preview.png" border="0" /></a> ';
if (page.frontPage == false) {
radioCell = '<input tabindex="-1" type="radio" name="pageId" id="pageId" value="' + page.id + '" />';
}
}
 
viewRevisionsCell = '<a title="View Revisions" class="revisionLink" tabindex="-1" href="#" onclick="return showListRevisionsDialog(\'' + page.name + '\',\'' + page.lang + '\',\'' + page.language.name + '\', true);"><img src="<mtw:contextPath/>/images/folder.png" height="24" height="20" border="0" /></a>';
nameTitle = '';
if (page.title != null && page.title != '') {
nameTitle = ' title="' + page.title + '"';
}
 
tableData += '<tr>';
if (isAdmin) tableData += '<td>' + radioCell + '</td>';
tableData += '<td' + nameTitle + '>' + pageName + '</td>';
tableData += '<td align="center">' + page.language.name + '</td>';
tableData += '<td align="center"' + createdOnTitle + '>' + page.createdBy.username + '</td>';
tableData += '<td align="center"' + modifiedOnTitle + '>' + modifiedBy + '</td>';
tableData += '<td align="center">' + viewCell + '</td>';
tableData += '<td align="center"><a tabindex="-1" title="View Html" href="#" onclick="return showShowPageDialog(\'' + page.name + '\',\'' + page.lang + '\', -1);"><img src="<mtw:contextPath/>/images/view.png" border="0" /></a></td>';
tableData += '<td align="center">' + viewRevisionsCell + '</td>';
tableData += '</tr>';
});
 
$('#listAllPagesTable').html(tableData);
 
myDialogDiv = $('#listAllPagesDialog');
myDialog = prepareListAllPagesDialog(myDialogDiv, isAdmin);
myDialog.dialog('open');
$('.ui-dialog :button').blur();
});
return false;
}
 
function showListRevisionsDialog(name, lang, language, showBackButton) {
 
$.getJSON('<mtw:contextPath />/Page.getRevisions.mtw?name=' + name + '&lang=' + lang, function(data) {
 
tableData = '';
tableData += '<tr>';
tableData += '<th>Revision</th>';
tableData += '<th>Author</th>';
tableData += '<th>Date</th>';
if (data.isSystemPage == false) {
tableData += '<th>&nbsp;</th>';
}
tableData += '<th>&nbsp;</th>';
tableData += '</tr>';
 
$.each(data.revisions, function(i,revision) {
titleForComment = '';
if (revision.comment != null && revision.comment != '') {
titleForComment = ' title="' + revision.comment + '"';
}
 
tableData += '<tr>';
tableData += '<td' + titleForComment + '>' + revision.revision + '</td>';
tableData += '<td align="center">' + revision.user.username + '</td>';
tableData += '<td align="center">' + revision.formattedCreatedOn + '</td>';
 
if (data.isSystemPage == false) {
tableData += '<td align="center"><a title="View Page" tabindex="-1" href="<mtw:contextPath/>/Page.mtw?name=' + revision.name + '&lang=' + revision.lang + '&revision=' + revision.revision +'"><img src="<mtw:contextPath/>/images/preview.png" border="0" /></a></td>';
}
tableData += '<td align="center"><a tabindex="-1" title="View Html" href="#" onclick="return showShowPageDialog(\'' + revision.name + '\',\'' + revision.lang + '\',' + revision.revision + ');"><img src="<mtw:contextPath/>/images/view.png" border="0" /></a></td>';
 
tableData += '</tr>';
});
 
$('#listRevisionsTable').html(tableData);
myDialog = $('#listRevisionsDialog');
myDialog = prepareListRevisionsDialog(myDialog, name, language, showBackButton);
myDialog.dialog('open');
$('.ui-dialog :button').blur();
});
return false;
}
function showListLastRevisionsDialog(lang, language, isLogged) {
 
$.getJSON('<mtw:contextPath />/Page.getLastRevisions.mtw?lang=' + lang, function(data) {
 
tableData = '';
tableData += '<tr>';
tableData += '<th>Page</th>';
tableData += '<th>Revision</th>';
tableData += '<th>Author</th>';
tableData += '<th>Date</th>';
tableData += '<th>Comment</th>';
tableData += '<th>&nbsp;</th>';
 
if (isLogged) {
tableData += '<th>&nbsp;</th>';
}
tableData += '</tr>';
 
$.each(data.revisions, function(i,revision) {
tableData += '<tr>';
pageName = revision.name;
if (revision.frontPage) {
pageName = '[' + pageName + ']';
} else if (revision.systemPage) {
pageName = '*' + pageName;
}
 
nameTitle = '';
if (revision.title != null && revision.title != '') {
nameTitle = ' title="' + revision.title + '"';
}
tableData += '<td' + nameTitle + ' align="center">' + pageName + '</td>';
tableData += '<td align="center">' + revision.revision + '</td>';
tableData += '<td align="center">' + revision.user.username + '</td>';
tableData += '<td align="center">' + revision.formattedCreatedOn + '</td>';
tableData += '<td align="left">' + revision.comment + '</td>';
 
if (!revision.systemPage) {
tableData += '<td align="center"><a title="View Page" tabindex="-1" href="<mtw:contextPath/>/Page.mtw?name=' + revision.name + '&lang=' + revision.lang + '&revision=' + revision.revision +'"><img src="<mtw:contextPath/>/images/preview.png" border="0" /></a></td>';
} else {
tableData += '<td>&nbsp;</td>';
}
 
if (isLogged) {
tableData += '<td align="center"><a tabindex="-1" title="View Html" href="#" onclick="return showShowPageDialog(\'' + revision.name + '\',\'' + revision.lang + '\',' + revision.revision + ');"><img src="<mtw:contextPath/>/images/view.png" border="0" /></a></td>';
}
tableData += '</tr>';
});
 
$('#listLastRevisionsTable').html(tableData);
myDialog = $('#listLastRevisionsDialog');
myDialog = prepareListLastRevisionsDialog(myDialog, language);
myDialog.dialog('open');
$('.ui-dialog :button').blur();
});
return false;
}
 
 
function showCreateNewPageDialog() {
 
$('#createNewPageFormName').val('<mtw:out value="bodyColumn.name" />');
$('#createNewPageFormLang').val('<mtw:out value="bodyColumn.lang" />');
$('#createPageLanguageCell').show();
 
myDialog = $('#createNewPageDialog');
myDialog = prepareCreateNewPageDialog(myDialog);
myDialog.dialog('open');
return false;
}
function prepareCreateNewPageDialog(myDialog) {
 
options = {
close: function() { clearCreateNewPageForm(); },
autoOpen: false,
width: 800,
modal: true,
title: "Create New Page:",
buttons: [
{
text: "Create",
click: function() { $('#createNewPageForm').submit(); }
},
{
text: "Preview",
click: function() { $('#createNewPageFormPreview').val('true'); $('#createNewPageForm').submit(); }
},
{
text: "Cancel",
click: function() { $(this).dialog("close"); }
}
]
};
 
myDialog.dialog(options);
 
return myDialog;
}
function showFileUploadDialog() {
$('#uploadResults').html('');
myDialog = $('#fileUploadDialog');
myDialog = prepareFileUploadDialog(myDialog);
myDialog.dialog('open');
}
function showLoginDialog() {
 
$('#loginFormName').val('<mtw:out value="bodyColumn.name" />');
$('#loginFormLang').val('<mtw:out value="bodyColumn.lang" />');
 
myDialog = $('#loginDialog');
myDialog = prepareLoginDialog(myDialog);
myDialog.dialog('open');
 
return false;
}
 
function showAddNewUserDialog(hideUsernameMessage) {
 
myDialog = $('#addNewUserDialog');
myDialog = prepareAddNewUserDialog(myDialog, hideUsernameMessage);
myDialog.dialog('open');
 
return false;
}
function clearLoginForm() {
$('#loginUsername').val('');
$('#loginPassword').val('');
$('#loginUsernameError').text('');
$('#loginPasswordError').text('');
}
 
function clearAddNewUserForm() {
$('#addNewUserUsername').val('');
$('#addNewUserPassword').val('');
$('#addNewUserPassconf').val('');
$('#addNewUserGroup').val('');
$('#usernameMessage').text('');
$('#addNewUserPasswordError').text('');
$('#addNewUserPassconfError').text('');
$('#addNewUserGroupError').text('');
}
function clearCreateNewPageForm() {
$('#createNewPageName').val('');
$('#createNewPageTitle').val('');
$('#createNewPageLanguage').val('');
$('#createNewPageTextArea').val('');
$('#createNewPageNameError').text('');
$('#createNewPageTitleError').text('');
$('#createNewPageLanguageError').text('');
$('#createNewPageBodyError').text('');
}
function prepareLoginDialog(myDialog) {
 
options = {
close: function() { clearLoginForm(); },
autoOpen: false,
width: 290,
modal: true,
title: "Login:",
buttons: [
{
text: "Login",
click: function() { $('#loginForm').submit(); }
},
{
text: "Cancel",
click: function() { $(this).dialog("close"); }
}
]
};
 
myDialog.dialog(options);
 
return myDialog;
}
 
function prepareAddNewUserDialog(myDialog, hideUsernameMessage) {
 
$('#usernameLoading').hide();
if (hideUsernameMessage) $('#usernameMessage').text('');
 
options = {
close: function() { clearAddNewUserForm(); },
autoOpen: false,
width: 550,
modal: true,
title: "Add New User:",
buttons: [
{
text: "Add",
click: function() { $('#addNewUserForm').submit(); }
},
{
text: "Cancel",
click: function() { $(this).dialog("close"); }
}
]
};
 
myDialog.dialog(options);
 
return myDialog;
}
function prepareConfirmDialog(myDialog) {
 
options = {
autoOpen: false,
width: 300,
modal: true,
title: "Confirmation:",
buttons: [
{
text: "Yes",
click: function() { $(this).dialog("close"); }
},
{
text: "No",
click: function() { $(this).dialog("close"); }
}
]
};
 
myDialog.dialog(options);
 
return myDialog;
}
function showConfirmDialog() {
 
myDialog = $('#confirmDialog');
myDialog = prepareConfirmDialog(myDialog);
myDialog.dialog('open');
 
return false;
}
function usernameResult(response) {
$('#usernameLoading').hide();
var res = unescape(response);
if (res == "error") {
$('#usernameMessage')
.html(
'<font color="red"><b>Error!</b></font>');
$('#usernameMessage').fadeIn();
} else if (res == "success") {
$('#usernameMessage').html(
'<img src="<mtw:contextPath />/images/chk.gif" />');
$('#usernameMessage').fadeIn();
} else if (res == "already") {
$('#usernameMessage')
.html(
'<font color="red"><b>Username already exists!</b></font>');
$('#usernameMessage').fadeIn();
}
}
</script>
<%@ include file="google_analytics.jsp" %>
 
</head>
 
<body class="composite">
 
<!-- For adding username -->
<div id="addNewUserDialog" style="display: none;">
<form action="<mtw:contextPath />/User.add.mtw" method="post" id="addNewUserForm">
<table>
<tr>
<td width="10%">
Username:
</td>
<td>
<mtw:input name="username" id="addNewUserUsername" size="20" maxlength="30" />
<span id="usernameLoading">
<img src="<mtw:contextPath />/images/loading.gif" />
</span>
<span id="usernameMessage">
<mtw:outError field="username">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
<tr>
<td>
Password:
</td>
<td>
<mtw:input name="password" type="password" size="20" maxlength="20" id="addNewUserPassword" />
<span id="addNewUserPasswordError">
<mtw:outError field="password">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
<tr>
<td>
Confirm:
</td>
<td>
<mtw:input name="passconf" type="password" size="20" maxlength="20" id="addNewUserPassconf" />
<span id="addNewUserPassconfError">
<mtw:outError field="passconf">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
<tr>
<td>
Group:
</td>
<td>
<mtw:select name="groupId" list="groups" emptyField="true" id="addNewUserGroup" />
<span id="addNewUserGroupError">
<mtw:outError field="groupId">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
</table>
</form>
</div>
 
<!-- For Testing -->
<div id="dialog" title="Dialog Title" style="display: none;">I'm in a dialog</div>
 
<!-- Close Confirm -->
<div id="confirmDialog" style="display: none;">
<span id="confirmMessage">The confirmation message goes here.</span>
</div>
 
<!-- For file upload -->
<div id="fileUploadDialog" style="display: none;">
<br/>
<input id="file_upload" name="file_upload" type="file" />
<table cellspacing="2" cellpadding="5" id="uploadResults" style="margin-top: 10px;">
</table>
</div>
 
<!-- For files listing -->
<div id="fileListDialog" style="display: none;">
<table cellspacing="2" cellpadding="5" id="fileListTable" style="margin-top: 10px;">
</table>
</div>
 
<!-- For Editing Pages -->
<div id="editPageDialog" style="display: none;">
<form id="editPageForm" action="<mtw:contextPath />/Page.edit.mtw" method="post">
<input type="hidden" name="name" id ="editPageName" value="" />
<input type="hidden" name="lang" id="editPageLang" value="" />
<input type="hidden" name="isPreview" id="editPagePreview" value="false" />
<table border="0">
<tr>
<td>&nbsp;</td>
</tr>
<tr class="editPageTitleCell">
<td>
Title:&nbsp;&nbsp;&nbsp;&nbsp;
<mtw:input id="editPageTitle" name="title" size="40" maxlength="60" />
<span id="editPageTitleError">
<mtw:outError field="title">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
<tr class="editPageTitleCell"><td colspan="2">&nbsp;</td></tr>
<tr>
<td><mtw:textarea id="editPageTextArea" name="body" style="width: 100%; height: 465px;" />
<span id="editPageTextAreaError">
<mtw:outError field="body">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
<tr id="editPageCommentCell">
<td width="20%">
Edit comment: (<i>optional</i>) &nbsp;&nbsp;&nbsp;&nbsp;
<mtw:input id="editPageComment" name="comment" size="40" maxlength="60" />
<span id="editPageCommentError">
<mtw:outError field="comment">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
</table>
</form>
</div>
 
<!-- For Showing Page Html -->
<div id="showPageDialog" style="display: none;">
<form id="showPageForm">
<table>
<tr>
<td>&nbsp;</td>
</tr>
<tr class="showPageTitleCell">
<td>
Title:
</td>
<td>
<mtw:input id="showPageTitle" name="title" size="40" maxlength="60" extra="readonly=readonly" />
</td>
</tr>
<tr class="showPageTitleCell"><td>&nbsp;</td></tr>
<tr>
<td colspan="2">
<mtw:textarea id="showPageTextArea" name="body" style="width: 100%; height: 465px;" extra="readonly=readonly" />
</td>
</tr>
</table>
</form>
</div>
 
 
<!-- For Login -->
<div id="loginDialog" style="display: none;">
<form action="<mtw:contextPath />/Login.mtw" method="post" id="loginForm">
<input type="hidden" name="name" value="" id="loginFormName" />
<input type="hidden" name="lang" value="" id="loginFormLang" />
<table>
<tr>
<td>
Username:
</td>
<td>
<mtw:input id="loginUsername" name="username" size="20" maxlength="20" />
<span id="loginUsernameError">
<mtw:outError field="username">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
<tr>
<td>
Password:
</td>
<td>
<mtw:input id="loginPassword" name="password" type="password" size="20" maxlength="20" />
<span id="loginPasswordError">
<mtw:outError field="password">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
</table>
</form>
</div>
 
<!-- For displaying all pages -->
<div id="listAllPagesDialog" style="display: none;">
<form action="#" method="post" id="listAllPagesForm">
<table id="listAllPagesTable">
</table>
</form>
</div>
 
 
<!-- For displaying revisions -->
<div id="listRevisionsDialog" style="display: none;">
<table class="revisionsTable" id="listRevisionsTable">
</table>
</div>
 
<!-- For displaying last revisions -->
<div id="listLastRevisionsDialog" style="display: none;">
<table class="revisionsTable" id="listLastRevisionsTable">
</table>
</div>
 
 
<!-- Create New Page -->
<div id="createNewPageDialog" style="display: none;">
<form action="<mtw:contextPath />/Page.add.mtw" method="post" id="createNewPageForm">
<input type="hidden" name="name" value="" id="createNewPageFormName" />
<input type="hidden" name="lang" value="" id="createNewPageFormLang" />
<input type="hidden" name="isPreview" value="false" id="createNewPageFormPreview" />
<table>
<tr>
<td>
Name:
</td>
<td>
<mtw:input id="createNewPageName" name="newPage.name" size="40" maxlength="30" />
<span id="createNewPageNameError">
<mtw:outError field="newPage.name">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
<tr>
<td>
Title:
</td>
<td>
<mtw:input id="createNewPageTitle" name="newPage.title" size="40" maxlength="60" />
<span id="createNewPageTitleError">
<mtw:outError field="newPage.title">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
<tr id="createPageLanguageCell">
<td>
Language:
</td>
<td>
<mtw:select name="newPage.languageId" list="languages" id="createNewPageLanguage" emptyField="true" />
<span id="createNewPageLanguageError">
<mtw:outError field="newPage.languageId">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
<tr>
<td colspan="2">
<mtw:textarea id="createNewPageTextArea" name="newPage.body" style="width: 100%; height: 465px;" />
<span id="createNewPageBodyError">
<mtw:outError field="newPage.body">
<font color="red">
<b><mtw:out /></b>
</font>
</mtw:outError>
</span>
</td>
</tr>
</table>
</form>
</div>
 
 
<div>
<table border="0">
<tr>
<td>
 
<k:kcode name="logo" />
<mtw:hasAuthorization groups="admin">
<mtw:if test="logo.preview" value="false">
<br/>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" style="font-size: 8px;" onclick="return showEditPageDialog('logo', '<mtw:out value="logo.lang" />');" title="<k:editTooltip name="logo" />">Edit Logo</a>
</mtw:if>
<mtw:if test="logo.preview" value="true">
<br/>&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-size: 10px; font-weight: bold;">Preview</span><span style="font-size: 8px;">&nbsp;&nbsp;-&nbsp;</span>
<a style="font-size: 8px;" href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="logo.name" />&lang=<mtw:out value="logo.language.locale" />">Save</a>&nbsp;
<a style="font-size: 8px;" href="#" onclick="return showEditPreviewDialog('<mtw:out value="logo.name" />', '<mtw:out value="logo.language.locale" />');" title="<k:editTooltip name="logo" />">Edit</a>&nbsp;
<a style="font-size: 8px;" href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="logo.name" />&lang=<mtw:out value="logo.language.locale" />">Discard</a>
</mtw:if>
</mtw:hasAuthorization>
</td>
<td align="right" valign="bottom">
<mtw:isLogged negate="true">
<a href="#" onclick="return showListLastRevisionsDialog('<mtw:out value="bodyColumn.language.locale" />', '<mtw:out value="bodyColumn.language" />', false);">Last Updates</a> |
<a href="#" onclick="return showLoginDialog();">Login</a>
</mtw:isLogged>
<mtw:isLogged>
<a href="#" onclick="return showCreateNewPageDialog();">Create New Page</a> |
<a href="#" onclick="return showAddNewUserDialog(true);">Add New User</a> |
<a href="#" onclick="return showListAllPagesDialog(<mtw:out value="sessionUser.admin" />);">List Pages</a> |
<mtw:hasAuthorization groups="admin, editor">
<mtw:if test="css.preview" value="true">
<b>CSS</b> -
<a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="css.name" />&lang=<mtw:out value="css.language.locale" />">Save</a>&nbsp;
<a href="#" onclick="return showEditPreviewDialog('<mtw:out value="css.name" />', '<mtw:out value="css.language.locale" />');" title="<k:editTooltip name="css" />">Edit</a>&nbsp;
<a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="css.name" />&lang=<mtw:out value="css.language.locale" />">Discard</a> |
</mtw:if>
<mtw:if test="css.preview" value="false">
<a href="#" onclick="return showEditPageDialog('CSS', 'en');" title="<k:editTooltip name="css" />">Edit CSS</a> |
</mtw:if>
</mtw:hasAuthorization>
<mtw:hasAuthorization groups="admin, editor">
<mtw:if test="js.preview" value="true">
<b>JavaScript</b> -
<a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="js.name" />&lang=<mtw:out value="js.language.locale" />">Save</a>&nbsp;
<a href="#" onclick="return showEditPreviewDialog('<mtw:out value="js.name" />', '<mtw:out value="js.language.locale" />');" title="<k:editTooltip name="js" />">Edit</a>&nbsp;
<a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="js.name" />&lang=<mtw:out value="js.language.locale" />">Discard</a> |
</mtw:if>
<mtw:if test="js.preview" value="false">
<a href="#" onclick="return showEditPageDialog('JavaScript', 'en');" title="<k:editTooltip name="js" />">Edit JavaScript</a> |
</mtw:if>
</mtw:hasAuthorization>
<mtw:hasAuthorization groups="admin, editor">
<a href="#" onclick="return showFileUploadDialog();">Upload Files</a> |
<a href="#" onclick="return showFileListDialog();">List Files</a> |
<a href="#" onclick="return showListLastRevisionsDialog('<mtw:out value="bodyColumn.language.locale" />', '<mtw:out value="bodyColumn.language" />', true);">Last Updates</a> |
</mtw:hasAuthorization>
<a href="<mtw:contextPath/>/Logout.mtw">Logout</a> (<mtw:out value="sessionUser.username" />)
</mtw:isLogged>
&nbsp;
<%--
<mtw:isLocale value="pt">
<a href="<mtw:urlWithLoc loc="pt" tagsToExclude="revision" />"><img src="images/brazil.gif" border="0" width="20" height="13" style="border: 3px solid #ccc;" /></a>
<a href="<mtw:urlWithLoc loc="en" tagsToExclude="revision" />"><img src="images/usa.gif" width="20" height="13" border="0" style="border: 3px solid #fff;" /></a>
</mtw:isLocale>
<mtw:isLocale value="en">
<a href="<mtw:urlWithLoc loc="pt" tagsToExclude="revision" />"><img src="images/brazil.gif" border="0" width="20" height="13" style="border: 3px solid #fff;" /></a>
<a href="<mtw:urlWithLoc loc="en" tagsToExclude="revision" />"><img src="images/usa.gif" width="20" height="13" border="0" style="border: 3px solid #ccc;" /></a>
</mtw:isLocale>
--%>
<k:listFlags />
&nbsp;&nbsp;&nbsp;
</td>
</tr>
</table>
</div>
 
<hr />
 
<div id="leftColumn"><mtw:isLogged>
<mtw:hasAuthorization groups="admin, editor">
<mtw:if test="leftColumn.preview" value="true">
<div style="text-align: left; padding-left: 8px; padding-top: 6px;">
<b>Preview</b>
&nbsp;-&nbsp;
<a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="leftColumn.name" />&lang=<mtw:out value="leftColumn.language.locale" />">Save</a>&nbsp;&nbsp;
<a href="#" onclick="return showEditPreviewDialog('<mtw:out value="leftColumn.name" />', '<mtw:out value="leftColumn.language.locale" />');" title="<k:editTooltip name="leftColumn" />">Edit</a>&nbsp;&nbsp;
<a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="leftColumn.name" />&lang=<mtw:out value="leftColumn.language.locale" />">Discard</a>
</div>
</mtw:if>
 
<mtw:if test="leftColumn.preview" value="false">
<div style="text-align: right; padding-right: 14px; padding-top: 6px;">
<a href="#" onclick="return showEditPageDialog('LeftColumn', '<mtw:out value="leftColumn.language.locale" />');" title="<k:editTooltip name="leftColumn" />">Edit</a>
&nbsp;&nbsp;
<a href="#" onclick="return showListRevisionsDialog('LeftColumn','<mtw:out value="leftColumn.language.locale" />','<mtw:out value="leftColumn.language" />', false);">Revisions</a>
</div>
</mtw:if>
</mtw:hasAuthorization>
</mtw:isLogged>
<div id="navcolumn">
<div>
<k:kcode name="leftColumn" />
</div>
<br />
</div>
 
</div>
 
<div id="bodyColumn">
<mtw:hasAuthorization groups="admin, editor">
 
<mtw:if test="bodyColumn.preview" value="true">
 
<mtw:if test="bodyColumn.new" value="true">
<div style="text-align: left; padding-left: 4px;">
<b>This is a Preview</b>
&nbsp;-&nbsp;
<a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="bodyColumn.name" />&lang=<mtw:out value="bodyColumn.language.locale" />">Save</a>&nbsp;&nbsp;
<a href="#" onclick="return showEditPreviewNewPageDialog('<mtw:out value="bodyColumn.name" />', '<mtw:out value="bodyColumn.language.locale" />');" title="<k:editTooltip name="bodyColumn" />">Edit</a>&nbsp;&nbsp;
<a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="bodyColumn.name" />&lang=<mtw:out value="bodyColumn.language.locale" />">Discard</a>
</div>
</mtw:if>
<mtw:if test="bodyColumn.new" value="false">
<div style="text-align: left; padding-left: 4px;">
<b>This is a Preview</b>
&nbsp;-&nbsp;
<a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="bodyColumn.name" />&lang=<mtw:out value="bodyColumn.language.locale" />">Save</a>&nbsp;&nbsp;
<a href="#" onclick="return showEditPreviewDialog('<mtw:out value="bodyColumn.name" />', '<mtw:out value="bodyColumn.language.locale" />');" title="<k:editTooltip name="bodyColumn" />">Edit</a>&nbsp;&nbsp;
<a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="bodyColumn.name" />&lang=<mtw:out value="bodyColumn.language.locale" />">Discard</a>
</div>
</mtw:if>
</mtw:if>
 
<mtw:if test="bodyColumn.preview" value="false">
<mtw:if test="bodyColumn.revision" value="true">
<div style="text-align: left; padding-left: 4px;"><span title="<k:editTooltip name="bodyColumn" />"><b>Revision #<mtw:out value="bodyColumn.revisionNumber" /></b></span></div>
</mtw:if>
<mtw:if test="bodyColumn.revision" value="false">
<div style="text-align: right; padding-right: 14px;">
<a href="#" onclick="return showEditPageDialog('<mtw:out value="bodyColumn.name" />', '<mtw:out value="bodyColumn.language.locale" />');" title="<k:editTooltip name="bodyColumn" />">Edit</a>
&nbsp;&nbsp;
<a href="#" onclick="return showListRevisionsDialog('<mtw:out value="bodyColumn.name" />','<mtw:out value="bodyColumn.language.locale" />','<mtw:out value="bodyColumn.language" />', false);">Revisions</a>
</div>
</mtw:if>
</mtw:if>
 
</mtw:hasAuthorization>
<k:kcode name="bodyColumn" />
</div>
 
<div class="clear">
<hr />
</div>
<br/><br/><br/>
<div id="footer">
<div><center>Copyright (c) 2011 - Powered by <a href="http://kawai.mentaframework.org" target="_blank"><b>Kawai</b></a></center></div>
<div class="clear">
<hr />
</div>
</div>
 
</body>
</html>
/tags/kawai-1.0.1/src/main/webapp/uploads/archive/.create_dir
/tags/kawai-1.0.1/src/main/webapp/uploads/images/flag_brazil.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/uploads/images/flag_usa.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/jquery-ui-1.8.16.custom.css
New file
0,0 → 1,568
/*
* jQuery UI CSS Framework 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*/
 
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
.ui-helper-clearfix { display: inline-block; }
/* required comment for clearfix to work in Opera \*/
* html .ui-helper-clearfix { height:1%; }
.ui-helper-clearfix { display:block; }
/* end clearfix */
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
 
 
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }
 
 
/* Icons
----------------------------------*/
 
/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
 
 
/* Misc visuals
----------------------------------*/
 
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
 
 
/*
* jQuery UI CSS Framework 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
*/
 
 
/* Component containers
----------------------------------*/
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
.ui-widget-content a { color: #222222; }
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
.ui-widget-header a { color: #222222; }
 
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
.ui-widget :active { outline: none; }
 
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
 
/* Icons
----------------------------------*/
 
/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
 
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
 
 
/* Misc visuals
----------------------------------*/
 
/* Corner radius */
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
 
/* Overlays */
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
* jQuery UI Resizable 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Resizable#theming
*/
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
* jQuery UI Selectable 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Selectable#theming
*/
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
/*
* jQuery UI Accordion 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Accordion#theming
*/
/* IE/Win - Fix animation bug - #4615 */
.ui-accordion { width: 100%; }
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
.ui-accordion .ui-accordion-li-fix { display: inline; }
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
.ui-accordion .ui-accordion-content-active { display: block; }
/*
* jQuery UI Autocomplete 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Autocomplete#theming
*/
.ui-autocomplete { position: absolute; cursor: default; }
 
/* workarounds */
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
 
/*
* jQuery UI Menu 1.8.16
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Menu#theming
*/
.ui-menu {
list-style:none;
padding: 2px;
margin: 0;
display:block;
float: left;
}
.ui-menu .ui-menu {
margin-top: -3px;
}
.ui-menu .ui-menu-item {
margin:0;
padding: 0;
zoom: 1;
float: left;
clear: left;
width: 100%;
}
.ui-menu .ui-menu-item a {
text-decoration:none;
display:block;
padding:.2em .4em;
line-height:1.5;
zoom:1;
}
.ui-menu .ui-menu-item a.ui-state-hover,
.ui-menu .ui-menu-item a.ui-state-active {
font-weight: normal;
margin: -1px;
}
/*
* jQuery UI Button 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Button#theming
*/
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
.ui-button-icons-only { width: 3.4em; }
button.ui-button-icons-only { width: 3.7em; }
 
/*button text element */
.ui-button .ui-button-text { display: block; line-height: 1.4; }
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
/* no icon support for input elements, provide padding by default */
input.ui-button { padding: .4em 1em; }
 
/*button icon element(s) */
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
 
/*button sets*/
.ui-buttonset { margin-right: 7px; }
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
 
/* workarounds */
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
/*
* jQuery UI Dialog 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Dialog#theming
*/
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }
/*
* jQuery UI Slider 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Slider#theming
*/
.ui-slider { position: relative; text-align: left; }
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
 
.ui-slider-horizontal { height: .8em; }
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
 
.ui-slider-vertical { width: .8em; height: 100px; }
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
* jQuery UI Tabs 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Tabs#theming
*/
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
.ui-tabs .ui-tabs-hide { display: none !important; }
/*
* jQuery UI Datepicker 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Datepicker#theming
*/
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
.ui-datepicker .ui-datepicker-prev { left:2px; }
.ui-datepicker .ui-datepicker-next { right:2px; }
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 49%;}
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
.ui-datepicker td { border: 0; padding: 1px; }
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
 
/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi { width:auto; }
.ui-datepicker-multi .ui-datepicker-group { float:left; }
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
 
/* RTL support */
.ui-datepicker-rtl { direction: rtl; }
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
 
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
display: none; /*sorry for IE5*/
display/**/: block; /*sorry for IE5*/
position: absolute; /*must have*/
z-index: -1; /*must have*/
filter: mask(); /*must have*/
top: -4px; /*must have*/
left: -4px; /*must have*/
width: 200px; /*must have*/
height: 200px; /*must have*/
}/*
* jQuery UI Progressbar 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Progressbar#theming
*/
.ui-progressbar { height:2em; text-align: left; }
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-icons_2e83ff_256x240.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-bg_glass_95_fef1ec_1x400.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-icons_888888_256x240.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-bg_glass_55_fbf9ee_1x400.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-bg_glass_75_dadada_1x400.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-bg_flat_75_ffffff_40x100.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-bg_glass_75_e6e6e6_1x400.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-bg_glass_65_ffffff_1x400.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-icons_cd0a0a_256x240.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-bg_flat_0_aaaaaa_40x100.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-icons_454545_256x240.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/css/images/ui-icons_222222_256x240.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/tags/kawai-1.0.1/src/main/webapp/sh/css/shCoreDefault.css
New file
0,0 → 1,328
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
 
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
 
.syntaxhighlighter {
background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
background-color: white !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #e0e0e0 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: black !important;
}
.syntaxhighlighter table caption {
color: black !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #6ce26c !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #6ce26c !important;
color: white !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: blue !important;
background: white !important;
border: 1px solid #6ce26c !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: blue !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: red !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #6ce26c !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: black !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #008200 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: blue !important;
}
.syntaxhighlighter .keyword {
color: #006699 !important;
}
.syntaxhighlighter .preprocessor {
color: gray !important;
}
.syntaxhighlighter .variable {
color: #aa7700 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ff1493 !important;
}
.syntaxhighlighter .constants {
color: #0066cc !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #006699 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: red !important;
}
 
.syntaxhighlighter .keyword {
font-weight: bold !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shCoreEclipse.css
New file
0,0 → 1,339
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
 
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
 
.syntaxhighlighter {
background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
background-color: white !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #c3defe !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: black !important;
}
.syntaxhighlighter .gutter {
color: #787878 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #d4d0c8 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #d4d0c8 !important;
color: white !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #3f5fbf !important;
background: white !important;
border: 1px solid #d4d0c8 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #3f5fbf !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #aa7700 !important;
}
.syntaxhighlighter .toolbar {
color: #a0a0a0 !important;
background: #d4d0c8 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #a0a0a0 !important;
}
.syntaxhighlighter .toolbar a:hover {
color: red !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #3f5fbf !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #2a00ff !important;
}
.syntaxhighlighter .keyword {
color: #7f0055 !important;
}
.syntaxhighlighter .preprocessor {
color: #646464 !important;
}
.syntaxhighlighter .variable {
color: #aa7700 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ff1493 !important;
}
.syntaxhighlighter .constants {
color: #0066cc !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #7f0055 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: red !important;
}
 
.syntaxhighlighter .keyword {
font-weight: bold !important;
}
.syntaxhighlighter .xml .keyword {
color: #3f7f7f !important;
font-weight: normal !important;
}
.syntaxhighlighter .xml .color1, .syntaxhighlighter .xml .color1 a {
color: #7f007f !important;
}
.syntaxhighlighter .xml .string {
font-style: italic !important;
color: #2a00ff !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shCoreEmacs.css
New file
0,0 → 1,324
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
 
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
 
.syntaxhighlighter {
background-color: black !important;
}
.syntaxhighlighter .line.alt1 {
background-color: black !important;
}
.syntaxhighlighter .line.alt2 {
background-color: black !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #2a3133 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: #d3d3d3 !important;
}
.syntaxhighlighter .gutter {
color: #d3d3d3 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #990000 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #990000 !important;
color: black !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #ebdb8d !important;
background: black !important;
border: 1px solid #990000 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #ebdb8d !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #ff7d27 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #990000 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #9ccff4 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #d3d3d3 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #ff7d27 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #ff9e7b !important;
}
.syntaxhighlighter .keyword {
color: aqua !important;
}
.syntaxhighlighter .preprocessor {
color: #aec4de !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #81cef9 !important;
}
.syntaxhighlighter .constants {
color: #ff9e7b !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: aqua !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #ebdb8d !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff7d27 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #aec4de !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shCoreFadeToGrey.css
New file
0,0 → 1,328
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
 
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
 
.syntaxhighlighter {
background-color: #121212 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #121212 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #121212 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #2c2c29 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: white !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #3185b9 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #3185b9 !important;
color: #121212 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #3185b9 !important;
background: black !important;
border: 1px solid #3185b9 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #3185b9 !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #d01d33 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #3185b9 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #96daff !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: white !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #696854 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #e3e658 !important;
}
.syntaxhighlighter .keyword {
color: #d01d33 !important;
}
.syntaxhighlighter .preprocessor {
color: #435a5f !important;
}
.syntaxhighlighter .variable {
color: #898989 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #aaaaaa !important;
}
.syntaxhighlighter .constants {
color: #96daff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #d01d33 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #ffc074 !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #4a8cdb !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #96daff !important;
}
 
.syntaxhighlighter .functions {
font-weight: bold !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shThemeDefault.css
New file
0,0 → 1,118
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
background-color: white !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #e0e0e0 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: black !important;
}
.syntaxhighlighter table caption {
color: black !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #6ce26c !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #6ce26c !important;
color: white !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: blue !important;
background: white !important;
border: 1px solid #6ce26c !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: blue !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: red !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #6ce26c !important;
border: none !important;
display: none;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: black !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #008200 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: blue !important;
}
.syntaxhighlighter .keyword {
color: #006699 !important;
}
.syntaxhighlighter .preprocessor {
color: gray !important;
}
.syntaxhighlighter .variable {
color: #aa7700 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ff1493 !important;
}
.syntaxhighlighter .constants {
color: #0066cc !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #006699 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: red !important;
}
 
.syntaxhighlighter .keyword {
font-weight: bold !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shThemeEclipse.css
New file
0,0 → 1,128
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
background-color: white !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #c3defe !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: black !important;
}
.syntaxhighlighter .gutter {
color: #787878 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #d4d0c8 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #d4d0c8 !important;
color: white !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #3f5fbf !important;
background: white !important;
border: 1px solid #d4d0c8 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #3f5fbf !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #aa7700 !important;
}
.syntaxhighlighter .toolbar {
color: #a0a0a0 !important;
background: #d4d0c8 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #a0a0a0 !important;
}
.syntaxhighlighter .toolbar a:hover {
color: red !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #3f5fbf !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #2a00ff !important;
}
.syntaxhighlighter .keyword {
color: #7f0055 !important;
}
.syntaxhighlighter .preprocessor {
color: #646464 !important;
}
.syntaxhighlighter .variable {
color: #aa7700 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ff1493 !important;
}
.syntaxhighlighter .constants {
color: #0066cc !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #7f0055 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: red !important;
}
 
.syntaxhighlighter .keyword {
font-weight: bold !important;
}
.syntaxhighlighter .xml .keyword {
color: #3f7f7f !important;
font-weight: normal !important;
}
.syntaxhighlighter .xml .color1, .syntaxhighlighter .xml .color1 a {
color: #7f007f !important;
}
.syntaxhighlighter .xml .string {
font-style: italic !important;
color: #2a00ff !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shCoreDjango.css
New file
0,0 → 1,331
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
 
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
 
.syntaxhighlighter {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #233729 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: #f8f8f8 !important;
}
.syntaxhighlighter .gutter {
color: #497958 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #41a83e !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #41a83e !important;
color: #0a2b1d !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #96dd3b !important;
background: black !important;
border: 1px solid #41a83e !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #96dd3b !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: white !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #41a83e !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #ffe862 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #f8f8f8 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #336442 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #9df39f !important;
}
.syntaxhighlighter .keyword {
color: #96dd3b !important;
}
.syntaxhighlighter .preprocessor {
color: #91bb9e !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #96dd3b !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #eb939a !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #91bb9e !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #edef7d !important;
}
 
.syntaxhighlighter .comments {
font-style: italic !important;
}
.syntaxhighlighter .keyword {
font-weight: bold !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shThemeEmacs.css
New file
0,0 → 1,113
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: black !important;
}
.syntaxhighlighter .line.alt1 {
background-color: black !important;
}
.syntaxhighlighter .line.alt2 {
background-color: black !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #2a3133 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: #d3d3d3 !important;
}
.syntaxhighlighter .gutter {
color: #d3d3d3 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #990000 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #990000 !important;
color: black !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #ebdb8d !important;
background: black !important;
border: 1px solid #990000 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #ebdb8d !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #ff7d27 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #990000 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #9ccff4 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #d3d3d3 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #ff7d27 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #ff9e7b !important;
}
.syntaxhighlighter .keyword {
color: aqua !important;
}
.syntaxhighlighter .preprocessor {
color: #aec4de !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #81cef9 !important;
}
.syntaxhighlighter .constants {
color: #ff9e7b !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: aqua !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #ebdb8d !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff7d27 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #aec4de !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shCoreMidnight.css
New file
0,0 → 1,324
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
 
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
 
.syntaxhighlighter {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #253e5a !important;
}
.syntaxhighlighter .line.highlighted.number {
color: #38566f !important;
}
.syntaxhighlighter table caption {
color: #d1edff !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #0f192a !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #428bdd !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #428bdd !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #1dc116 !important;
}
.syntaxhighlighter .toolbar {
color: #d1edff !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #d1edff !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #8aa6c1 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #d1edff !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #428bdd !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #1dc116 !important;
}
.syntaxhighlighter .keyword {
color: #b43d3d !important;
}
.syntaxhighlighter .preprocessor {
color: #8aa6c1 !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #b43d3d !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #f8bb00 !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: white !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shCoreRDark.css
New file
0,0 → 1,324
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
 
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
 
.syntaxhighlighter {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #323e41 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: #b9bdb6 !important;
}
.syntaxhighlighter table caption {
color: #b9bdb6 !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #1b2426 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #5ba1cf !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #5ba1cf !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #5ce638 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #e0e8ff !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #b9bdb6 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #878a85 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #5ce638 !important;
}
.syntaxhighlighter .keyword {
color: #5ba1cf !important;
}
.syntaxhighlighter .preprocessor {
color: #435a5f !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #5ba1cf !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #e0e8ff !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: white !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shThemeFadeToGrey.css
New file
0,0 → 1,117
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #121212 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #121212 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #121212 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #2c2c29 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: white !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #3185b9 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #3185b9 !important;
color: #121212 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #3185b9 !important;
background: black !important;
border: 1px solid #3185b9 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #3185b9 !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #d01d33 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #3185b9 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #96daff !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: white !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #696854 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #e3e658 !important;
}
.syntaxhighlighter .keyword {
color: #d01d33 !important;
}
.syntaxhighlighter .preprocessor {
color: #435a5f !important;
}
.syntaxhighlighter .variable {
color: #898989 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #aaaaaa !important;
}
.syntaxhighlighter .constants {
color: #96daff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #d01d33 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #ffc074 !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #4a8cdb !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #96daff !important;
}
 
.syntaxhighlighter .functions {
font-weight: bold !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shCoreMDUltra.css
New file
0,0 → 1,324
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
 
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
 
.syntaxhighlighter {
background-color: #222222 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #222222 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #222222 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #253e5a !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: lime !important;
}
.syntaxhighlighter .gutter {
color: #38566f !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #222222 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #428bdd !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #428bdd !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: lime !important;
}
.syntaxhighlighter .toolbar {
color: #aaaaff !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #aaaaff !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #9ccff4 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: lime !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #428bdd !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: lime !important;
}
.syntaxhighlighter .keyword {
color: #aaaaff !important;
}
.syntaxhighlighter .preprocessor {
color: #8aa6c1 !important;
}
.syntaxhighlighter .variable {
color: aqua !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ff8000 !important;
}
.syntaxhighlighter .constants {
color: yellow !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #aaaaff !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: red !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: yellow !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shThemeDjango.css
New file
0,0 → 1,120
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #233729 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: #f8f8f8 !important;
}
.syntaxhighlighter .gutter {
color: #497958 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #41a83e !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #41a83e !important;
color: #0a2b1d !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #96dd3b !important;
background: black !important;
border: 1px solid #41a83e !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #96dd3b !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: white !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #41a83e !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #ffe862 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #f8f8f8 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #336442 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #9df39f !important;
}
.syntaxhighlighter .keyword {
color: #96dd3b !important;
}
.syntaxhighlighter .preprocessor {
color: #91bb9e !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #96dd3b !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #eb939a !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #91bb9e !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #edef7d !important;
}
 
.syntaxhighlighter .comments {
font-style: italic !important;
}
.syntaxhighlighter .keyword {
font-weight: bold !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shThemeRDark.css
New file
0,0 → 1,113
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #323e41 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: #b9bdb6 !important;
}
.syntaxhighlighter table caption {
color: #b9bdb6 !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #1b2426 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #5ba1cf !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #5ba1cf !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #5ce638 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #e0e8ff !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #b9bdb6 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #878a85 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #5ce638 !important;
}
.syntaxhighlighter .keyword {
color: #5ba1cf !important;
}
.syntaxhighlighter .preprocessor {
color: #435a5f !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #5ba1cf !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #e0e8ff !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: white !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shThemeMidnight.css
New file
0,0 → 1,113
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #253e5a !important;
}
.syntaxhighlighter .line.highlighted.number {
color: #38566f !important;
}
.syntaxhighlighter table caption {
color: #d1edff !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #0f192a !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #428bdd !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #428bdd !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #1dc116 !important;
}
.syntaxhighlighter .toolbar {
color: #d1edff !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #d1edff !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #8aa6c1 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #d1edff !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #428bdd !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #1dc116 !important;
}
.syntaxhighlighter .keyword {
color: #b43d3d !important;
}
.syntaxhighlighter .preprocessor {
color: #8aa6c1 !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #b43d3d !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #f8bb00 !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: white !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shCore.css
New file
0,0 → 1,226
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.2em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
 
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/css/shThemeMDUltra.css
New file
0,0 → 1,113
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #222222 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #222222 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #222222 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #253e5a !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: lime !important;
}
.syntaxhighlighter .gutter {
color: #38566f !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #222222 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #428bdd !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #428bdd !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: lime !important;
}
.syntaxhighlighter .toolbar {
color: #aaaaff !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #aaaaff !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #9ccff4 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: lime !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #428bdd !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: lime !important;
}
.syntaxhighlighter .keyword {
color: #aaaaff !important;
}
.syntaxhighlighter .preprocessor {
color: #8aa6c1 !important;
}
.syntaxhighlighter .variable {
color: aqua !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ff8000 !important;
}
.syntaxhighlighter .constants {
color: yellow !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #aaaaff !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: red !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: yellow !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}
/tags/kawai-1.0.1/src/main/webapp/sh/js/shBrushColdFusion.js
New file
0,0 → 1,100
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
;(function()
{
// CommonJS
typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
 
function Brush()
{
// Contributed by Jen
// http://www.jensbits.com/2009/05/14/coldfusion-brush-for-syntaxhighlighter-plus
var funcs = 'Abs ACos AddSOAPRequestHeader AddSOAPResponseHeader AjaxLink AjaxOnLoad ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ' +
'ArrayInsertAt ArrayIsDefined ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArraySet ArraySort ArraySum ArraySwap ArrayToList ' +
'Asc ASin Atn BinaryDecode BinaryEncode BitAnd BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN BitSHRN BitXor ' +
'Ceiling CharsetDecode CharsetEncode Chr CJustify Compare CompareNoCase Cos CreateDate CreateDateTime CreateObject ' +
'CreateODBCDate CreateODBCDateTime CreateODBCTime CreateTime CreateTimeSpan CreateUUID DateAdd DateCompare DateConvert ' +
'DateDiff DateFormat DatePart Day DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear DE DecimalFormat DecrementValue ' +
'Decrypt DecryptBinary DeleteClientVariable DeserializeJSON DirectoryExists DollarFormat DotNetToCFType Duplicate Encrypt ' +
'EncryptBinary Evaluate Exp ExpandPath FileClose FileCopy FileDelete FileExists FileIsEOF FileMove FileOpen FileRead ' +
'FileReadBinary FileReadLine FileSetAccessMode FileSetAttribute FileSetLastModified FileWrite Find FindNoCase FindOneOf ' +
'FirstDayOfMonth Fix FormatBaseN GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList GetBaseTemplatePath ' +
'GetClientVariablesList GetComponentMetaData GetContextRoot GetCurrentTemplatePath GetDirectoryFromPath GetEncoding ' +
'GetException GetFileFromPath GetFileInfo GetFunctionList GetGatewayHelper GetHttpRequestData GetHttpTimeString ' +
'GetK2ServerDocCount GetK2ServerDocCountLimit GetLocale GetLocaleDisplayName GetLocalHostIP GetMetaData GetMetricData ' +
'GetPageContext GetPrinterInfo GetProfileSections GetProfileString GetReadableImageFormats GetSOAPRequest GetSOAPRequestHeader ' +
'GetSOAPResponse GetSOAPResponseHeader GetTempDirectory GetTempFile GetTemplatePath GetTickCount GetTimeZoneInfo GetToken ' +
'GetUserRoles GetWriteableImageFormats Hash Hour HTMLCodeFormat HTMLEditFormat IIf ImageAddBorder ImageBlur ImageClearRect ' +
'ImageCopy ImageCrop ImageDrawArc ImageDrawBeveledRect ImageDrawCubicCurve ImageDrawLine ImageDrawLines ImageDrawOval ' +
'ImageDrawPoint ImageDrawQuadraticCurve ImageDrawRect ImageDrawRoundRect ImageDrawText ImageFlip ImageGetBlob ImageGetBufferedImage ' +
'ImageGetEXIFTag ImageGetHeight ImageGetIPTCTag ImageGetWidth ImageGrayscale ImageInfo ImageNegative ImageNew ImageOverlay ImagePaste ' +
'ImageRead ImageReadBase64 ImageResize ImageRotate ImageRotateDrawingAxis ImageScaleToFit ImageSetAntialiasing ImageSetBackgroundColor ' +
'ImageSetDrawingColor ImageSetDrawingStroke ImageSetDrawingTransparency ImageSharpen ImageShear ImageShearDrawingAxis ImageTranslate ' +
'ImageTranslateDrawingAxis ImageWrite ImageWriteBase64 ImageXORDrawingMode IncrementValue InputBaseN Insert Int IsArray IsBinary ' +
'IsBoolean IsCustomFunction IsDate IsDDX IsDebugMode IsDefined IsImage IsImageFile IsInstanceOf IsJSON IsLeapYear IsLocalHost ' +
'IsNumeric IsNumericDate IsObject IsPDFFile IsPDFObject IsQuery IsSimpleValue IsSOAPRequest IsStruct IsUserInAnyRole IsUserInRole ' +
'IsUserLoggedIn IsValid IsWDDX IsXML IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot JavaCast JSStringFormat LCase Left Len ' +
'ListAppend ListChangeDelims ListContains ListContainsNoCase ListDeleteAt ListFind ListFindNoCase ListFirst ListGetAt ListInsertAt ' +
'ListLast ListLen ListPrepend ListQualify ListRest ListSetAt ListSort ListToArray ListValueCount ListValueCountNoCase LJustify Log ' +
'Log10 LSCurrencyFormat LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime ' +
'LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Max Mid Min Minute Month MonthAsString Now NumberFormat ParagraphFormat ParseDateTime ' +
'Pi PrecisionEvaluate PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow QueryConvertForGrid QueryNew QuerySetCell QuotedValueList Rand ' +
'Randomize RandRange REFind REFindNoCase ReleaseComObject REMatch REMatchNoCase RemoveChars RepeatString Replace ReplaceList ReplaceNoCase ' +
'REReplace REReplaceNoCase Reverse Right RJustify Round RTrim Second SendGatewayMessage SerializeJSON SetEncoding SetLocale SetProfileString ' +
'SetVariable Sgn Sin Sleep SpanExcluding SpanIncluding Sqr StripCR StructAppend StructClear StructCopy StructCount StructDelete StructFind ' +
'StructFindKey StructFindValue StructGet StructInsert StructIsEmpty StructKeyArray StructKeyExists StructKeyList StructKeyList StructNew ' +
'StructSort StructUpdate Tan TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase URLDecode URLEncodedFormat URLSessionFormat Val ' +
'ValueList VerifyClient Week Wrap Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform ' +
'XmlValidate Year YesNoFormat';
 
var keywords = 'cfabort cfajaximport cfajaxproxy cfapplet cfapplication cfargument cfassociate cfbreak cfcache cfcalendar ' +
'cfcase cfcatch cfchart cfchartdata cfchartseries cfcol cfcollection cfcomponent cfcontent cfcookie cfdbinfo ' +
'cfdefaultcase cfdirectory cfdiv cfdocument cfdocumentitem cfdocumentsection cfdump cfelse cfelseif cferror ' +
'cfexchangecalendar cfexchangeconnection cfexchangecontact cfexchangefilter cfexchangemail cfexchangetask ' +
'cfexecute cfexit cffeed cffile cfflush cfform cfformgroup cfformitem cfftp cffunction cfgrid cfgridcolumn ' +
'cfgridrow cfgridupdate cfheader cfhtmlhead cfhttp cfhttpparam cfif cfimage cfimport cfinclude cfindex ' +
'cfinput cfinsert cfinterface cfinvoke cfinvokeargument cflayout cflayoutarea cfldap cflocation cflock cflog ' +
'cflogin cfloginuser cflogout cfloop cfmail cfmailparam cfmailpart cfmenu cfmenuitem cfmodule cfNTauthenticate ' +
'cfobject cfobjectcache cfoutput cfparam cfpdf cfpdfform cfpdfformparam cfpdfparam cfpdfsubform cfpod cfpop ' +
'cfpresentation cfpresentationslide cfpresenter cfprint cfprocessingdirective cfprocparam cfprocresult ' +
'cfproperty cfquery cfqueryparam cfregistry cfreport cfreportparam cfrethrow cfreturn cfsavecontent cfschedule ' +
'cfscript cfsearch cfselect cfset cfsetting cfsilent cfslider cfsprydataset cfstoredproc cfswitch cftable ' +
'cftextarea cfthread cfthrow cftimer cftooltip cftrace cftransaction cftree cftreeitem cftry cfupdate cfwddx ' +
'cfwindow cfxml cfzip cfzipparam';
 
var operators = 'all and any between cross in join like not null or outer some';
 
this.regexList = [
{ regex: new RegExp('--(.*)$', 'gm'), css: 'comments' }, // one line and multiline comments
{ regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // single quoted strings
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings
{ regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' }, // functions
{ regex: new RegExp(this.getKeywords(operators), 'gmi'), css: 'color1' }, // operators and such
{ regex: new RegExp(this.getKeywords(keywords), 'gmi'), css: 'keyword' } // keyword
];
}
 
Brush.prototype = new SyntaxHighlighter.Highlighter();
Brush.aliases = ['coldfusion','cf'];
SyntaxHighlighter.brushes.ColdFusion = Brush;
 
// CommonJS
typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
})();
/tags/kawai-1.0.1/src/main/webapp/sh/js/shBrushDelphi.js
New file
0,0 → 1,55
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
;(function()
{
// CommonJS
typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
 
function Brush()
{
var keywords = 'abs addr and ansichar ansistring array as asm begin boolean byte cardinal ' +
'case char class comp const constructor currency destructor div do double ' +
'downto else end except exports extended false file finalization finally ' +
'for function goto if implementation in inherited int64 initialization ' +
'integer interface is label library longint longword mod nil not object ' +
'of on or packed pansichar pansistring pchar pcurrency pdatetime pextended ' +
'pint64 pointer private procedure program property pshortstring pstring ' +
'pvariant pwidechar pwidestring protected public published raise real real48 ' +
'record repeat set shl shortint shortstring shr single smallint string then ' +
'threadvar to true try type unit until uses val var varirnt while widechar ' +
'widestring with word write writeln xor';
 
this.regexList = [
{ regex: /\(\*[\s\S]*?\*\)/gm, css: 'comments' }, // multiline comments (* *)