Too tired to deal with git, so I just reforked to be even with @ajanata | 768f8f5a0a.

This commit is contained in:
Administrator 2015-02-22 00:49:45 -08:00
parent 768f8f5a0a
commit d8e8185b5d
16 changed files with 40264 additions and 368 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4,8 +4,6 @@
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-35005079-2', 'auto');
ga('send', 'pageview');
</script>
</script>

View File

@ -30,6 +30,14 @@ body {
margin: 0;
}
.carddisplayer {
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
font-size: 12px;
line-height: .8;
color: #333;
background-color: #fff;
}
.card, #game_list {
font-family: "helvetica neue", helvetica, Arial, sans-serif;
}
@ -71,7 +79,7 @@ h2,h3,h4 {
background:#555;
border-bottom:1px solid #333;
color:#fff;
height: 25px;
height: 42px;
padding:.5em;
}
@ -86,7 +94,7 @@ h2,h3,h4 {
#nickbox {
border: 1px solid black;
display: inline;
padding: 5px;
padding: 10px;
}
#canvas {
@ -114,16 +122,18 @@ h2,h3,h4 {
.gamelist_lobby {
background: #fff;
border-radius: .25em;
width: 575px;
height: 175px;
border-radius: .1em;
min-width: 575px;
width: 33.333333%;
height: 40%;
float: left;
border: 1px solid #ccc;
border: 2px solid #ccc;
margin: 4px;
}
.gamelist_lobby_left {
width: 77%;
width: 80%;
font-size: 12px;
height: 100%;
padding: .5em 1.5%;
float: left;
@ -137,21 +147,18 @@ h2,h3,h4 {
.gamelist_lobby_join {
width: 100%;
height: 75%;
border: 1px solid #aaa;
background: linear-gradient(#fff, #ddd) #ddd;
border-radius: .25em;
text-transform: uppercase;
height: 75.5%;
font-weight: 700;
border: 0px solid #aaa;
/* border-radius: .25em; */
text-transform: camelcase;
}
.gamelist_lobby_spectate {
width: 100%;
height: 25%;
border: 1px solid #aaa;
background: linear-gradient(#fff, #ddd) #ddd;
border-radius: .25em;
text-transform: uppercase;
height: 25.1%;
/* border-radius: .25em;*/
text-transform: camelcase;
font-weight: 700;
}
@ -232,8 +239,8 @@ h2,h3,h4 {
right: 0px;
overflow-y: scroll;
min-height: 43px;
font-size: 16px;
font-family: serif;
font-size: 14px;
font-family: sans-serif;
}
#tab-preferences input[type='button'] {
@ -244,7 +251,7 @@ h2,h3,h4 {
border: 1px solid black;
left: -1px;
bottom: 0px;
height: 17px;
height: 19px;
position: absolute;
padding: 0px;
width: 90%;
@ -263,6 +270,7 @@ h2,h3,h4 {
font-size: 14px;
}
span.error {
color: red;
}
@ -322,7 +330,7 @@ span.debug, span.admin {
.your_hand {
position: absolute;
bottom: 10px;
bottom: 20px;
right: 5px;
}
@ -335,7 +343,7 @@ span.debug, span.admin {
}
.game_hand_filter {
height: 100%;
height: 90%;
position: relative;
background: rgba(192, 192, 192, .5);
z-index: 100;
@ -345,10 +353,10 @@ span.debug, span.admin {
.game_hand_filter_text {
position: absolute;
top: 50%;
font-size: 300%;
font-size: 250%;
margin-top: -30px;
background:#eee;
padding:.25em;
padding:.15em;
}
.game_hand_cards {
@ -383,9 +391,9 @@ span.debug, span.admin {
}
.game_black_card {
width: 232px;
height: 232px;
margin-top: 15px;
width: 215px;
height: 215px;
margin-top: 4px;
}
.confirm_card {
@ -405,11 +413,11 @@ span.debug, span.admin {
.game_right_side, .game_options {
position: absolute;
left: 246px;
width: 1000px;
width: 80%;
}
.game_options {
background: #eee;
background: #fff;
z-index: 500;
}
@ -459,7 +467,7 @@ span.debug, span.admin {
.scorecard {
background:#fff;
height: 36px;
height: 43px;
padding:.25em .5em;
border-bottom: 1px solid #bbb;
font-size: 11pt;
@ -634,3 +642,4 @@ span.debug, span.admin {
bottom: 19px;
font-size: 8pt;
}

View File

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8" ?>
<%--
Copyright (c) 2012, Andy Janata
All rights reserved.
@ -35,13 +34,12 @@ created for the user now.
@SuppressWarnings("unused")
HttpSession hSession = request.getSession(true);
%>
<!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">
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pretend You're Xyzzy</title>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="js/jquery-2.1.3.js"></script>
<script type="text/javascript" src="js/jquery-migrate.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
<script type="text/javascript" src="js/jquery.json.js"></script>
<script type="text/javascript" src="js/QTransform.js"></script>
@ -64,28 +62,26 @@ HttpSession hSession = request.getSession(true);
<script type="text/javascript" src="js/cah.ajax.builder.js"></script>
<script type="text/javascript" src="js/cah.ajax.handlers.js"></script>
<script type="text/javascript" src="js/cah.app.js"></script>
<link rel="stylesheet" type="text/css" href="cah.css" media="screen" />
<link rel="stylesheet" type="text/css" href="jquery-ui.css" media="screen" />
<script type="text/javascript">
function changeCSS(cssFile, cssLinkIndex) {
var oldlink = document.getElementsByTagName("link").item(cssLinkIndex);
var newlink = document.createElement("link");
newlink.setAttribute("rel", "stylesheet");
newlink.setAttribute("type", "text/css");
newlink.setAttribute("href", cssFile);
document.getElementsByTagName("head").item(0).replaceChild(newlink, oldlink);
}
</script>
<link rel="stylesheet" type="text/css" href="altstyle/default/cah.css" media="screen" />
<link rel="stylesheet" type="text/css" href="stylechooser.css" media="screen" />
<jsp:include page="analytics.jsp" />
</head>
<body>
<div id="welcome">
<h1 tabindex="0">
Pretend You're <dfn style="border-bottom: 1px dotted black"
title="Xyzzy is an Artificial Unintelligence bot. You'll be making more sense than him in this game.">
Xyzzy</dfn>
</h1>
<h3>A <a href="http://cardsagainsthumanity.com/">Cards Against Humanity</a> clone.</h3>
<p>
This webapp is still in development. There will be bugs, but hopefully they won't affect gameplay
very much. To assist with development, <strong>all traffic on this server <em>may</em> be
logged.</strong>
</p>
<p>
If this is your first time playing, you may wish to read <a href="/">the changelog and list of
known issues</a>.
</p>
<p tabindex="0">Most recent update: 21 February 2015:</p>
<ul>
<li>Servers now run in Amazon Web Services. This is going to cost me more, but at least it
@ -115,11 +111,12 @@ HttpSession hSession = request.getSession(true);
</ul>
<div id="nickbox">
Nickname:
<input type="text" id="nickname" value="" maxlength="30" role="textbox"
<input type="text" id="nickname" class="span3" value="" maxlength="30" placeholder="Xyzzy" role="textbox"
aria-label="Enter your nickname." />
<input type="button" id="nicknameconfirm" value="Set" />
<input type="button" class="btn" id="nicknameconfirm" value="Set" />
<span id="nickbox_error" class="error"></span>
</div>
<p></p>
<p>
Pretend You're Xyzzy is a Cards Against Humanity clone, which is available at
<a href="http://www.cardsagainsthumanity.com/">cardsagainsthumanity.com</a>, where you can buy it
@ -136,22 +133,22 @@ HttpSession hSession = request.getSession(true);
<div id="canvas" class="hide">
<div id="menubar">
<div id="menubar_left">
<input type="button" id="refresh_games" class="hide" value="Refresh Games" />
<input type="button" id="create_game" class="hide" value="Create Game" />
<input type="text" id="filter_games" class="hide" placeholder="Filter games by keyword" />
<input type="button" id="refresh_games" class="hide btn btn-success" value="Refresh Games" />
<input type="button" id="create_game" class="hide btn btn-primary" value="Create Game" />
<input type="text" id="filter_games" class="hide search-query" placeholder="Filter games by keyword" />
<input type="button" id="leave_game" class="hide" value="Leave Game" />
<input type="button" id="start_game" class="hide" value="Start Game" />
<input type="button" id="stop_game" class="hide" value="Stop Game" />
<input type="button" id="leave_game" class="hide btn btn-danger" value="Leave Game" />
<input type="button" id="start_game" class="hide btn btn-success" value="Start Game" />
<input type="button" id="stop_game" class="hide btn btn-danger" value="Stop Game" />
</div>
<div id="menubar_right">
Current timer duration: <span id="current_timer">0</span> seconds
<%-- disabled as this page can kill the database server without caching
<input type="button" id="view_cards" value="View Cards"
<input type="button" class="btn btn-info" id="view_cards" value="View Cards"
title="Open a new window to view all cards in the game."
onclick="window.open('viewcards.jsp', 'viewcards');" />
--%>
<input type="button" id="logout" value="Log out" />
<input type="button" class="btn btn-danger" id="logout" value="Log out" />
</div>
</div>
<div id="main">
@ -171,8 +168,19 @@ HttpSession hSession = request.getSession(true);
<li><a href="#tab-global" class="tab-button" id="button-global">Global Chat</a></li>
</ul>
<div id="tab-preferences">
<input type="button" value="Save" onclick="cah.Preferences.save();" />
<input type="button" value="Revert" onclick="cah.Preferences.load();" />
<input type="button" class="btn btn-info" value="Save" onclick="cah.Preferences.save();" />
<input type="button" class="btn btn-warning" value="Revert" onclick="cah.Preferences.load();" />
<div class="dropdown">
<!-- Reference Button :P <input type="button" value="Old Style [ DOES NOT WORK ]" class="btn btn-warning" onclick="changeCSS('oldcah.css', 0);" /> -->
<button class="lgbtn lbtn-primary dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Style Chooser [Beta!]
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation"><a role="menuitem" onclick="changeCSS('oldcah.css', 0);" tabindex="-1" href="#">Legacy</a></li>
<li role="presentation"><a role="menuitem" onclick="changeCSS('newcah.css', 0);" tabindex="-1" href="#">New</a></li>
</ul>
</div>
<label for="hide_connect_quit">
<dfn style="border-bottom: 1px dotted black"
title="Even with this unselected, you might not see these events if the server is configured to not send them.">
@ -184,22 +192,24 @@ HttpSession hSession = request.getSession(true);
<label for="ignore_list">Chat ignore list, one name per line:</label>
<br/>
<textarea id="ignore_list" style="width: 200px; height: 150px"></textarea>
</div>
<div id="tab-gamelist-filters">
You will have to click Refresh Games after saving any changes here.
<div style="text-align: right; width:100%">
<input type="button" value="Save" onclick="cah.Preferences.save();" />
<input type="button" value="Revert" onclick="cah.Preferences.load();" />
<input type="button" value="Save" class="btn btn-primary" onclick="cah.Preferences.save();" />
<input type="button" value="Revert" class="btn btn-warning" onclick="cah.Preferences.load();" />
</div>
<fieldset>
<legend>Card set filters</legend>
<legend class="l6g">Card set filters:</legend>
<div class="cardset_filter_list">
<span title="Any game which uses at least one of these card sets will not be shown in the game list.">
Do not show any games with these card sets:
</span>
<select id="cardsets_banned" multiple="multiple"></select>
<div class="buttons">
<input type="button" id="banned_remove" value="Remove --&gt;"
<input type="button" class="btn btn-warning" id="banned_remove" value="Remove --&gt;"
onclick="cah.Preferences.transferCardSets('banned', 'neutral')" />
</div>
</div>
@ -207,10 +217,13 @@ HttpSession hSession = request.getSession(true);
<span>Do not require or ban these card sets:</span>
<select id="cardsets_neutral" multiple="multiple"></select>
<div class="buttons">
<input type="button" id="banned_add" value="&lt;-- Ban"
<input type="button" id="banned_add" class="btn btn-error" value="&lt;-- Ban"
onclick="cah.Preferences.transferCardSets('neutral', 'banned')" />
<input type="button" id="required_add" value="Require --&gt;"
<input type="button" id="required_add" class="btn btn-primary" value="Require --&gt;"
onclick="cah.Preferences.transferCardSets('neutral', 'required')" />
</div>
</div>
<div class="cardset_filter_list">
@ -219,7 +232,7 @@ HttpSession hSession = request.getSession(true);
</span>
<select id="cardsets_required" multiple="multiple"></select>
<div class="buttons">
<input type="button" id="required_remove" value="&lt;-- Remove"
<input type="button" id="required_remove" class="btn btn-success" value="&lt;-- Remove"
onclick="cah.Preferences.transferCardSets('required', 'neutral')" />
</div>
</div>
@ -227,8 +240,8 @@ HttpSession hSession = request.getSession(true);
</div>
<div id="tab-global">
<div class="log"></div>
<input type="text" class="chat" maxlength="200" aria-label="Type here to chat." />
<input type="button" class="chat_submit" value="Chat" />
<input type="text" class="chat" maxlength="250" aria-label="Type here to chat." />
<input type="button" class="chat_submit btn btn-primary" value="Chat" />
</div>
</div>
</div>
@ -237,12 +250,12 @@ HttpSession hSession = request.getSession(true);
<div class="hide">
<div id="gamelist_lobby_template" class="gamelist_lobby" tabindex="0">
<div class="gamelist_lobby_left">
<h3>
<h4>
<span class="gamelist_lobby_host">host</span>'s Game
(<span class="gamelist_lobby_player_count"></span>/<span class="gamelist_lobby_max_players"></span>,
<span class="gamelist_lobby_spectator_count"></span>/<span class="gamelist_lobby_max_spectators"></span>)
<span class="gamelist_lobby_status">status</span>
</h3>
</h4>
<div>
<strong>Players:</strong>
<span class="gamelist_lobby_players">host, player1, player2</span>
@ -258,8 +271,8 @@ HttpSession hSession = request.getSession(true);
<div class="hide">Game <span class="gamelist_lobby_id">###</span></div>
</div>
<div class="gamelist_lobby_right">
<input type="button" class="gamelist_lobby_join" value="Join" />
<input type="button" class="gamelist_lobby_spectate" value="Spectate" />
<input type="button" class="gamelist_lobby_join btn btn-primary" value="Join" />
<input type="button" class="gamelist_lobby_spectate btn btn-success" value="Spectate" />
</div>
</div>
</div>
@ -321,9 +334,9 @@ HttpSession hSession = request.getSession(true);
class="hide">
<div id="game_template" class="game">
<div class="game_top">
<input type="button" class="game_show_last_round game_menu_bar" value="Show Last Round"
<input type="button" class="game_show_last_round game_menu_bar btn btn-info" value="Show Last Round"
disabled="disabled" />
<input type="button" class="game_show_options game_menu_bar" value="Hide Game Options" />
<input type="button" class="game_show_options game_menu_bar btn btn-primary" value="Hide Game Options" />
<label class="game_menu_bar checkbox"><input type="checkbox" class="game_animate_cards" checked="checked" /><span> Animate Cards</span></label>
<div class="game_message" role="status">
Waiting for server...
@ -339,7 +352,7 @@ HttpSession hSession = request.getSession(true);
<div class="game_black_card" tabindex="0">
</div>
</div>
<input type="button" class="confirm_card" value="Confirm Selection" />
<input type="button" class="confirm_card btn btn-primary" value="Confirm Selection" />
</div>
<div class="game_options">
</div>
@ -369,7 +382,8 @@ HttpSession hSession = request.getSession(true);
</div>
<!-- Template for scoreboard container. Holder for design. -->
<div style="height: 215px; border: 1px solid black;" class="hide">
<!--<div style="height: 215px; border: 1px solid black;" class="hide">-->
<div style="container" class="hide">
<div id="scoreboard_template" class="scoreboard">
<div class="game_message" tabindex="0">Scoreboard</div>
</div>
@ -402,11 +416,11 @@ HttpSession hSession = request.getSession(true);
<!-- Template for game options. -->
<div class="hide">
<div class="game_options" id="game_options_template">
<div class="game_options well" id="game_options_template">
<span class="options_host_only">Only the game host can change options.</span>
<br/><br/>
<fieldset>
<legend>Game options:</legend>
<legend class="l6g">Game options:</legend>
<label id="score_limit_template_label" for="score_limit_template">Score limit:</label>
<select id="score_limit_template" class="score_limit">
<%
@ -446,10 +460,10 @@ HttpSession hSession = request.getSession(true);
Use idle timer.
</label>
<br/>
<fieldset class="card_sets">
<legend>Card Sets</legend>
<span class="base_card_sets"></span>
<span class="extra_card_sets"></span>
<fieldset class="card_sets">
<legend class="l6g">Card Sets:</legend>
<span class="base_card_sets carddisplayer"></span>
<span class="extra_card_sets carddisplayer"></span>
</fieldset>
<br/>
<label id="blanks_limit_label" title="Blank cards allow a player to type in their own answer.">
@ -463,7 +477,7 @@ HttpSession hSession = request.getSession(true);
</label>
<br/>
<label id="game_password_template_label" for="game_password_template">Game password:</label>
<input type="text" id="game_password_template" class="game_password"
<input type="text" id="game_password_template" class="game_password span2"
aria-label="Game password. You must tab outside of the box to apply the password."/>
<input type="password" id="game_fake_password_template" class="game_fake_password hide" />
You must click outside the box to apply the password.
@ -477,5 +491,19 @@ HttpSession hSession = request.getSession(true);
</div>
</div>
<div style="position:absolute; left:-99999px" role="alert" id="aria-notifications"></div>
<script type="text/javascript" src="js/nightui-btst.js"></script>
<!--
<script type="text/javascript">
$( ".game_right_side" ).hover(function() {
$( this ).style.zIndex = "1000";
$( ".game_hand_cards" ).style.zIndex = "0";
}
$( ".game_hand_cards" ).hover(function() {
$( this ).style.zIndex = "1000";
$( ".game_right_side" ).style.zIndex = "0";
}
</script>
-->
</body>
</html>
</html>

1215
WebContent/jquery-ui.css vendored

File diff suppressed because it is too large Load Diff

View File

@ -196,16 +196,16 @@ cah.ajax.ErrorHandlers[cah.$.AjaxOperation.LEAVE_GAME] = function(data, req) {
cah.ajax.ErrorHandlers[cah.$.AjaxOperation.START_GAME] = function(data, req) {
if (data[cah.$.AjaxResponse.ERROR_CODE] == cah.$.ErrorCode.NOT_ENOUGH_CARDS) {
var msg = "With current settings, the game requires "
+ data[cah.$.ErrorInformation.BLACK_CARDS_REQUIRED] + " black cards and "
+ data[cah.$.ErrorInformation.WHITE_CARDS_REQUIRED] + " white cards, but only has "
+ data[cah.$.ErrorInformation.BLACK_CARDS_PRESENT] + " black cards and "
+ data[cah.$.ErrorInformation.WHITE_CARDS_PRESENT] + " white cards.";
+ data[cah.$.ErrorInformation.BLACK_CARDS_REQUIRED]
+ " black cards and " + data[cah.$.ErrorInformation.WHITE_CARDS_REQUIRED]
+ " white cards, but only has " + data[cah.$.ErrorInformation.BLACK_CARDS_PRESENT]
+ " black cards and " + data[cah.$.ErrorInformation.WHITE_CARDS_PRESENT] + " white cards.";
cah.log.status_with_game(req[cah.$.AjaxRequest.GAME_ID], msg, "error");
} else {
cah.log.error(cah.$.ErrorCode_msg[data[cah.$.AjaxResponse.ERROR_CODE]]);
}
};
}
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.START_GAME] = function(data, req) {
var game = cah.currentGames[data[cah.$.AjaxRequest.GAME_ID]];

View File

@ -152,7 +152,7 @@ function chatsubmit_click(game_id, parent_element) {
ajax = cah.Ajax.build(cah.$.AjaxOperation.CHAT);
}
ajax = ajax.withEmote(false).withMessage(text);
cah.log.status_with_game(game_id, "<" + cah.nickname + "> " + text);
cah.log.status_with_game(game_id, "[" + cah.nickname + "]: " + text);
break;
case 'me':
if (game_id !== null) {

4
WebContent/js/jquery-2.1.3.js vendored Normal file

File diff suppressed because one or more lines are too long

521
WebContent/js/jquery-migrate.js vendored Normal file
View File

@ -0,0 +1,521 @@
/*!
* jQuery Migrate - v1.2.1 - 2013-05-08
* https://github.com/jquery/jquery-migrate
* Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
*/
(function( jQuery, window, undefined ) {
// See http://bugs.jquery.com/ticket/13335
// "use strict";
var warnedAbout = {};
// List of warnings already given; public read only
jQuery.migrateWarnings = [];
// Set to true to prevent console output; migrateWarnings still maintained
// jQuery.migrateMute = false;
// Show a message on the console so devs know we're active
if ( !jQuery.migrateMute && window.console && window.console.log ) {
window.console.log("JQMIGRATE: Logging is active");
}
// Set to false to disable traces that appear with warnings
if ( jQuery.migrateTrace === undefined ) {
jQuery.migrateTrace = true;
}
// Forget any warnings we've already given; public
jQuery.migrateReset = function() {
warnedAbout = {};
jQuery.migrateWarnings.length = 0;
};
function migrateWarn( msg) {
var console = window.console;
if ( !warnedAbout[ msg ] ) {
warnedAbout[ msg ] = true;
jQuery.migrateWarnings.push( msg );
if ( console && console.warn && !jQuery.migrateMute ) {
console.warn( "JQMIGRATE: " + msg );
if ( jQuery.migrateTrace && console.trace ) {
console.trace();
}
}
}
}
function migrateWarnProp( obj, prop, value, msg ) {
if ( Object.defineProperty ) {
// On ES5 browsers (non-oldIE), warn if the code tries to get prop;
// allow property to be overwritten in case some other plugin wants it
try {
Object.defineProperty( obj, prop, {
configurable: true,
enumerable: true,
get: function() {
migrateWarn( msg );
return value;
},
set: function( newValue ) {
migrateWarn( msg );
value = newValue;
}
});
return;
} catch( err ) {
// IE8 is a dope about Object.defineProperty, can't warn there
}
}
// Non-ES5 (or broken) browser; just set the property
jQuery._definePropertyBroken = true;
obj[ prop ] = value;
}
if ( document.compatMode === "BackCompat" ) {
// jQuery has never supported or tested Quirks Mode
migrateWarn( "jQuery is not compatible with Quirks Mode" );
}
var attrFn = jQuery( "<input/>", { size: 1 } ).attr("size") && jQuery.attrFn,
oldAttr = jQuery.attr,
valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||
function() { return null; },
valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set ||
function() { return undefined; },
rnoType = /^(?:input|button)$/i,
rnoAttrNodeType = /^[238]$/,
rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
ruseDefault = /^(?:checked|selected)$/i;
// jQuery.attrFn
migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" );
jQuery.attr = function( elem, name, value, pass ) {
var lowerName = name.toLowerCase(),
nType = elem && elem.nodeType;
if ( pass ) {
// Since pass is used internally, we only warn for new jQuery
// versions where there isn't a pass arg in the formal params
if ( oldAttr.length < 4 ) {
migrateWarn("jQuery.fn.attr( props, pass ) is deprecated");
}
if ( elem && !rnoAttrNodeType.test( nType ) &&
(attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {
return jQuery( elem )[ name ]( value );
}
}
// Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking
// for disconnected elements we don't warn on $( "<button>", { type: "button" } ).
if ( name === "type" && value !== undefined && rnoType.test( elem.nodeName ) && elem.parentNode ) {
migrateWarn("Can't change the 'type' of an input or button in IE 6/7/8");
}
// Restore boolHook for boolean property/attribute synchronization
if ( !jQuery.attrHooks[ lowerName ] && rboolean.test( lowerName ) ) {
jQuery.attrHooks[ lowerName ] = {
get: function( elem, name ) {
// Align boolean attributes with corresponding properties
// Fall back to attribute presence where some booleans are not supported
var attrNode,
property = jQuery.prop( elem, name );
return property === true || typeof property !== "boolean" &&
( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
name.toLowerCase() :
undefined;
},
set: function( elem, value, name ) {
var propName;
if ( value === false ) {
// Remove boolean attributes when set to false
jQuery.removeAttr( elem, name );
} else {
// value is true since we know at this point it's type boolean and not false
// Set boolean attributes to the same name and set the DOM property
propName = jQuery.propFix[ name ] || name;
if ( propName in elem ) {
// Only set the IDL specifically if it already exists on the element
elem[ propName ] = true;
}
elem.setAttribute( name, name.toLowerCase() );
}
return name;
}
};
// Warn only for attributes that can remain distinct from their properties post-1.9
if ( ruseDefault.test( lowerName ) ) {
migrateWarn( "jQuery.fn.attr('" + lowerName + "') may use property instead of attribute" );
}
}
return oldAttr.call( jQuery, elem, name, value );
};
// attrHooks: value
jQuery.attrHooks.value = {
get: function( elem, name ) {
var nodeName = ( elem.nodeName || "" ).toLowerCase();
if ( nodeName === "button" ) {
return valueAttrGet.apply( this, arguments );
}
if ( nodeName !== "input" && nodeName !== "option" ) {
migrateWarn("jQuery.fn.attr('value') no longer gets properties");
}
return name in elem ?
elem.value :
null;
},
set: function( elem, value ) {
var nodeName = ( elem.nodeName || "" ).toLowerCase();
if ( nodeName === "button" ) {
return valueAttrSet.apply( this, arguments );
}
if ( nodeName !== "input" && nodeName !== "option" ) {
migrateWarn("jQuery.fn.attr('value', val) no longer sets properties");
}
// Does not return so that setAttribute is also used
elem.value = value;
}
};
var matched, browser,
oldInit = jQuery.fn.init,
oldParseJSON = jQuery.parseJSON,
// Note: XSS check is done below after string is trimmed
rquickExpr = /^([^<]*)(<[\w\W]+>)([^>]*)$/;
// $(html) "looks like html" rule change
jQuery.fn.init = function( selector, context, rootjQuery ) {
var match;
if ( selector && typeof selector === "string" && !jQuery.isPlainObject( context ) &&
(match = rquickExpr.exec( jQuery.trim( selector ) )) && match[ 0 ] ) {
// This is an HTML string according to the "old" rules; is it still?
if ( selector.charAt( 0 ) !== "<" ) {
migrateWarn("$(html) HTML strings must start with '<' character");
}
if ( match[ 3 ] ) {
migrateWarn("$(html) HTML text after last tag is ignored");
}
// Consistently reject any HTML-like string starting with a hash (#9521)
// Note that this may break jQuery 1.6.x code that otherwise would work.
if ( match[ 0 ].charAt( 0 ) === "#" ) {
migrateWarn("HTML string cannot start with a '#' character");
jQuery.error("JQMIGRATE: Invalid selector string (XSS)");
}
// Now process using loose rules; let pre-1.8 play too
if ( context && context.context ) {
// jQuery object as context; parseHTML expects a DOM object
context = context.context;
}
if ( jQuery.parseHTML ) {
return oldInit.call( this, jQuery.parseHTML( match[ 2 ], context, true ),
context, rootjQuery );
}
}
return oldInit.apply( this, arguments );
};
jQuery.fn.init.prototype = jQuery.fn;
// Let $.parseJSON(falsy_value) return null
jQuery.parseJSON = function( json ) {
if ( !json && json !== null ) {
migrateWarn("jQuery.parseJSON requires a valid JSON string");
return null;
}
return oldParseJSON.apply( this, arguments );
};
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
// Don't clobber any existing jQuery.browser in case it's different
if ( !jQuery.browser ) {
matched = jQuery.uaMatch( navigator.userAgent );
browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
jQuery.browser = browser;
}
// Warn if the code tries to get jQuery.browser
migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" );
jQuery.sub = function() {
function jQuerySub( selector, context ) {
return new jQuerySub.fn.init( selector, context );
}
jQuery.extend( true, jQuerySub, this );
jQuerySub.superclass = this;
jQuerySub.fn = jQuerySub.prototype = this();
jQuerySub.fn.constructor = jQuerySub;
jQuerySub.sub = this.sub;
jQuerySub.fn.init = function init( selector, context ) {
if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
context = jQuerySub( context );
}
return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
};
jQuerySub.fn.init.prototype = jQuerySub.fn;
var rootjQuerySub = jQuerySub(document);
migrateWarn( "jQuery.sub() is deprecated" );
return jQuerySub;
};
// Ensure that $.ajax gets the new parseJSON defined in core.js
jQuery.ajaxSetup({
converters: {
"text json": jQuery.parseJSON
}
});
var oldFnData = jQuery.fn.data;
jQuery.fn.data = function( name ) {
var ret, evt,
elem = this[0];
// Handles 1.7 which has this behavior and 1.8 which doesn't
if ( elem && name === "events" && arguments.length === 1 ) {
ret = jQuery.data( elem, name );
evt = jQuery._data( elem, name );
if ( ( ret === undefined || ret === evt ) && evt !== undefined ) {
migrateWarn("Use of jQuery.fn.data('events') is deprecated");
return evt;
}
}
return oldFnData.apply( this, arguments );
};
var rscriptType = /\/(java|ecma)script/i,
oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
jQuery.fn.andSelf = function() {
migrateWarn("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()");
return oldSelf.apply( this, arguments );
};
// Since jQuery.clean is used internally on older versions, we only shim if it's missing
if ( !jQuery.clean ) {
jQuery.clean = function( elems, context, fragment, scripts ) {
// Set context per 1.8 logic
context = context || document;
context = !context.nodeType && context[0] || context;
context = context.ownerDocument || context;
migrateWarn("jQuery.clean() is deprecated");
var i, elem, handleScript, jsTags,
ret = [];
jQuery.merge( ret, jQuery.buildFragment( elems, context ).childNodes );
// Complex logic lifted directly from jQuery 1.8
if ( fragment ) {
// Special handling of each script element
handleScript = function( elem ) {
// Check if we consider it executable
if ( !elem.type || rscriptType.test( elem.type ) ) {
// Detach the script and store it in the scripts array (if provided) or the fragment
// Return truthy to indicate that it has been handled
return scripts ?
scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
fragment.appendChild( elem );
}
};
for ( i = 0; (elem = ret[i]) != null; i++ ) {
// Check if we're done after handling an executable script
if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
// Append to fragment and handle embedded scripts
fragment.appendChild( elem );
if ( typeof elem.getElementsByTagName !== "undefined" ) {
// handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );
// Splice the scripts into ret after their former ancestor and advance our index beyond them
ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
i += jsTags.length;
}
}
}
}
return ret;
};
}
var eventAdd = jQuery.event.add,
eventRemove = jQuery.event.remove,
eventTrigger = jQuery.event.trigger,
oldToggle = jQuery.fn.toggle,
oldLive = jQuery.fn.live,
oldDie = jQuery.fn.die,
ajaxEvents = "ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",
rajaxEvent = new RegExp( "\\b(?:" + ajaxEvents + ")\\b" ),
rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
hoverHack = function( events ) {
if ( typeof( events ) !== "string" || jQuery.event.special.hover ) {
return events;
}
if ( rhoverHack.test( events ) ) {
migrateWarn("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'");
}
return events && events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
};
// Event props removed in 1.9, put them back if needed; no practical way to warn them
if ( jQuery.event.props && jQuery.event.props[ 0 ] !== "attrChange" ) {
jQuery.event.props.unshift( "attrChange", "attrName", "relatedNode", "srcElement" );
}
// Undocumented jQuery.event.handle was "deprecated" in jQuery 1.7
if ( jQuery.event.dispatch ) {
migrateWarnProp( jQuery.event, "handle", jQuery.event.dispatch, "jQuery.event.handle is undocumented and deprecated" );
}
// Support for 'hover' pseudo-event and ajax event warnings
jQuery.event.add = function( elem, types, handler, data, selector ){
if ( elem !== document && rajaxEvent.test( types ) ) {
migrateWarn( "AJAX events should be attached to document: " + types );
}
eventAdd.call( this, elem, hoverHack( types || "" ), handler, data, selector );
};
jQuery.event.remove = function( elem, types, handler, selector, mappedTypes ){
eventRemove.call( this, elem, hoverHack( types ) || "", handler, selector, mappedTypes );
};
jQuery.fn.error = function() {
var args = Array.prototype.slice.call( arguments, 0);
migrateWarn("jQuery.fn.error() is deprecated");
args.splice( 0, 0, "error" );
if ( arguments.length ) {
return this.bind.apply( this, args );
}
// error event should not bubble to window, although it does pre-1.7
this.triggerHandler.apply( this, args );
return this;
};
jQuery.fn.toggle = function( fn, fn2 ) {
// Don't mess with animation or css toggles
if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
return oldToggle.apply( this, arguments );
}
migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");
// Save reference to arguments for access in closure
var args = arguments,
guid = fn.guid || jQuery.guid++,
i = 0,
toggler = function( event ) {
// Figure out which function to execute
var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
// Make sure that clicks stop
event.preventDefault();
// and execute the function
return args[ lastToggle ].apply( this, arguments ) || false;
};
// link all the functions, so any of them can unbind this click handler
toggler.guid = guid;
while ( i < args.length ) {
args[ i++ ].guid = guid;
}
return this.click( toggler );
};
jQuery.fn.live = function( types, data, fn ) {
migrateWarn("jQuery.fn.live() is deprecated");
if ( oldLive ) {
return oldLive.apply( this, arguments );
}
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
};
jQuery.fn.die = function( types, fn ) {
migrateWarn("jQuery.fn.die() is deprecated");
if ( oldDie ) {
return oldDie.apply( this, arguments );
}
jQuery( this.context ).off( types, this.selector || "**", fn );
return this;
};
// Turn global events into document-triggered events
jQuery.event.trigger = function( event, data, elem, onlyHandlers ){
if ( !elem && !rajaxEvent.test( event ) ) {
migrateWarn( "Global events are undocumented and deprecated" );
}
return eventTrigger.call( this, event, data, elem || document, onlyHandlers );
};
jQuery.each( ajaxEvents.split("|"),
function( _, name ) {
jQuery.event.special[ name ] = {
setup: function() {
var elem = this;
// The document needs no shimming; must be !== for oldIE
if ( elem !== document ) {
jQuery.event.add( document, name + "." + jQuery.guid, function() {
jQuery.event.trigger( name, null, elem, true );
});
jQuery._data( this, name, jQuery.guid++ );
}
return false;
},
teardown: function() {
if ( this !== document ) {
jQuery.event.remove( document, name + "." + jQuery._data( this, name ) );
}
return false;
}
};
}
);
})( jQuery, window );

File diff suppressed because one or more lines are too long

12364
WebContent/newcah.css Normal file

File diff suppressed because it is too large Load Diff

10494
WebContent/nightui.css Normal file

File diff suppressed because it is too large Load Diff

2476
WebContent/oldcah.css Normal file

File diff suppressed because it is too large Load Diff

885
WebContent/stylechooser.css Normal file
View File

@ -0,0 +1,885 @@
/* Style Chooser Prereq's - Author: Night | night@infsys.net */
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
font-size: 14px;
text-align: left;
list-style: none;
background-color: #fff;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #ccc;
border: 1px solid rgba(0,0,0,.15);
border-radius: 4px;
-webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175);
box-shadow: 0 6px 12px rgba(0,0,0,.175);
}
.dropdown-menu.pull-right {
right: 0;
left: auto;
}
.dropdown-menu .divider {
height: 1px;
margin: 9px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.dropdown-menu>li>a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: #333;
white-space: nowrap;
}
.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover {
color: #262626;
text-decoration: none;
background-color: #f5f5f5;
}
.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover {
color: #fff;
text-decoration: none;
background-color: #428bca;
outline: 0;
}
.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover {
color: #777;
}
.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover {
text-decoration: none;
cursor: not-allowed;
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
.open>.dropdown-menu {
display: block;
}
.carddisplayer {
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
font-size: 12px;
line-height: .8;
color: #333;
background-color: #fff;
}
.open>a {
outline: 0;
}
.dropdown-menu-right {
right: 0;
left: auto;
}
.dropdown-menu-left {
right: auto;
left: 0;
}
.dropdown-header {
display: block;
padding: 3px 20px;
font-size: 12px;
line-height: 1.42857143;
color: #777;
white-space: nowrap;
}
.dropdown-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 990;
}
.pull-right>.dropdown-menu {
right: 0;
left: auto;
}
.dropup .caret,.navbar-fixed-bottom .dropdown .caret {
content: "";
border-top: 0;
border-bottom: 4px solid;
}
.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 1px;
}
@media (min-width:768px) {
.navbar-right .dropdown-menu {
right: 0;
left: auto;
}
.navbar-right .dropdown-menu-left {
right: auto;
left: 0;
};
}
.lbtn-group,.lbtn-group-vertical {
position: relative;
display: inline-block;
vertical-align: middle;
}
.lbtn-group-vertical>.lbtn,.lbtn-group>.lbtn {
position: relative;
float: left;
}
.lbtn-group-vertical>.lbtn.active,.lbtn-group-vertical>.lbtn:active,.lbtn-group-vertical>.lbtn:focus,.lbtn-group-vertical>.lbtn:hover,.lbtn-group>.lbtn.active,.lbtn-group>.lbtn:active,.lbtn-group>.lbtn:focus,.lbtn-group>.lbtn:hover {
z-index: 2;
}
.lbtn-group-vertical>.lbtn:focus,.lbtn-group>.lbtn:focus {
outline: 0;
}
.lbtn-group .lbtn+.lbtn,.lbtn-group .lbtn+.lbtn-group,.lbtn-group .lbtn-group+.lbtn,.lbtn-group .lbtn-group+.lbtn-group {
margin-left: -1px;
}
.lbtn-toolbar {
margin-left: -5px;
}
.lbtn-toolbar .lbtn-group,.lbtn-toolbar .input-group {
float: left;
}
.lbtn-toolbar>.lbtn,.lbtn-toolbar>.lbtn-group,.lbtn-toolbar>.input-group {
margin-left: 5px;
}
.lbtn-group>.lbtn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
border-radius: 0;
}
.lbtn-group>.lbtn:first-child {
margin-left: 0;
}
.lbtn-group>.lbtn:first-child:not(:last-child):not(.dropdown-toggle) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.lbtn-group>.lbtn:last-child:not(:first-child),.lbtn-group>.dropdown-toggle:not(:first-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.lbtn-group>.lbtn-group {
float: left;
}
.lbtn-group>.lbtn-group:not(:first-child):not(:last-child)>.lbtn {
border-radius: 0;
}
.lbtn-group>.lbtn-group:first-child>.lbtn:last-child,.lbtn-group>.lbtn-group:first-child>.dropdown-toggle {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.lbtn-group>.lbtn-group:last-child>.lbtn:first-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.lbtn-group .dropdown-toggle:active,.lbtn-group.open .dropdown-toggle {
outline: 0;
}
.lbtn-group>.lbtn+.dropdown-toggle {
padding-right: 8px;
padding-left: 8px;
}
.lbtn-group>.lbtn-lg+.dropdown-toggle {
padding-right: 12px;
padding-left: 12px;
}
.lbtn-group.open .dropdown-toggle {
-webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.125);
box-shadow: inset 0 3px 5px rgba(0,0,0,.125);
}
.lbtn-group.open .dropdown-toggle.lbtn-link {
-webkit-box-shadow: none;
box-shadow: none;
}
.lbtn .caret {
margin-left: 0;
}
.lbtn-lg .caret {
border-width: 5px 5px 0;
border-bottom-width: 0;
}
.dropup .lbtn-lg .caret {
border-width: 0 5px 5px;
}
.lbtn-group-vertical>.lbtn,.lbtn-group-vertical>.lbtn-group,.lbtn-group-vertical>.lbtn-group>.lbtn {
display: block;
float: none;
width: 100%;
max-width: 100%;
}
.lbtn-group-vertical>.lbtn-group>.lbtn {
float: none;
}
.lbtn-group-vertical>.lbtn+.lbtn,.lbtn-group-vertical>.lbtn+.lbtn-group,.lbtn-group-vertical>.lbtn-group+.lbtn,.lbtn-group-vertical>.lbtn-group+.lbtn-group {
margin-top: -1px;
margin-left: 0;
}
.lbtn-group-vertical>.lbtn:not(:first-child):not(:last-child) {
border-radius: 0;
}
.lbtn-group-vertical>.lbtn:first-child:not(:last-child) {
border-top-right-radius: 4px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.lbtn-group-vertical>.lbtn:last-child:not(:first-child) {
border-top-left-radius: 0;
border-top-right-radius: 0;
border-bottom-left-radius: 4px;
}
.lbtn-group-vertical>.lbtn-group:not(:first-child):not(:last-child)>.lbtn {
border-radius: 0;
}
.lbtn-group-vertical>.lbtn-group:first-child:not(:last-child)>.lbtn:last-child,.lbtn-group-vertical>.lbtn-group:first-child:not(:last-child)>.dropdown-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.lbtn-group-vertical>.lbtn-group:last-child:not(:first-child)>.lbtn:first-child {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.lbtn-group-justified {
display: table;
width: 100%;
table-layout: fixed;
border-collapse: separate;
}
.lbtn-group-justified>.lbtn,.lbtn-group-justified>.lbtn-group {
display: table-cell;
float: none;
width: 1%;
}
.lbtn-group-justified>.lbtn-group .lbtn {
width: 100%;
}
.lbtn-group-justified>.lbtn-group .dropdown-menu {
left: auto;
}
[data-toggle=buttons]>.lbtn input[type=checkbox],[data-toggle=buttons]>.lbtn input[type=radio],[data-toggle=buttons]>.lbtn-group>.lbtn input[type=checkbox],[data-toggle=buttons]>.lbtn-group>.lbtn input[type=radio] {
position: absolute;
z-index: -1;
filter: alpha(opacity=0);
opacity: 0;
}
.lgbtn {
padding: 4px 12px;
margin-bottom: 0;
*margin-left: .3em;
font-size: 14px;
line-height: 20px;
*line-height: 20px;
color: #333333;
text-align: center;
vertical-align: middle;
cursor: pointer;
background-color: #f5f5f5;
*background-color: #e6e6e6;
border: 1px solid #bbbbbb;
*border: 0;
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
border-bottom-color: #a2a2a2;
*zoom: 1;
}
.lbtn:hover,
.lbtn:active,
.lbtn.active,
.lbtn.disabled,
.lbtn[disabled] {
color: #333333;
background-color: #e6e6e6;
*background-color: #d9d9d9;
}
.lbtn:active,
.lbtn.active {
background-color: #cccccc \9;
}
.lbtn:first-child {
*margin-left: 0;
}
.lbtn:hover {
color: #333333;
text-decoration: none;
background-color: #e6e6e6;
*background-color: #d9d9d9;
/* Buttons in IE7 don't get borders, so darken on hover */
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
-moz-transition: background-position 0.1s linear;
-o-transition: background-position 0.1s linear;
transition: background-position 0.1s linear;
}
.lbtn:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.lbtn.active,
.lbtn:active {
background-color: #e6e6e6;
background-color: #d9d9d9 \9;
background-image: none;
outline: 0;
}
.lbtn.disabled,
.lbtn[disabled] {
cursor: default;
background-color: #e6e6e6;
background-image: none;
opacity: 0.65;
filter: alpha(opacity=65);
}
.lbtn-large {
padding: 11px 19px;
font-size: 17.5px;
}
.lbtn-large [class^="icon-"],
.lbtn-large [class*=" icon-"] {
margin-top: 2px;
}
.lbtn-small {
padding: 2px 10px;
font-size: 11.9px;
}
.lbtn-small [class^="icon-"],
.lbtn-small [class*=" icon-"] {
margin-top: 0;
}
.lbtn-mini {
padding: 1px 6px;
font-size: 10.5px;
}
.lbtn-block {
display: block;
width: 100%;
padding-right: 0;
padding-left: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.lbtn-block + .lbtn-block {
margin-top: 5px;
}
input[type="submit"].lbtn-block,
input[type="reset"].lbtn-block,
input[type="button"].lbtn-block {
width: 100%;
}
.lbtn-primary.active,
.lbtn-warning.active,
.lbtn-danger.active,
.lbtn-success.active,
.lbtn-info.active,
.lbtn-inverse.active {
color: rgba(255, 255, 255, 0.75);
}
.lbtn {
border-color: #c5c5c5;
border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
}
.lbtn-primary {
color: #ffffff;
text-shadow: 0;
background-color: #3498DB;
*background-color: #3498DB;
background-repeat: repeat-x;
}
.lbtn-primary:hover,
.lbtn-primary:active,
.lbtn-primary.active,
.lbtn-primary.disabled,
.lbtn-primary[disabled] {
color: #ffffff;
background-color: #2980B9;
*background-color: #2980B9;
}
.lbtn-primary:active,
.lbtn-primary.active {
background-color: #003399 \9;
}
.lbtn-warning {
color: #ffffff;
background-color: #faa732;
*background-color: #f89406;
background-repeat: repeat-x;
border-color: #f89406 #f89406 #ad6704;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
.lbtn-warning:hover,
.lbtn-warning:active,
.lbtn-warning.active,
.lbtn-warning.disabled,
.lbtn-warning[disabled] {
color: #ffffff;
background-color: #f89406;
*background-color: #df8505;
}
.lbtn-warning:active,
.lbtn-warning.active {
background-color: #c67605 \9;
}
.lbtn-danger {
color: #ffffff;
background-color: #da4f49;
*background-color: #bd362f;
background-repeat: repeat-x;
border-color: #bd362f #bd362f #802420;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
.lbtn-danger:hover,
.lbtn-danger:active,
.lbtn-danger.active,
.lbtn-danger.disabled,
.lbtn-danger[disabled] {
color: #ffffff;
background-color: #bd362f;
*background-color: #a9302a;
}
.lbtn-danger:active,
.lbtn-danger.active {
background-color: #942a25 \9;
}
.lbtn-success {
color: #ffffff;
background-color: #5bb75b;
*background-color: #51a351;
background-repeat: repeat-x;
border-color: #51a351 #51a351 #387038;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
.lbtn-success:hover,
.lbtn-success:active,
.lbtn-success.active,
.lbtn-success.disabled,
.lbtn-success[disabled] {
color: #ffffff;
background-color: #51a351;
*background-color: #499249;
}
.lbtn-success:active,
.lbtn-success.active {
background-color: #408140 \9;
}
.lbtn-info {
color: #ffffff;
background-color: #49afcd;
*background-color: #2f96b4;
background-repeat: repeat-x;
border-color: #2f96b4 #2f96b4 #1f6377;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
.lbtn-info:hover,
.lbtn-info:active,
.lbtn-info.active,
.lbtn-info.disabled,
.lbtn-info[disabled] {
color: #ffffff;
background-color: #2f96b4;
*background-color: #2a85a0;
}
.lbtn-info:active,
.lbtn-info.active {
background-color: #24748c \9;
}
.lbtn-inverse {
color: #ffffff;
background-color: #363636;
*background-color: #222222;
border-color: #222222 #222222 #000000;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
.lbtn-inverse:hover,
.lbtn-inverse:active,
.lbtn-inverse.active,
.lbtn-inverse.disabled,
.lbtn-inverse[disabled] {
color: #ffffff;
background-color: #222222;
*background-color: #151515;
}
.lbtn-inverse:active,
.lbtn-inverse.active {
background-color: #080808 \9;
}
button.lbtn,
input[type="submit"].lbtn {
*padding-top: 3px;
*padding-bottom: 3px;
}
button.lbtn::-moz-focus-inner,
input[type="submit"].lbtn::-moz-focus-inner {
padding: 0;
border: 0;
}
button.lbtn.lbtn-large,
input[type="submit"].lbtn.lbtn-large {
*padding-top: 7px;
*padding-bottom: 7px;
}
button.lbtn.lbtn-small,
input[type="submit"].lbtn.lbtn-small {
*padding-top: 3px;
*padding-bottom: 3px;
}
button.lbtn.lbtn-mini,
input[type="submit"].lbtn.lbtn-mini {
*padding-top: 1px;
*padding-bottom: 1px;
}
.lbtn-link,
.lbtn-link:active,
.lbtn-link[disabled] {
background-color: transparent;
background-image: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.lbtn-link {
color: #0088cc;
cursor: pointer;
border-color: transparent;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.lbtn-link:hover {
color: #005580;
text-decoration: underline;
background-color: transparent;
}
.lbtn-link[disabled]:hover {
color: #333333;
text-decoration: none;
}
.lbtn-group {
position: relative;
display: inline-block;
*display: inline;
*margin-left: .3em;
font-size: 0;
white-space: nowrap;
vertical-align: middle;
*zoom: 1;
}
.lbtn-group:first-child {
*margin-left: 0;
}
.lbtn-group + .lbtn-group {
margin-left: 5px;
}
.lbtn-toolbar {
margin-top: 10px;
margin-bottom: 10px;
font-size: 0;
}
.lbtn-toolbar .lbtn + .lbtn,
.lbtn-toolbar .lbtn-group + .lbtn,
.lbtn-toolbar .lbtn + .lbtn-group {
margin-left: 5px;
}
.lbtn-group > .lbtn {
position: relative;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.lbtn-group > .lbtn + .lbtn {
margin-left: -1px;
}
.lbtn-group > .lbtn,
.lbtn-group > .dropdown-menu {
font-size: 14px;
}
.lbtn-group > .lbtn-mini {
font-size: 11px;
}
.lbtn-group > .lbtn-small {
font-size: 12px;
}
.lbtn-group > .lbtn-large {
font-size: 16px;
}
.lbtn-group > .lbtn:first-child {
margin-left: 0;
}
.lbtn-group > .lbtn:last-child,
.lbtn-group > .dropdown-toggle {
}
.lbtn-group > .lbtn.large:first-child {
margin-left: 0;
}
.lbtn-group > .lbtn.large:last-child,
.lbtn-group > .large.dropdown-toggle {
}
.lbtn-group > .lbtn:hover,
.lbtn-group > .lbtn:focus,
.lbtn-group > .lbtn:active,
.lbtn-group > .lbtn.active {
z-index: 2;
}
.lbtn-group .dropdown-toggle:active,
.lbtn-group.open .dropdown-toggle {
outline: 0;
}
.lbtn-group > .lbtn + .dropdown-toggle {
*padding-top: 5px;
padding-right: 8px;
*padding-bottom: 5px;
padding-left: 8px;
}
.lbtn-group > .lbtn-mini + .dropdown-toggle {
*padding-top: 2px;
padding-right: 5px;
*padding-bottom: 2px;
padding-left: 5px;
}
.lbtn-group > .lbtn-small + .dropdown-toggle {
*padding-top: 5px;
*padding-bottom: 4px;
}
.lbtn-group > .lbtn-large + .dropdown-toggle {
*padding-top: 7px;
padding-right: 12px;
*padding-bottom: 7px;
padding-left: 12px;
}
.lbtn-group.open .dropdown-toggle {
background-image: none;
}
.lbtn-group.open .lbtn.dropdown-toggle {
background-color: #e6e6e6;
}
.lbtn-group.open .lbtn-primary.dropdown-toggle {
background-color: #0044cc;
}
.lbtn-group.open .lbtn-warning.dropdown-toggle {
background-color: #f89406;
}
.lbtn-group.open .lbtn-danger.dropdown-toggle {
background-color: #bd362f;
}
.lbtn-group.open .lbtn-success.dropdown-toggle {
background-color: #51a351;
}
.lbtn-group.open .lbtn-info.dropdown-toggle {
background-color: #2f96b4;
}
.lbtn-group.open .lbtn-inverse.dropdown-toggle {
background-color: #222222;
}
.lbtn .caret {
margin-top: 8px;
margin-left: 0;
}
.lbtn-mini .caret,
.lbtn-small .caret,
.lbtn-large .caret {
margin-top: 6px;
}
.lbtn-large .caret {
border-top-width: 5px;
border-right-width: 5px;
border-left-width: 5px;
}
.dropup .lbtn-large .caret {
border-bottom-width: 5px;
}
.lbtn-primary .caret,
.lbtn-warning .caret,
.lbtn-danger .caret,
.lbtn-info .caret,
.lbtn-success .caret,
.lbtn-inverse .caret {
border-top-color: #ffffff;
border-bottom-color: #ffffff;
}
.lbtn-group-vertical {
display: inline-block;
*display: inline;
/* IE7 inline-block hack */
*zoom: 1;
}
.lbtn-group-vertical .lbtn {
display: block;
float: none;
width: 100%;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.lbtn-group-vertical .lbtn + .lbtn {
margin-top: -1px;
margin-left: 0;
}
.lbtn-group-vertical .lbtn:first-child {
}
.lbtn-group-vertical .lbtn:last-child {
}
.lbtn-group-vertical .lbtn-large:first-child {
}
.lbtn-group-vertical .lbtn-large:last-child {
}
input[type=button].lbtn-block,input[type=reset].lbtn-block,input[type=submit].lbtn-block {
width: 100%;
}

View File

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8" ?>
<%--
Copyright (c) 2013, Andy Janata
All rights reserved.
@ -129,9 +128,8 @@ try {
whiteCardsData.put(whiteCard.getId(), whiteCardData);
}
%>
<!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">
--%>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pretend You're Xyzzy: View Cards</title>
@ -141,9 +139,10 @@ try {
<script type="text/javascript" src="js/QTransform.js"></script>
<script type="text/javascript" src="js/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="jquery-ui.css" media="screen" />
<jsp:include page="analytics.jsp" />
<link rel="stylesheet" type="text/css" href="nightui.css" media="screen" />
<!--<jsp:include page="analytics.jsp" />
<script type="text/javascript">
var data = <%= JSONValue.toJSONString(data) %>;
var data = ;
$(document).ready(function() {
var cardSetsElem = $('#cardSets');
@ -204,52 +203,42 @@ function applyFilter(cardArray, prefix) {
table td {
padding: 5px;
}
</style>
</style> -->
</head>
<body>
<div style="float: left;">
Show only cards from card sets (hold ctrl or cmd to select multiple):
<br/>
<select id="cardSets" multiple="multiple" style="height: 150px; width: 450px;">
</select>
</div>
<div>
<label for="search" style="padding-left: 10px;"
title="Search for text in cards. You can use regular expressions.">
Search card text:
</label>
<input type="text" id="search" style="width: 400px;" />
<div class="jumbotron">
<div class="container">
<h1>View Cards</h1>
<p>This feature has been disabled as it causes excessive strain on server resources.</p>
<!-- <p>CardCast decks will not appear here.</p>-->
</div>
</div>
<!--<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-search" id="basic-addon1"></span>
<input type="text" class="form-control" placeholder="Search cards" aria-describedby="basic-addon1">
</div>
<br>
<div style="clear:both"></div>
<table id="cardTable">
<table id="cardTable" class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th class="sorting" style="width: 75px;">Type</th>
<th class="sorting" style="width: 100%" id="cardTextColumn">Text</th>
<th class="sorting" style="width: 100px;">Source</th>
<th class="sorting" style="width: 75px;">Draw</th>
<th class="sorting" style="width: 75px;">Pick</th>
<tr class="info">
<td class="success sorting" style="width: 75px;">Type</td>
<td class="info sorting" style="width: 100%" id="cardTextColumn">Text</td>
<td class="error" style="width: 100px;">Source</td>
<td class="warning" style="width: 75px;">Draw</td>
<td class="sorting" style="width: 75px;">Pick</td>
</tr>
</thead>
<tbody id="cards">
</tbody>
</table>
</table>-->
</body>
</html>
<%--
<%
} finally {
hibernateSession.close();
}
%>
--%>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pretend You're Xyzzy: View Cards</title>
</head>
<body>
<p>This page has been disabled as it causes excess strain on server resources.</p>
</body>
</html>

View File

@ -0,0 +1,4 @@
pyx.client.cookie_domain=.socialgamer.net
pyx.server.include_inactive_cardsets=false
pyx.server.max_users=1000
pyx.server.max_games=225