committing all the mobiley goodness.

This commit is contained in:
scottjehl 2010-09-10 18:23:13 -04:00
commit 1d0fd4a7d8
64 changed files with 4234 additions and 0 deletions

17
.htaccess Normal file
View file

@ -0,0 +1,17 @@
<Files index.html>
ForceType application/x-httpd-php
</Files>
RewriteEngine On
RewriteRule ^css/all combine.php?type=css
RewriteRule ^js/all combine.php?type=javascript
# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault "access"
# cache text, css, and javascript files for one week
<FilesMatch ".(html|png|jpg|gif|js|css)$">
Header set Cache-Control "max-age=1"
</FilesMatch>

76
_containers-states.html Normal file
View file

@ -0,0 +1,76 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Static Containers, States</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>Containers and states</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content">
<div class="ui-body ui-body-a">
<h1>Description</h1>
<p>This page displays examples of themeable containers that are used throughout the jQuery Mobile framework.</p>
</div>
<div class="ui-bar ui-bar-a">
<a href="#" data-icon="arrow-l">Button</a>
<h1>ui-bar-a</h1>
</div>
<div class="ui-body ui-body-a">
<p>ui-body-a <a href="#" class="ui-link">ui-link</a></p>
<a href="#" data-role="button">Button</a>
</div>
<div class="ui-bar ui-bar-b">
<a href="#" data-icon="arrow-l">Button</a>
<h1>ui-bar-b</h1>
</div>
<div class="ui-body ui-body-b">
<p>ui-body-b <a href="#" class="ui-link">ui-link</a></p>
<a href="#" data-role="button">Button</a>
</div>
<div class="ui-bar ui-bar-c">
<a href="#" data-icon="arrow-l">Button</a>
<h1>ui-bar-c</h1>
</div>
<div class="ui-body ui-body-c">
<p>ui-body-c <a href="#" class="ui-link">ui-link</a></p>
<a href="#" data-role="button">Button</a>
</div>
<div class="ui-bar ui-bar-d">
<a href="#" data-icon="arrow-l">Button</a>
<h1>ui-bar-d</h1>
</div>
<!--
<div class="ui-list ui-list-up-a">
<p>ui-list-up-a</p>
<a href="#" data-role="button">Button</a>
</div>
<div class="ui-list ui-list-up-b">
<p>ui-list-up-a</p>
<a href="#" data-role="button">Button</a>
</div>
-->
</div>
</div>
</body>
</html>

30
_events.html Normal file
View file

@ -0,0 +1,30 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Event tests</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page" >
<div class="ui-header ui-bar-a">
<h1>Event tests</h1>
</div>
<div class="ui-content ui-body ui-body-c" style="height:2000px;">
<p>The following events will log out below when they fire: scrollstart scrollstop swipe swipeleft swiperight tap taphold turn.</p>
<div id="eventlogger"></div>
</div>
</div>
</body>
</html>

116
_fixed.html Normal file
View file

@ -0,0 +1,116 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Toolbars demo</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>Fixed Header</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content">
<div class="ui-body ui-body-c">
<h2>Demo description</h2>
<p>This is a demo of the "fixed" headers and footers used in the jQuery Mobile framework. The page content flows naturally, allowing us to take advantage of native scrolling instead of a scripting a faux-scrolling workaround. The header and footer divs are right in the flow of the document, but whenever they are out of view, you can tap the screen to make them appear. Tapping again or scrolling the page will cause them to appear back in the flow of the page (at the top and bottom). </p
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
</div>
</div>
<div class="ui-footer ui-bar-a">
<h1>Fixed Footer</h1>
</div>
</div>
</body>
</html>

178
_form-controls.html Normal file
View file

@ -0,0 +1,178 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Form Controls</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>Form controls</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content">
<form class="ui-body-c" action="#" method="get">
<div data-role="collapsible" data-state="collapsed">
<h1>Demo description</h1>
<p>This page contains various progressive-enhancement driven form controls. Native elements are sometimes hidden from view, but their values are maintained so the form can be submitted normally. In theory, browsers that don't support the custom controls will still get a usable experience.</p>
<p><strong>The collapsible panels</strong> are marked up as either heading/content, or legend/fieldset combinations. Helper text on the toggle links allows them to make sense on a screen reader.</strong></p>
<p><strong>Text inputs and textareas</strong> are largely left alone, aside from having some theme classes applied. Textareas auto-grow using Brandon Aaron's expandable plugin, eliminating the need to 2-finger scroll a textarea on a mobile device.</p>
<p><strong>The radio and checkbox controls</strong> below use standard input/label markup, but are styled to be more touch-friendly. The styled control you see is actually the label element, which sits over the real input, so if images fail to load, you'll still have a functional control. In most browsers, clicking the label automatically triggers a click on the input, but we've had to trigger the update manually for a few mobile browsers that don't do this natively. On the desktop, these controls are keyboard and screen-reader accessible. The horizontal toggles for "cache settings" and "font styling" are also just sets of checkboxes and radios with icons disabled.</p>
<p><strong>The select menus</strong> are driven off native select elements, but the native selects are hidden from view and replaced with more style-friendly markup. The replacement buttons and menus are ARIA-enabled and are keyboard accessible on the desktop as well. When clicked, if the menu has room it will appear as an overlay listbox, but if there are too many options to fit in the window without scrolling, the page content is wrapped in a div and hidden, and the menu is appended after that div. This lets us take advantage of native scrolling while the menu is in use. Try the third select menu to see this behavior in action. </p>
<p><strong>The submit buttons</strong> are marked up as both input[type=submit] and button elements in the source, but we're generating anchor-based buttons in their place in order to take advantage of consistent styling across mobile browsers. The original buttons are still on the page, hidden from view, and clicking the replacement button will trigger a click on the original element, so the form can be submitted normally.</p>
</div>
<fieldset data-role="collapsible">
<legend>Text input controls</legend>
<div class="field">
<label for="name">Text Input:</label>
<input type="text" name="name" id="name" value="" />
</div>
<div class="field">
<label for="password">Password Input:</label>
<input type="password" name="password" id="password" value="" />
</div>
<div class="field">
<label for="textarea">Textarea:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
</fieldset>
<div id="radio-examples" data-role="collapsible">
<h2>Radio toggles</h2>
<fieldset data-role="controlgroup" class="field">
<legend>Choose one:</legend>
<input type="radio" name="radio-choice-1" id="radio-choice-1" value="choice-1" checked="checked" />
<label for="radio-choice-1">Choice 1</label>
<input type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2" />
<label for="radio-choice-2">Choice 2</label>
<input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3" />
<label for="radio-choice-3">Choice 3</label>
<input type="radio" name="radio-choice-1" id="radio-choice-4" value="choice-4" />
<label for="radio-choice-4">Choice 4</label>
</fieldset>
<fieldset data-role="controlgroup" data-type="horizontal" class="field">
<legend>Cache settings:</legend>
<input type="radio" name="radio-choice-a" id="radio-choice-a" value="choice-a" checked="checked" />
<label for="radio-choice-a">On</label>
<input type="radio" name="radio-choice-a" id="radio-choice-b" value="choice-b" />
<label for="radio-choice-b">Off</label>
</fieldset>
</div>
<div id="checkbox-examples" data-role="collapsible">
<h2>Checkboxes</h2>
<fieldset data-role="controlgroup">
<legend>Choose one or more:</legend>
<input type="checkbox" name="checkbox-1" id="checkbox-1" class="custom" />
<label for="checkbox-1">Choice 1</label>
<input type="checkbox" name="checkbox-2" id="checkbox-2" class="custom" />
<label for="checkbox-2">Choice 2</label>
<input type="checkbox" name="checkbox-3" id="checkbox-3" class="custom" />
<label for="checkbox-3">Choice 3</label>
</fieldset>
<fieldset data-role="controlgroup" data-type="horizontal" class="field">
<legend>Font styling:</legend>
<input type="checkbox" name="checkbox-6" id="checkbox-6" class="custom" />
<label for="checkbox-6">b</label>
<input type="checkbox" name="checkbox-7" id="checkbox-7" class="custom" />
<label for="checkbox-7"><em>i</em></label>
<input type="checkbox" name="checkbox-8" id="checkbox-8" class="custom" />
<label for="checkbox-8">u</label>
</fieldset>
<fieldset class="field">
<input type="checkbox" name="checkbox-9" id="checkbox-9" class="custom" />
<label for="checkbox-9">Single Checkbox</label>
</fieldset>
</div>
<fieldset data-role="collapsible">
<legend>Select menus</legend>
<div class="field">
<label for="select-choice-1" class="select">Choose one:</label>
<select name="select-choice-1" id="select-choice-1">
<option value="Choice 1">Choice 1</option>
<option value="Choice 2">Choice 2</option>
<option value="Choice 3">Choice 3</option>
</select>
</div>
<div class="field">
<label for="select-choice-3" class="select">Choose one:</label>
<select name="select-choice-3" id="select-choice-3">
<option value="Choice 1">Choice 1</option>
<option value="Choice 2">Choice 2</option>
<option value="Choice 3">Choice 3</option>
<option value="Choice 4">Choice 4</option>
<option value="Choice 5">Choice 5</option>
<option value="Choice 6">Choice 6</option>
<option value="Choice 7">Choice 7</option>
<option value="Choice 8">Choice 8</option>
<option value="Choice 9">Choice 9</option>
<option value="Choice 10">Choice 10</option>
<option value="Choice 11">Choice 11</option>
<option value="Choice 12">Choice 12</option>
<option value="Choice 13">Choice 13</option>
<option value="Choice 14">Choice 14</option>
<option value="Choice 15">Choice 15</option>
<option value="Choice 16">Choice 16</option>
<option value="Choice 17">Choice 19</option>
<option value="Choice 20">Choice 20</option>
</select>
</div>
</fieldset>
<fieldset class="ui-body-c ui-body ui-config-a">
<div class="ui-block-a"><input type="submit" value="Input Submit" /></div>
<div class="ui-block-b"><button type="submit" data-theme="b">Button Submit</button></div>
</fieldset>
</form>
</div>
</div>
</body>
</html>

108
_globalnav.html Normal file
View file

@ -0,0 +1,108 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Tabs Example</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>Tabs Example</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content ui-body ui-body-b">
<ul data-role="globalnav">
<li><a href="_containers-states.html" data-role="button">Containers &amp; states</a></li>
<li><a href="_fixed.html" data-role="button">Fixed Toolbars</a></li>
<li><a href="_form-controls.html" data-role="button">Form Controls</a></li>
<li><a href="_tabs.html" data-role="button" rel="external">Tabs</a></li>
<li><a href="_tree.html" data-role="button">Tree</a></li>
<li><a href="_transitions.html" data-role="button">Transitions</a></li>
</ul>
<h1>Demo description</h1>
<p>This page demonstrates the behavior for the tabs control. The tab navigation can either be inline with the content (for tabs within sub-sections of a page), or optionally as a global fixed footer for page-level tabs. This page demonstrates the latter. It uses the fixed toolbars behavior, which allows you to display the tabs when you need them by tapping the screen.</p>
<p>Also, the page header is a standard fixed toolbar that can bring you back to the previous page when you toggle its visibility.</p>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
</div>
</div>
</body>
</html>

302
_tabs.html Normal file
View file

@ -0,0 +1,302 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Tabs Example</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>Tabs Example</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content">
<div data-role="tabs">
<ul>
<li><a href="#content-a">Content A</a></li>
<li><a href="#content-b">Content B</a></li>
<li><a href="#content-c">Content C</a></li>
</ul>
<div>
<div id="content-a">
<h1>Demo description</h1>
<p>This page demonstrates the behavior for the tabs control. The tab navigation can either be inline with the content (for tabs within sub-sections of a page), or optionally as a global fixed footer for page-level tabs. This page demonstrates the latter. It uses the fixed toolbars behavior, which allows you to display the tabs when you need them by tapping the screen.</p>
<p>Also, the page header is a standard fixed toolbar that can bring you back to the previous page when you toggle its visibility.</p>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
</div><!--/content-area-a-->
<div id="content-b">
<h1>Content Panel B</h1>
<p>This page demonstrates the behavior for the tabs control. The tab navigation can either be inline with the content (for tabs within sub-sections of a page), or optionally as a global fixed footer for page-level tabs. This page demonstrates the latter. It uses the fixed toolbars behavior, which allows you to display the tabs when you need them by tapping the screen.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
</div><!--/content-area-b-->
<div id="content-c">
<h1>Content Panel C</h1>
<p>This page demonstrates the behavior for the tabs control. The tab navigation can either be inline with the content (for tabs within sub-sections of a page), or optionally as a global fixed footer for page-level tabs. This page demonstrates the latter. It uses the fixed toolbars behavior, which allows you to display the tabs when you need them by tapping the screen.</p>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<pre><code>
#header h1 a {
display: block;
width: 300px;
height: 80px;
}
</code></pre>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,46 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Transition Completed!</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page">
<div class="ui-header ui-bar-b">
<h1>Done!</h1>
</div>
<div class="ui-content">
<div class="ui-body ui-body-b">
<h1>HTML Ipsum Presents</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
</div>
</div>
</div>
</body>
</html>

31
_transitions.html Normal file
View file

@ -0,0 +1,31 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Static Containers, States</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>Transitions</h1>
</div>
<div class="ui-content">
<div class="ui-body ui-body-c">
<ul data-role="controlgroup">
<li><a href="_transitions-destination.html" data-role="button" data-transition="slide">slide</a></li>
<li><a href="_transitions-destination.html" data-role="button" data-transition="slideup">slideup</a></li>
<li><a href="_transitions-destination.html" data-role="button" data-transition="pop">pop</a></li>
<li><a href="_transitions-destination.html" data-role="button" data-transition="flip">flip</a></li>
<li><a href="_transitions-destination.html" data-role="button" data-transition="dissolve">dissolve</a></li>
<li><a href="_transitions-destination.html" data-role="button" data-transition="fade">fade</a></li>
<li><a href="_transitions-destination.html" data-role="button" data-transition="swap">swap</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>

79
_tree.html Normal file
View file

@ -0,0 +1,79 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Tree Example</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>Tree Example</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content">
<ul data-role="tree">
<li><a href="#">Tree demo Description</a>
<div class="ui-body-c"><div class="ui-body">
<h2>Demo description</h2>
<p>This tree starts as an unordered list. Content can be dropped into the list items (as it is here), pulled in through Ajax (as it is in the other nodes), or linked externally to navigate to a separate page. The tree is marked up with ARIA attrs and is keyboard accessible on the desktop.</p>
</div></div>
</li>
<li><a href="#">My Documents</a>
<ul>
<li><a href="sample-content/license.html">License</a></li>
<li class="hijax"><a href="sample-content/terms.html">Terms &amp; Conditions</a></li>
<li class="hijax"><a href="sample-content/travel.html">Travel Ideas</a></li>
</ul>
</li>
<li><a href="#">My Poems</a>
<ul>
<li class="hijax"><a href="sample-content/lebowski.html">The Big Lebowski</a></li>
<li class="hijax"><a href="sample-content/planetearth.html">Planet Earth</a></li>
</ul>
</li>
<li><a href="#">My Documents</a>
<ul>
<li class="hijax"><a href="sample-content/license.html">License</a></li>
<li class="hijax"><a href="sample-content/terms.html">Terms &amp; Conditions</a></li>
<li class="hijax"><a href="sample-content/travel.html">Travel Ideas</a></li>
</ul>
</li>
<li><a href="#">My Poems</a>
<ul>
<li class="hijax"><a href="sample-content/lebowski.html">The Big Lebowski</a></li>
<li class="hijax"><a href="sample-content/planetearth.html">Planet Earth</a></li>
</ul>
</li>
<li><a href="#">My Documents</a>
<ul>
<li class="hijax"><a href="sample-content/license.html">License</a></li>
<li class="hijax"><a href="sample-content/terms.html">Terms &amp; Conditions</a></li>
<li class="hijax"><a href="sample-content/travel.html">Travel Ideas</a></li>
</ul>
</li>
<li><a href="#">My Poems</a>
<ul>
<li class="hijax"><a href="sample-content/lebowski.html">The Big Lebowski</a></li>
<li class="hijax"><a href="sample-content/planetearth.html">Planet Earth</a></li>
</ul>
</li>
</ul>
<p>Testing to make sure content flows inline after tree...</p>
</div>
</div>
</body>
</html>

162
combine.php Normal file
View file

@ -0,0 +1,162 @@
<?php
/************************************************************************
* CSS and Javascript Combinator 0.5
* Copyright 2006 by Niels Leenheer
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
$cache = true;
$pullfromcache = false;
$cachedir = dirname(__FILE__) . '/cache';
$cssdir = dirname(__FILE__) . '/css';
$jsdir = dirname(__FILE__) . '/js';
// Determine the directory and type we should use
switch ($_GET['type']) {
case 'css':
$base = realpath($cssdir);
break;
case 'javascript':
$base = realpath($jsdir);
break;
default:
header ("HTTP/1.0 503 Not Implemented");
exit;
};
$type = $_GET['type'];
//$elements = explode(',', $_GET['files']);
include($base . '/manifest.php');
// Determine last modification date of the files
$lastmodified = 0;
while (list(,$element) = each($elements)) {
$path = realpath($base . '/' . $element);
if (($type == 'javascript' && substr($path, -3) != '.js') ||
($type == 'css' && substr($path, -4) != '.css')) {
header ("HTTP/1.0 403 Forbidden");
exit;
}
if (substr($path, 0, strlen($base)) != $base || !file_exists($path)) {
header ("HTTP/1.0 404 Not Found");
exit;
}
$lastmodified = max($lastmodified, filemtime($path));
}
// Send Etag hash
$hash = $lastmodified . '-' . md5($elements);
header ("Etag: \"" . $hash . "\"");
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) &&
stripslashes($_SERVER['HTTP_IF_NONE_MATCH']) == '"' . $hash . '"')
{
// Return visit and no modifications, so do not send anything
header ("HTTP/1.0 304 Not Modified");
header ('Content-Length: 0');
}
else
{
// First time visit or files were modified
if ($cache)
{
// Determine supported compression method
$gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip');
$deflate = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate');
// Determine used compression method
$encoding = $gzip ? 'gzip' : ($deflate ? 'deflate' : 'none');
// Check for buggy versions of Internet Explorer
if (!strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') &&
preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches)) {
$version = floatval($matches[1]);
if ($version < 6)
$encoding = 'none';
if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1'))
$encoding = 'none';
}
// Try the cache first to see if the combined files were already generated
$cachefile = 'cache-' . $hash . '.' . $type . ($encoding != 'none' ? '.' . $encoding : '');
if (file_exists($cachedir . '/' . $cachefile) && $pullfromcache == true) {
if ($fp = fopen($cachedir . '/' . $cachefile, 'rb')) {
if ($encoding != 'none') {
header ("Content-Encoding: " . $encoding);
}
header ("Content-Type: text/" . $type);
header ("Content-Length: " . filesize($cachedir . '/' . $cachefile));
fpassthru($fp);
fclose($fp);
exit;
}
}
}
// Get contents of the files
$contents = '';
reset($elements);
while (list(,$element) = each($elements)) {
$path = realpath($base . '/' . $element);
$contents .= "\n\n" . file_get_contents($path);
}
// Send Content-Type
header ("Content-Type: text/" . $type);
if (isset($encoding) && $encoding != 'none')
{
// Send compressed contents
$contents = gzencode($contents, 9, $gzip ? FORCE_GZIP : FORCE_DEFLATE);
header ("Content-Encoding: " . $encoding);
header ('Content-Length: ' . strlen($contents));
echo $contents;
}
else
{
// Send regular contents
header ('Content-Length: ' . strlen($contents));
echo $contents;
}
// Store cache
if ($cache) {
if ($fp = fopen($cachedir . '/' . $cachefile, 'wb')) {
fwrite($fp, $contents);
fclose($fp);
}
}
}

7
css/manifest.php Normal file
View file

@ -0,0 +1,7 @@
<?
$elements = array(
'theme.css',
'structure.css'
);
?>

534
css/structure.css Normal file
View file

@ -0,0 +1,534 @@
/*
* jQuery Mobile Framework
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
/* some unsets - more probably needed */
.ui-mobile fieldset, .ui-page { padding: 0; margin: 0; }
.ui-mobile a img, .ui-mobile fieldset { border: 0; }
/* responsive page widths */
.ui-mobile body { margin: 0; overflow-x: hidden; -webkit-user-select: none; -webkit-text-size-adjust: none; }
/*tablets - more work needed here*/
@media screen and (min-width: 480px){
.ui-mobile body { width: auto; min-height: 100%; }
}
/*tablets - mobile landscape-ish */
@media screen and (max-width: 480px){
.ui-mobile body { width: 480px; min-height: 300px; }
}
/*tablets - mobile portrait-ish */
@media screen and (max-width: 320px){
.ui-mobile body { width: 320px; min-height: 460px; }
}
/*orientations from js are available - necessary? media q's work well enough? */
.portrait body { }
.landscape body { }
/* "page" containers - full-screen views, one should always be in view post-pageload */
.ui-page { top: 0; left: 0; width: 100%; height: 100%; position: absolute; z-index: 10; visibility: hidden; height: 0; overflow: hidden; } /* display is temporary*/
.ui-page-active { visibility: visible; height: auto; overflow: visible; }
/* loading screen */
.ui-loading, .ui-loading body { overflow: hidden !important; }
.ui-loading .ui-content { visibility: hidden; }
.ui-loading .ui-loader { display: block; }
.ui-loader { display: none; position: absolute; z-index: 0; top: 60px; left: 50%; width: 100px; margin-left: -80px; padding: 20px 30px; border: 0; }
.ui-loader h1 { font-size: 15px; text-align: center; opacity: .8; }
.ui-loader .ui-icon { position: static; display: block; opacity: .7; margin: 0 auto; width: 35px; height: 35px; background-color: transparent; }
/*headers, content panels*/
.ui-bar, .ui-body { position: relative; padding: .4em 15px; overflow: hidden; display: block; clear:both; }
.ui-bar h1, .ui-bar h2, .ui-bar h3, .ui-bar h4, .ui-bar h5, .ui-bar h6 { margin: 0; padding: 0; font-size: 16px; display: inline-block; } /* not sure if this rule's necessary...*/
/* page header configuration */
.ui-header { position: relative; padding: .8em 90px 1em; }
.ui-header .ui-back { position: absolute; left: 10px; top: .5em; }
.ui-header h1, .ui-title, .ui-footer h1 { text-align: center; font-size: 16px; display: block; margin: 0; padding: 0; white-space: nowrap; overflow: hidden; }
.ui-footer h1 { margin: .8em 0 1em; }
.ui-header .ui-aux { position: absolute; right: 10px; top: .2em; }
/*generated wrappers for toggling fixed/flow positions*/
.ui-headfoot-placehold { }
.ui-headfoot-hidden { overflow: hidden; }
.ui-headfoot-wrap, .ui-headfoot-wrap { position: static; width: 100%; display: block; }
.ui-fixpos { position: absolute; z-index: 1000; width: 100%; }
/* content configurations. More semantix class names plz. */
.ui-config-a, .ui-config-b, .ui-config-c { overflow: hidden; }
.ui-block-a, .ui-block-b, .ui-block-c, .ui-block-d { margin: 0; padding: 0; border: 0; float: left; }
/* config a: 50/50 */
.ui-config-a .ui-block-a { width: 48%; float: left; }
.ui-config-a .ui-block-b { width: 48%; float: right; text-align: right; }
/* config b: 33/33/33 */
.ui-config-b .ui-block-a { width: 31%; margin-right: 2%; float: left; }
.ui-config-b .ui-block-b { width: 31%; margin-right: 2%; float: left; }
.ui-config-b .ui-block-c { width: 31%; float: right; text-align: right; }
/* icons sizing */
.ui-icon { width: 18px; height: 18px; }
/* btn-like elements*/
.ui-btn { display: block; text-align: center; cursor:pointer; position: relative; margin: .5em 5px; padding: 0; }
.ui-headfoot-wrap .ui-btn, .ui-bar .ui-btn { display: inline-block; font-size: 13px; margin: 0; }
.ui-btn-inner { padding: .6em 25px; display: block; }
.ui-btn-text { }
.ui-headfoot-wrap .ui-btn-inner, .ui-header .ui-btn-inner { padding: .4em 8px .5em; }
.ui-btn-icon-notext { width: 20px; height: 20px; }
.ui-btn-icon-notext .ui-btn-inner { padding: 0; }
.ui-btn-icon-notext .ui-btn-text { position: absolute; left: -999px; }
.ui-btn-icon-left .ui-btn-inner { padding-left: 30px; }
.ui-headfoot-wrap .ui-btn-icon-left .ui-btn-inner { padding-left: 27px; }
.ui-btn-icon-right .ui-btn-inner { padding-right: 30px; }
.ui-headfoot-wrap .ui-btn-icon-right .ui-btn-inner { padding-right: 27px; }
.ui-btn-icon-top .ui-btn-inner { padding-top: 30px; }
.ui-headfoot-wrap .ui-btn-icon-top .ui-btn-inner { padding-top: 27px; }
.ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 30px; }
.ui-headfoot-wrap .ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 27px; }
/*btn icon positioning*/
.ui-btn-icon-notext .ui-icon { display: block; }
.ui-btn-icon-left .ui-icon, .ui-btn-icon-right .ui-icon { position: absolute; top: 50%; margin-top: -9px; }
.ui-btn-icon-top .ui-icon, .ui-btn-icon-bottom .ui-icon { position: absolute; left: 50%; margin-left: -9px; }
.ui-btn-icon-left .ui-icon { left: 10px; }
.ui-btn-icon-right .ui-icon {right: 10px; }
.ui-headfoot-wrap .ui-btn-icon-left .ui-icon { left: 4px; }
.ui-headfoot-wrap .ui-btn-icon-right .ui-icon { right: 4px; }
.ui-btn-icon-top .ui-icon { top: 5px; }
.ui-btn-icon-bottom .ui-icon { bottom: 5px; }
/*hiding native button,inputs - should probably use a11y hidden class!*/
.ui-btn-hidden { position: absolute; left: -9999px; }
/*form elements*/
/*checkbox/radio sets*/
.ui-controlgroup { padding: 0; margin: .5em 0 1em; }
.ui-bar .ui-controlgroup { margin: 0 .3em; }
.ui-controlgroup li { list-style: none; }
.ui-controlgroup-vertical .ui-btn,
.ui-controlgroup-vertical div.ui-checkbox, .ui-controlgroup-vertical div.ui-radio { margin: 0; border-bottom-width: 0; }
.ui-controlgroup-vertical .ui-controlgroup-last { border-bottom-width: 1px; }
.ui-controlgroup-horizontal { display: inline-block; padding: 0; }
.ui-controlgroup-horizontal .ui-btn,
.ui-controlgroup-horizontal div.ui-checkbox, .ui-controlgroup-horizontal div.ui-radio { margin: 0 -5px 0 0; display: inline-block; }
.ui-controlgroup-horizontal div.ui-checkbox .ui-btn, .ui-controlgroup-horizontal div.ui-radio .ui-btn,
.ui-controlgroup-horizontal div.ui-checkbox:last-child, .ui-controlgroup-horizontal div.ui-radio:last-child { margin-right: 0; }
.ui-controlgroup-horizontal .ui-controlgroup-last { margin-right: 0; }
.ui-controlgroup .ui-checkbox label, .ui-controlgroup .ui-radio label { font-size: 16px; }
/*textareas,labels,inputs*/
label.ui-input-text, label.ui-select, .ui-controlgroup-label { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; }
input.ui-input-text, textarea.ui-input-text { padding: .4em; line-height: 1.4; font-size: 16px; display: block; width: 95%; }
textarea.ui-input-text { height: 50px; }
/* orientation adjustments - incomplete!*/
@media screen and (min-width: 480px){
label.ui-input-text, .ui-controlgroup-label { vertical-align: top; }
label.ui-input-text, label.ui-select, .ui-ui-controlgroup-label { display: inline-block; width: 20%; margin: 0 2% 0 0; }
input.ui-input-text, textarea.ui-input-text, a.ui-select { width: 60%; display: inline-block !important; }
}
/* Custom checkboxes, radios */
div.ui-checkbox, div.ui-radio { position:relative; margin: .2em 0 .5em; }
.ui-checkbox .ui-btn, .ui-radio .ui-btn { margin: 0; text-align: left; }
.ui-checkbox .ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn-icon-left .ui-btn-inner { padding-left: 45px; }
.ui-checkbox .ui-btn-icon-right .ui-btn-inner, .ui-radio .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; }
.ui-checkbox .ui-btn-icon-left .ui-icon, .ui-radio .ui-btn-icon-left .ui-icon {left: 15px; }
.ui-checkbox .ui-btn-icon-right .ui-icon, .ui-radio .ui-btn-icon-right .ui-icon {right: 15px; }
/* input, label positioning */
.ui-checkbox input,.ui-radio input { position:absolute; left:20px; top:50%; width: 10px; height: 10px; margin:-5px 0 0 0; outline: 0 !important; }
/*custom select*/
.ui-select select { position: absolute; left: -99999px; }
.ui-select .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; }
.ui-select .ui-btn-icon-right .ui-icon { right: 15px; }
/*listbox*/
.ui-listbox { position: relative; margin: 8px; padding: 0; z-index: 100; }
.ui-page-content-hidden, .ui-listbox-hidden { display: none; }
.ui-listbox-screen { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.ui-listbox-overlay { position: absolute; z-index: 999; width: 300px; margin-left: -150px; }
.ui-listbox-header { background: none; border: 0; }
.ui-listbox-overlay .ui-listbox-header { display: none; }
.ui-listbox-list { list-style: none; margin: 5px; padding: 0; }
.ui-listbox .ui-listbox-option { margin: 0; text-align: left; }
/*used in listbox - to be removed/replaced with page-style hiding*/
.ui-helper-hidden,.ui-mobile .ui-content-hidden { display: none; }
.ui-content { min-height: 480px; }
.ui-fullscreen { width: 100%; height: 100%; position: relative; overflow: hidden; }
.ui-fullscreen img { width: 100%; }
/*collapsible panels*/
.ui-collapsible-contain { margin: 0 0 -1px; border-left-width: 0; border-right-width: 0; overflow: hidden; }
.ui-collapsible-heading { font-size: 16px; display: block; margin: 0; padding: 0; border-width: 0 0 1px 0; position: relative; }
.ui-collapsible-heading a { padding: .7em 15px; text-align: left; margin: 0; text-decoration: none; outline: 0; border: 0; display: block; }
.ui-collapsible-heading .ui-icon { position: absolute; right: 5px; top: 50%; margin-top: -9px; }
.ui-collapsible-heading-status { position:absolute; left:-99999px; }
.ui-collapsible-content { padding: 15px; overflow:hidden; display: block; }
.ui-collapsible-content-collapsed { display: none; }
/*field separators*/
.ui-field-contain { background: none; padding: .5em 0; margin: 0; border-left-width: 0; border-right-width: 0; border-bottom-width: 0; }
.ui-field-contain:first-child { border-top-width: 0; }
@media screen and (max-width: 480px){
.ui-field-contain { border-width: 0; padding: 0; margin: 1em 0; }
}
/*tree*/
.ui-tree-contain { border-width: 0; }
.ui-tree { position: relative; }
.ui-tree,.ui-tree ul.ui-tree-group,.ui-tree ol.ui-tree-group, .ui-tree li.ui-treeitem { list-style:none; margin:0; padding:0; zoom: 1; }
.ui-tree, .ui-tree .ui-tree-group { -webkit-transition: left .3s linear; width: 100%; margin: 0; }
.ui-tree .ui-tree-group { position: absolute; top:0; left: 100%; border-width: 0; }
.ui-tree-expanded, .ui-tree .ui-tree-expanded { -webkit-transition: left .3s linear; left: -100%; }
.ui-tree .ui-tree-expanded { left: 0; }
.ui-tree a.ui-treeitem-link { text-align: left; margin: 0 0 -1px 0; }
.ui-tree a.ui-treeitem-link:focus { outline: none; }
.ui-tree .ui-tree-group-collapsed { display: none; }
.ui-tree .ui-tree-content-loading { padding: 20px; text-align: center; }
.ui-tree .ui-tree-content-loading .ui-icon { width: 32px; height: 32px; margin: 0 auto; display: block; }
.ui-tree-loading-text { margin: 15px auto; display: block; }
/* new tree layout stuff - tbd */
.ui-treeitem-label { cursor: pointer; text-decoration: none; position: relative; display: block; margin: 0 0 -1px 0; text-align: left; overflow: hidden; padding: 0 40px 0 0; font-size: 16px; }
.ui-treeitem-label .ui-btn-inner { padding: 0; }
.ui-treeitem-label a { text-decoration: none; }
.ui-treeitem-thumb, .ui-treeitem-content { float: left; margin-right: 10px; }
.ui-treeitem-content { width: 60%; }
.ui-treeitem-aside { float: right; margin: 0 10px; width: 25%; text-align: right; }
.ui-treeitem-aside, .ui-treeitem-aside * { font-size: 12px; }
.ui-treeitem-thumb { border: 0; }
.ui-treeitem-title { font-size: 16px; font-weight: bold; display: block; margin: .6em 15px; }
.ui-treeitem-desc { font-size: 12px; font-weight: normal; display: block; margin: -.5em 15px .6em; }
.ui-treeitem-label .ui-icon { position: absolute; right: 5px; top: 50%; margin-top: -11px; }
.ui-treeitem-count { float: right; position: relative; margin: 1em 5px; font-size: 11px; font-weight: bold; border-width: 0; padding: .2em .4em; background-image: none; }
.ui-treeitem-next { position: absolute; width: 30px; height: 100%; border-width: 0; border-left-width: 1px; top: 0; right: 0; padding: 0 5px; }
.ui-treeitem-next .ui-btn { overflow: hidden; position: absolute; right: 5px; top: 50%; margin-top: -11px; width: 20px; height: 20px; }
.ui-treeitem-next .ui-btn .ui-icon { right: 0; top: 0; margin: 0; }
/*tree btn bar*/
.ui-tree-header { overflow: hidden; }
.ui-tree-header-hidden { display: none; }
.ui-tree-section-title { text-align: center; font-size: 16px; }
/*tabs*/
.ui-tabs-nav { list-style:none; padding: 0; margin: 0; position: relative; display: block; border: 0; overflow: hidden; }
.ui-tabs-nav li { float: left; margin:0; padding:0; width: 33%; }
.ui-tabs-nav li .ui-btn { display: block; float: none; font-size: 12px; text-align: center; margin: 0 -1px 0 0; outline: none; border-top-width: 0; border-bottom-width: 0; }
.ui-tabs-body div.ui-tabs-panel { display:none; }
.ui-tabs-body div.ui-tabs-panel-selected { display:block; }
/*globalnav*/
.ui-globalnav { overflow: hidden; width: 100%; }
.ui-globalnav ul { list-style:none; padding: 0; margin: 0; position: relative; display: block; border: 0; float: left; width: 2000px; }
.ui-globalnav li { float: left; margin:0; padding:0; }
.ui-globalnav li .ui-btn { font-size: 12px; text-align: center; margin: 0 -1px 0 0; outline: none; border-top-width: 0; border-bottom-width: 0; }
.ui-globalnav li .ui-btn-inner { padding-left: 15px; padding-right: 15px; }
/* transitions, animations*/
/*spin
keyframes from jordandobson.com/webkit_loading_animation/resize/
- note: can't this be shortened??
*/
.spin {
-webkit-animation-name: spin;
-webkit-animation-duration: 1s;
-webkit-animation-iteration-count: infinite;
}
@-webkit-keyframes spin {
0%{ -webkit-transform: rotate(0deg); }
8.32%{ -webkit-transform: rotate(0deg); }
8.33%{ -webkit-transform: rotate(30deg); }
16.65%{ -webkit-transform: rotate(30deg); }
16.66%{ -webkit-transform: rotate(60deg); }
24.99%{ -webkit-transform: rotate(60deg); }
25%{ -webkit-transform: rotate(90deg); }
33.32%{ -webkit-transform: rotate(90deg); }
33.33%{ -webkit-transform: rotate(120deg); }
41.65%{ -webkit-transform: rotate(120deg); }
41.66%{ -webkit-transform: rotate(150deg); }
49.99%{ -webkit-transform: rotate(150deg); }
50%{ -webkit-transform: rotate(180deg); }
58.32%{ -webkit-transform: rotate(180deg); }
58.33%{ -webkit-transform: rotate(210deg); }
66.65%{ -webkit-transform: rotate(210deg); }
66.66%{ -webkit-transform: rotate(240deg); }
74.99%{ -webkit-transform: rotate(240deg); }
75%{ -webkit-transform: rotate(270deg); }
83.32%{ -webkit-transform: rotate(270deg); }
83.33%{ -webkit-transform: rotate(300deg); }
91.65%{ -webkit-transform: rotate(300deg); }
91.66%{ -webkit-transform: rotate(330deg); }
100%{ -webkit-transform: rotate(330deg); }
}
/*
-- transitions straight-up lifted from jQtouch - to be modified, renamed, removed, etc where needed
*/
.in, .out {
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-duration: 350ms;
}
.slide.in {
-webkit-animation-name: slideinfromright;
}
.slide.out {
-webkit-animation-name: slideouttoleft;
}
.slide.in.reverse {
-webkit-animation-name: slideinfromleft;
}
.slide.out.reverse {
-webkit-animation-name: slideouttoright;
}
@-webkit-keyframes slideinfromright {
from { -webkit-transform: translateX(100%); }
to { -webkit-transform: translateX(0); }
}
@-webkit-keyframes slideinfromleft {
from { -webkit-transform: translateX(-100%); }
to { -webkit-transform: translateX(0); }
}
@-webkit-keyframes slideouttoleft {
from { -webkit-transform: translateX(0); }
to { -webkit-transform: translateX(-100%); }
}
@-webkit-keyframes slideouttoright {
from { -webkit-transform: translateX(0); }
to { -webkit-transform: translateX(100%); }
}
@-webkit-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
@-webkit-keyframes fadeout {
from { opacity: 1; }
to { opacity: 0; }
}
.fade.in {
z-index: 10;
-webkit-animation-name: fadein;
}
.fade.out {
z-index: 0;
}
.dissolve.in {
-webkit-animation-name: fadein;
}
.dissolve.out {
-webkit-animation-name: fadeout;
}
.flip {
-webkit-animation-duration: .65s;
}
.flip.in {
-webkit-animation-name: flipinfromleft;
}
.flip.out {
-webkit-animation-name: flipouttoleft;
}
/* Shake it all about */
.flip.in.reverse {
-webkit-animation-name: flipinfromright;
}
.flip.out.reverse {
-webkit-animation-name: flipouttoright;
}
@-webkit-keyframes flipinfromright {
from { -webkit-transform: rotateY(-180deg) scale(.8); }
to { -webkit-transform: rotateY(0) scale(1); }
}
@-webkit-keyframes flipinfromleft {
from { -webkit-transform: rotateY(180deg) scale(.8); }
to { -webkit-transform: rotateY(0) scale(1); }
}
@-webkit-keyframes flipouttoleft {
from { -webkit-transform: rotateY(0) scale(1); }
to { -webkit-transform: rotateY(-180deg) scale(.8); }
}
@-webkit-keyframes flipouttoright {
from { -webkit-transform: rotateY(0) scale(1); }
to { -webkit-transform: rotateY(180deg) scale(.8); }
}
.slideup.in {
-webkit-animation-name: slideup;
z-index: 10;
}
.slideup.out {
-webkit-animation-name: dontmove;
z-index: 0;
}
.slideup.out.reverse {
z-index: 10;
-webkit-animation-name: slidedown;
}
.slideup.in.reverse {
z-index: 0;
-webkit-animation-name: dontmove;
}
@-webkit-keyframes slideup {
from { -webkit-transform: translateY(100%); }
to { -webkit-transform: translateY(0); }
}
@-webkit-keyframes slidedown {
from { -webkit-transform: translateY(0); }
to { -webkit-transform: translateY(100%); }
}
/* Hackish, but reliable. */
@-webkit-keyframes dontmove {
from { opacity: 1; }
to { opacity: 1; }
}
.swap {
-webkit-transform: perspective(800);
-webkit-animation-duration: .7s;
}
.swap.out {
-webkit-animation-name: swapouttoleft;
}
.swap.in {
-webkit-animation-name: swapinfromright;
}
.swap.out.reverse {
-webkit-animation-name: swapouttoright;
}
.swap.in.reverse {
-webkit-animation-name: swapinfromleft;
}
@-webkit-keyframes swapouttoright {
0% {
-webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
-webkit-animation-timing-function: ease-in-out;
}
50% {
-webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg);
-webkit-animation-timing-function: ease-in;
}
100% {
-webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg);
}
}
@-webkit-keyframes swapouttoleft {
0% {
-webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
-webkit-animation-timing-function: ease-in-out;
}
50% {
-webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg);
-webkit-animation-timing-function: ease-in;
}
100% {
-webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg);
}
}
@-webkit-keyframes swapinfromright {
0% {
-webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg);
-webkit-animation-timing-function: ease-out;
}
50% {
-webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg);
-webkit-animation-timing-function: ease-in-out;
}
100% {
-webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
}
}
@-webkit-keyframes swapinfromleft {
0% {
-webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg);
-webkit-animation-timing-function: ease-out;
}
50% {
-webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg);
-webkit-animation-timing-function: ease-in-out;
}
100% {
-webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
}
}
.pop {
-webkit-transform-origin: 50% 50%;
}
.pop.in {
-webkit-animation-name: popin;
z-index: 10;
}
.pop.out.reverse {
-webkit-animation-name: popout;
z-index: 10;
}
.pop.in.reverse {
z-index: 0;
-webkit-animation-name: dontmove;
}
@-webkit-keyframes popin {
from {
-webkit-transform: scale(.2);
opacity: 0;
}
to {
-webkit-transform: scale(1);
opacity: 1;
}
}
@-webkit-keyframes popout {
from {
-webkit-transform: scale(1);
opacity: 1;
}
to {
-webkit-transform: scale(.2);
opacity: 0;
}
}

153
css/theme.css Normal file
View file

@ -0,0 +1,153 @@
/*
* jQuery Mobile Framework
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
/* themed containers
----------------------------------*/
.ui-bar-a { border: 1px solid #2A2A2A; background: #111111; color: #fff; font-weight: bold; text-shadow: 0 -1px 1px #000; background-image: -moz-linear-gradient(top, #3c3c3c, #111111); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #3c3c3c),color-stop(1, #111111)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#3c3c3c', EndColorStr='#111111')"; }
.ui-bar-a, .ui-bar-a input, .ui-bar-a select, .ui-bar-a textarea, .ui-bar-a button { font-family: Helvetica, Arial, sans-serif; }
.ui-bar-a .ui-link-inherit { color: #fff; }
.ui-bar-a .ui-link { color: #7cc4e7; font-weight: bold; }
.ui-body-a { border: 1px solid #2A2A2A; background: #333; color: #fff; text-shadow: 0 1px 0 #000; font-weight: normal; background-image: -moz-linear-gradient(top, #666666, #333333); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #333333),color-stop(1, #(top, #666666, #333333))); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#666666', EndColorStr='#333333)')"; }
.ui-body-a, .ui-body-a input, .ui-body-a select, .ui-body-a textarea, .ui-body-a button { font-family: Helvetica, Arial, sans-serif; }
.ui-body-a .ui-link-inherit { color: #fff; }
.ui-body-a .ui-link { color: #2489CE; font-weight: bold; }
.ui-bar-b { border: 1px solid #052331; background: #1a4068; color: #fff; font-weight: bold; text-shadow: 0 -1px 1px #000; background-image: -moz-linear-gradient(top, #274b71, #21466c); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #274b71),color-stop(1, #21466c)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#274b71', EndColorStr='#21466c')"; }
.ui-bar-b, .ui-bar-b input, .ui-bar-b select, .ui-bar-b textarea, .ui-bar-b button { font-family: Helvetica, Arial, sans-serif; }
.ui-bar-b .ui-link-inherit { color: #fff; }
.ui-bar-b .ui-link { color: #7cc4e7; font-weight: bold; }
.ui-body-b { border: 1px solid #C6C6C6; background: #e6e7e8; color: #333333; text-shadow: 0 1px 0 #fff; font-weight: normal; background-image: -moz-linear-gradient(top, #d4d5d5, #c6c7c8); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #d4d5d5),color-stop(1, #c6c7c8)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#d4d5d5', EndColorStr='#c6c7c8')"; }
.ui-body-b, .ui-body-b input, .ui-body-b select, .ui-body-b textarea, .ui-body-b button { font-family: Helvetica, Arial, sans-serif; }
.ui-body-b .ui-link-inherit { color: #333333; }
.ui-body-b .ui-link { color: #2489CE; font-weight: bold; }
.ui-bar-c { border: 1px solid #B3B3B3; background: #dfe0e1; color: #3E3E3E; font-weight: bold; text-shadow: 0 1px 1px #fff; background-image: -moz-linear-gradient(top, #f2f2f2, #e9eaeb); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #f2f2f2),color-stop(1, #e9eaeb)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#f2f2f2', EndColorStr='#e9eaeb')"; }
.ui-bar-c, .ui-bar-c input, .ui-bar-c select, .ui-bar-c textarea, .ui-bar-c button { font-family: Helvetica, Arial, sans-serif; }
.ui-body-c { border: 1px solid #B3B3B3; background: #fff; color: #333333; text-shadow: 0 1px 0 #fff; }
.ui-body-c, .ui-body-c input, .ui-body-c select, .ui-body-c textarea, .ui-body-c button { font-family: Helvetica, Arial, sans-serif; }
.ui-body-c .ui-link-inherit { color: #333333; }
.ui-body-c .ui-link { color: #2489CE; font-weight: bold; }
.ui-bar-d { border: 1px solid #F7C942; background: #fadb4e; color: #333; text-shadow: 0 1px 0 #fff; background-image: -moz-linear-gradient(top, #fceda7, #fadb4e); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fceda7),color-stop(1, #fadb4e)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fceda7', EndColorStr='#fadb4e')"; }
.ui-bar-d, .ui-bar-d input, .ui-bar-d select, .ui-bar-d textarea, .ui-bar-d button { font-family: Helvetica, Arial, sans-serif; }
.ui-bar-d .ui-link-inherit { color: #333; }
.ui-bar-d .ui-link { color: #2489CE; font-weight: bold; }
/* interaction states */
.ui-btn-up-a { border: 1px solid #000; background: #333333; font-weight: bold; color: #fff; cursor: pointer; text-shadow: 0 1px 1px #000; text-decoration: none; background-image: -moz-linear-gradient(top, #555555, #333333); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #555555),color-stop(1, #333333)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#555555', EndColorStr='#333333')"; }
.ui-btn-hover-a { border: 1px solid #000; background: #646464; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #000; text-decoration: none; background-image: -moz-linear-gradient(top, #848484, #646464); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #848484),color-stop(1, #646464)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#848484', EndColorStr='#646464')"; }
.ui-btn-down-a { border: 1px solid #000; background: #3d3d3d; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #000; background-image: -moz-linear-gradient(top, #333333, #5a5a5a); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #333333),color-stop(1, #5a5a5a)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#333333', EndColorStr='#5a5a5a')"; }
.ui-btn-up-b { border: 1px solid #145072; background: #387bbe; font-weight: bold; color: #fff; cursor: pointer; text-shadow: 0 -1px 1px #145072; text-decoration: none; background-image: -moz-linear-gradient(top, #4e89c5, #2567ab); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #4e89c5),color-stop(1, #2567ab)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#4e89c5', EndColorStr='#2567ab')"; }
.ui-btn-hover-b { border: 1px solid #014D68; background: #5397d5; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #014D68; background-image: -moz-linear-gradient(top, #81b2e0, #397cbe); text-decoration: none; background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #81b2e0),color-stop(1, #397cbe)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#81b2e0', EndColorStr='#397cbe')"; }
.ui-btn-down-b { border: 1px solid #225377; background: #3577bb; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #225377; background-image: -moz-linear-gradient(top, #3577db, #6b9bcd); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #3577db),color-stop(1, #6b9bcd)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#3577db', EndColorStr='#6b9bcd')"; }
.ui-btn-up-c { border: 1px solid #B3B3B3; background: #d0d4d2; font-weight: bold; color: #2F3E46; cursor: pointer; text-shadow: 0 -1px 1px #fff; text-decoration: none; background-image: -moz-linear-gradient(top, #e9ebea, #d0d4d2); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #e9ebea),color-stop(1, #d0d4d2)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#e9ebea', EndColorStr='#d0d4d2')"; }
.ui-btn-hover-c { border: 1px solid #808080; background: #fff; font-weight: bold; color: #2F3E46; text-decoration: none; text-shadow: 0 -1px 1px #fff; background-image: -moz-linear-gradient(top, #fdfdfd, #f0f0f0); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fdfdfd),color-stop(1, #f0f0f0)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fdfdfd', EndColorStr='#f0f0f0')"; }
.ui-btn-down-c { border: 1px solid #808080; background: #ced0d2; font-weight: bold; color: #2F3E46; text-shadow: none; background-image: -moz-linear-gradient(top, #ced0d2, #e5e6e7); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #ced0d2),color-stop(1, #e5e6e7)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ced0d2', EndColorStr='#e5e6e7')"; }
.ui-btn-up-d { border: 1px solid #F7C942; background: #fadb4e; font-weight: bold; color: #333; cursor: pointer; text-shadow: 0 -1px 1px #fff; text-decoration: none; text-shadow: 0 1px 0 #fff; background-image: -moz-linear-gradient(top, #fceda7, #fadb4e); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fceda7),color-stop(1, #fadb4e)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fceda7', EndColorStr='#fadb4e')"; }
.ui-btn-hover-d { border: 1px solid #F7C942; background: #fadb4e; font-weight: bold; color: #333; text-decoration: none; text-shadow: 0 -1px 1px #fff; background-image: -moz-linear-gradient(top, #fcfdb7, #fafb5e); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fcfdb7),color-stop(1, #fafb5e)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fcfdb7', EndColorStr='#fafb5e')"; }
.ui-btn-down-d { border: 1px solid #F7C942; background: #fadb4e; font-weight: bold; color: #333; text-shadow: none; background-image: -moz-linear-gradient(top, #fadb4e, #fceda7); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fadb4e),color-stop(1, #fceda7)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fadb4e', EndColorStr='#fceda7')"; }
/*lists*/
.ui-btn-up-e { border: 1px solid #000; background: #333333; font-weight: bold; color: #fff; cursor: pointer; text-shadow: 0 1px 1px #000; text-decoration: none; background-image: -moz-linear-gradient(top, #555555, #333333); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #555555),color-stop(1, #333333)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#555555', EndColorStr='#333333')"; }
.ui-btn-hover-e { border: 1px solid #000; background: #646464; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #000; text-decoration: none; background-image: -moz-linear-gradient(top, #848484, #646464); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #848484),color-stop(1, #646464)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#848484', EndColorStr='#646464')"; }
.ui-btn-down-e { border: 1px solid #000; background: #3d3d3d; font-weight: bold; color: #fff; text-shadow: 0 -1px 1px #000; background-image: -moz-linear-gradient(top, #333333, #5a5a5a); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #333333),color-stop(1, #5a5a5a)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#333333', EndColorStr='#5a5a5a')"; }
.ui-btn-up-e, .ui-btn-hover-e, .ui-btn-down-e { font-family: Helvetica, Arial, sans-serif; }
.ui-btn-up-f { border: 1px solid #B3B3B3; background: #d0d4d2; font-weight: bold; color: #2F3E46; cursor: pointer; text-shadow: 0 -1px 1px #fff; text-decoration: none; background-image: -moz-linear-gradient(top, #e9ebea, #d0d4d2); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #e9ebea),color-stop(1, #d0d4d2)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#e9ebea', EndColorStr='#d0d4d2')"; }
.ui-btn-hover-f { border: 1px solid #808080; background: #fff; font-weight: bold; color: #2F3E46; text-decoration: none; text-shadow: 0 -1px 1px #fff; background-image: -moz-linear-gradient(top, #fdfdfd, #f0f0f0); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fdfdfd),color-stop(1, #f0f0f0)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fdfdfd', EndColorStr='#f0f0f0')"; }
.ui-btn-down-f { border: 1px solid #808080; background: #ced0d2; font-weight: bold; color: #2F3E46; text-shadow: none; background-image: -moz-linear-gradient(top, #ced0d2, #e5e6e7); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #ced0d2),color-stop(1, #e5e6e7)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ced0d2', EndColorStr='#e5e6e7')"; }
.ui-btn-up-f, .ui-btn-hover-f, .ui-btn-down-f { font-family: Helvetica, Arial, sans-serif; }
.ui-btn-active { border: 1px solid #145072; background: #387bbe; font-weight: bold; color: #fff; cursor: pointer; text-shadow: 0 -1px 1px #145072; text-decoration: none; background-image: -moz-linear-gradient(top, #4e89c5, #2567ab); background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #4e89c5),color-stop(1, #2567ab)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#4e89c5', EndColorStr='#2567ab')"; /*-webkit-tap-highlight-color: #387bbe;*/ }
.ui-focus { outline: none; -moz-box-shadow: 0px 0px 12px #387bbe; -webkit-box-shadow: 0px 0px 12px #387bbe; box-shadow: 0px 0px 12px #387bbe; }
.ui-btn-inner { border-top: 1px solid #fff; border-color: rgba(255,255,255,.3); }
/* Container Corner radius */
.ui-corner-tl { -moz-border-radius-topleft: .6em; -webkit-border-top-left-radius: .6em; border-top-left-radius: .6em; }
.ui-corner-tr { -moz-border-radius-topright: .6em; -webkit-border-top-right-radius: .6em; border-top-right-radius: .6em; }
.ui-corner-bl { -moz-border-radius-bottomleft: .6em; -webkit-border-bottom-left-radius: .6em; border-bottom-left-radius: .6em; }
.ui-corner-br { -moz-border-radius-bottomright: .6em; -webkit-border-bottom-right-radius: .6em; border-bottom-right-radius: .6em; }
.ui-corner-top { -moz-border-radius-topleft: .6em; -webkit-border-top-left-radius: .6em; border-top-left-radius: .6em; -moz-border-radius-topright: .6em; -webkit-border-top-right-radius: .6em; border-top-right-radius: .6em; }
.ui-corner-bottom { -moz-border-radius-bottomleft: .6em; -webkit-border-bottom-left-radius: .6em; border-bottom-left-radius: .6em; -moz-border-radius-bottomright: .6em; -webkit-border-bottom-right-radius: .6em; border-bottom-right-radius: .6em; }
.ui-corner-right { -moz-border-radius-topright: .6em; -webkit-border-top-right-radius: .6em; border-top-right-radius: .6em; -moz-border-radius-bottomright: .6em; -webkit-border-bottom-right-radius: .6em; border-bottom-right-radius: .6em; }
.ui-corner-left { -moz-border-radius-topleft: .6em; -webkit-border-top-left-radius: .6em; border-top-left-radius: .6em; -moz-border-radius-bottomleft: .6em; -webkit-border-bottom-left-radius: .6em; border-bottom-left-radius: .6em; }
.ui-corner-all { -moz-border-radius: .6em; -webkit-border-radius: .6em; border-radius: .6em; }
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; opacity: .3; }
/* Icons
----------------------------------*/
.ui-icon { background-position: 50% 50%; background-repeat: no-repeat; background-color: #fff; background-color: rgba(0,0,0,.4); -moz-border-radius: 9px; -webkit-border-radius: 9px; border-radius: 9px; }
/*icons with no bg needed*/
.ui-icon-checkbox-off,
.ui-icon-checkbox-on,
.ui-icon-radio-off,
.ui-icon-radio-on { background-color: transparent; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
/*arrows*/
.ui-icon-arrow-u { background-image: url(../images/icon-arrow-white-up.png); }
.ui-icon-arrow-r { background-image: url(../images/icon-arrow-white-right.png); }
.ui-icon-arrow-d { background-image: url(../images/icon-arrow-white-down.png); }
.ui-icon-arrow-l { background-image: url(../images/icon-arrow-white-left.png); }
/*plus minus*/
.ui-icon-plus { background-image: url(../images/icon-plus-white.png); }
.ui-icon-minus { background-image: url(../images/icon-minus-white.png); }
/*checks,radios*/
.ui-icon-checkbox-off { background-image: url(../images/form-check-off.png); }
.ui-icon-checkbox-on { background-image: url(../images/form-check-on.png); }
.ui-icon-radio-off { background-image: url(../images/form-radio-off.png); }
.ui-icon-radio-on { background-image: url(../images/form-radio-on.png); }
/* loading icon */
.ui-icon-loading { background-image: url(../images/ajax-loader.png); width: 40px; height: 40px; -moz-border-radius: 20px; -webkit-border-radius: 20px; border-radius: 20px; }
.ui-icon-loading-sml { background-image: url(../images/ajax-loader-sml.png); }
/* btn Corner radius */
.ui-btn-corner-tl { -moz-border-radius-topleft: 1em; -webkit-border-top-left-radius: 1em; border-top-left-radius: 1em; }
.ui-btn-corner-tr { -moz-border-radius-topright: 1em; -webkit-border-top-right-radius: 1em; border-top-right-radius: 1em; }
.ui-btn-corner-bl { -moz-border-radius-bottomleft: 1em; -webkit-border-bottom-left-radius: 1em; border-bottom-left-radius: 1em; }
.ui-btn-corner-br { -moz-border-radius-bottomright: 1em; -webkit-border-bottom-right-radius: 1em; border-bottom-right-radius: 1em; }
.ui-btn-corner-top { -moz-border-radius-topleft: 1em; -webkit-border-top-left-radius: 1em; border-top-left-radius: 1em; -moz-border-radius-topright: 1em; -webkit-border-top-right-radius: 1em; border-top-right-radius: 1em; }
.ui-btn-corner-bottom { -moz-border-radius-bottomleft: 1em; -webkit-border-bottom-left-radius: 1em; border-bottom-left-radius: 1em; -moz-border-radius-bottomright: 1em; -webkit-border-bottom-right-radius: 1em; border-bottom-right-radius: 1em; }
.ui-btn-corner-right { -moz-border-radius-topright: 1em; -webkit-border-top-right-radius: 1em; border-top-right-radius: 1em; -moz-border-radius-bottomright: 1em; -webkit-border-bottom-right-radius: 1em; border-bottom-right-radius: 1em; }
.ui-btn-corner-left { -moz-border-radius-topleft: 1em; -webkit-border-top-left-radius: 1em; border-top-left-radius: 1em; -moz-border-radius-bottomleft: 1em; -webkit-border-bottom-left-radius: 1em; border-bottom-left-radius: 1em; }
.ui-btn-corner-all { -moz-border-radius: 1em; -webkit-border-radius: 1em; border-radius: 1em; -webkit-background-clip: padding-box;}
/* Overlays */
.ui-overlay { background: #666; opacity: .5; filter:Alpha(Opacity=50); position: absolute; width: 100%; height: 100%; }
.ui-overlay-shadow { -moz-box-shadow: 0px 0px 12px rgba(0,0,0,.6); -webkit-box-shadow: 0px 0px 12px rgba(0,0,0,.6); box-shadow: 0px 0px 12px rgba(0,0,0,.6); }
.ui-shadow { -moz-box-shadow: 0px 1px 4px rgba(0,0,0,.3); -webkit-box-shadow: 0px 1px 4px rgba(0,0,0,.3); box-shadow: 0px 1px 4px rgba(0,0,0,.3); }
.ui-bar-a .ui-shadow, .ui-bar-b .ui-shadow , .ui-bar-c .ui-shadow { -moz-box-shadow: 0px 1px 0 rgba(255,255,255,.3); -webkit-box-shadow: 0px 1px 0 rgba(255,255,255,.3); box-shadow: 0px 1px 0 rgba(255,255,255,.3); }
.ui-icon-shadow { -moz-box-shadow: 0px 1px 0 rgba(255,255,255,.4); -webkit-box-shadow: 0px 1px 0 rgba(255,255,255,.4); box-shadow: 0px 1px 0 rgba(255,255,255,.4); }

View file

@ -0,0 +1,34 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Photo 1</title>
<link rel="stylesheet" type="text/css" href="../../css/all" />
<script type="text/javascript" src="../../js/all"></script>
</head>
<body class="ui-body-a">
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>A bridge</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content ui-fullscreen">
<a href="_photo2.html" class="swipe">
<img src="images/content%20samples/photo-bridge.jpeg" alt="photo-bridge" />
</a>
</div>
<div class="ui-footer ui-bar-a">
<a href="_photo2.html">Next</a>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,35 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Photo 1</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body class="ui-body-a">
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>A canoe</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content ui-fullscreen">
<a href="_photo2.html" class="swipe">
<img src="images/content%20samples/photo-canoe.jpeg" alt="photo-canoe" />
</a>
</div>
<div class="ui-footer ui-bar-a">
<a href="_photo1.html">Prev</a>
<a href="_photo3.html">Next</a>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,35 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Photo 1</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body class="ui-body-a">
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>A dock</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content ui-fullscreen">
<a href="_photo2.html" class="swipe">
<img src="images/content%20samples/photo-dock.jpeg" alt="photo-dock" />
</a>
</div>
<div class="ui-footer ui-bar-a">
<a href="_photo2.html">Prev</a>
<a href="_photo4.html">Next</a>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,35 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Photo 1</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body class="ui-body-a">
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>A kayak</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content ui-fullscreen">
<a href="_photo2.html" class="swipe">
<img src="images/content%20samples/photo-kayak.jpeg" alt="photo-kayak" />
</a>
</div>
<div class="ui-footer ui-bar-a">
<a href="_photo3.html">Prev</a>
<a href="_photo5.html">Next</a>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Photo 1</title>
<link rel="stylesheet" type="text/css" href="css/all" />
</head>
<body class="ui-body-a">
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>Nathan running</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content ui-fullscreen">
<a href="_photo2.html" class="swipe">
<img src="images/content%20samples/photo-run.jpeg" alt="photo-run" />
</a>
</div>
<div class="ui-footer ui-bar-a">
<a href="_photo4.html">Prev</a>
<a href="_photo6.html">Next</a>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,34 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Framework - Photo 1</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body class="ui-body-a">
<div class="ui-page">
<div class="ui-header ui-bar-a">
<h1>Sandy beach</h1>
<a href="index.html" class="ui-back" data-icon="arrow-l">Home</a>
</div>
<div class="ui-content ui-fullscreen">
<a href="_photo2.html" class="swipe">
<img src="images/content%20samples/photo-sand.jpeg" alt="photo-sand" />
</a>
</div>
<div class="ui-footer ui-bar-a">
<a href="_photo5.html">Prev</a>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

View file

@ -0,0 +1,263 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html class="ui-layout">
<head>
<title>jQuery Mobile Framework - ui-tree Example</title>
<link rel="stylesheet" type="text/css" href="../../css/all" />
<!--script type="text/javascript" src="../../js/all"></script-->
</head>
<body>
<div role="application" class="ui-tree-contain">
<div class="ui-tree-header ui-header ui-contain-a"><a href="#" title="Back" class="ui-button ui-clickable-a ui-clickable-corner-all ui-button-icon-notext"><span class="ui-clickable-inner ui-clickable-corner-all"><span class="ui-icon ui-icon-arrow-left-a"></span></span></a><div class="ui-tree-section-title">My Documents</div></div>
<ul class="ui-tree" role="ui-tree">
<li role="treeitem" class="ui-treeitem" aria-expanded="false">
<a href="#" class="ui-treeitem-label ui-contain-b" tabindex="0">
<span class="ui-treeitem-count ui-contain-a ui-clickable-corner-all">22</span>
<span class="ui-clickable-inner ">
<span class="ui-icon ui-icon-arrow-right-b"></span>
<span class="ui-treeitem-title">Most simplest category</span>
</span>
</a>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<a href="#" class="ui-list ui-list-a" tabindex="0">
<span class="ui-list-inner ">
<span class="ui-icon ui-icon-arrow-right-b"></span>
<span class="list-title">Most simplest category</span>
</span>
</a>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<a href="#" class="ui-list ui-list-a" tabindex="0">
<span class="ui-list-inner">
<span class="ui-icon ui-icon-arrow-r"></span>
<span class="ui-list-title">Most simplest category type ever</span>
</span>
</a>
</li>
</ul>
</div>
<div role="application" class="ui-tree-contain">
<ol class="ui-tree" role="tree">
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-list ui-list-a"><div class="ui-clickable-inner ui-clickable-corner-all">
<div class="ui-list-title">
<a href="#" tabindex="0" class="ui-link-inherit">Simple with a little hierarchy</a>
</div>
<div class="ui-list-desc">item description text can go here...</div>
<span class="ui-icon ui-icon-arrow-r"></span>
</div></div>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-a"><div class="ui-clickable-inner ui-clickable-corner-all">
<div class="ui-treeitem-title">
<a href="#" tabindex="0" class="ui-link-inherit">Simple with a little hierarchy</a>
</div>
<div class="ui-treeitem-desc">item description text can go here...</div>
<span class="ui-icon ui-icon-arrow-right-a"></span>
</div></div>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-a"><div class="ui-clickable-inner ui-clickable-corner-all">
<div class="ui-treeitem-title">
<a href="#" tabindex="0" class="ui-link-inherit">Simple with a little hierarchy</a>
</div>
<div class="ui-treeitem-desc">item description text can go here...</div>
<span class="ui-icon ui-icon-arrow-right-a"></span>
</div></div>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-f"><div class="ui-clickable-inner ui-clickable-corner-all">
<div class="ui-treeitem-title">
<a href="#" tabindex="0" class="ui-link-inherit">Simple with a little hierarchy</a>
</div>
<div class="ui-treeitem-desc">item description text can go here...</div>
<span class="ui-icon ui-icon-arrow-right-b"></span>
</div></div>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-f"><div class="ui-clickable-inner ui-clickable-corner-all">
<div class="ui-treeitem-title">
<a href="#" tabindex="0" class="ui-link-inherit">Simple with a little hierarchy</a>
</div>
<div class="ui-treeitem-desc">item description text can go here...</div>
<span class="ui-icon ui-icon-arrow-right-b"></span>
</div></div>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-f"><div class="ui-clickable-inner ui-clickable-corner-all">
<div class="ui-treeitem-title">
<a href="#" tabindex="0" class="ui-link-inherit">Simple with a little hierarchy</a>
</div>
<div class="ui-treeitem-desc">item description text can go here...</div>
<span class="ui-icon ui-icon-arrow-right-b"></span>
</div></div>
</li>
</ol>
</div>
<div role="application" class="ui-tree-contain">
<ul class="ui-tree" role="tree">
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-a">
<div class="ui-treeitem-content">
<div class="ui-treeitem-title"><a href="http://example.com" class="ui-treeitem-ext ui-link-inherit">Item title (split button approach)</a></div>
<div class="ui-treeitem-desc">item description text can go here...</div>
<a href="#" title="browse details" class="ui-treeitem-next ui-contain-a" tabindex="0">
<span class="ui-button ui-clickable-c ui-shadow ui-clickable-corner-all ui-icon-notext">
<span class="ui-clickable-inner ui-clickable-corner-all"><span class="ui-icon ui-icon-arrow-right-a"></span></span>
</span>
</a>
</div>
<div class="ui-treeitem-aside">
<p>Testing this out!</p>
</div>
</div>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-a">
<div class="ui-treeitem-labelgroup">
<div class="ui-treeitem-title"><a href="http://example.com" class="ui-treeitem-ext ui-link-inherit">Item title (split button approach)</a></div>
<div class="ui-treeitem-desc">item description text can go</div>
<a href="#" title="browse details" class="ui-treeitem-next ui-contain-a" tabindex="0">
<span class="ui-button ui-clickable-c ui-shadow ui-clickable-corner-all ui-icon-notext">
<span class="ui-clickable-inner ui-clickable-corner-all"><span class="ui-icon ui-icon-arrow-right-a"></span></span>
</span>
</a>
</div>
</div>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-a">
<div class="ui-treeitem-labelgroup">
<div class="ui-treeitem-title"><a href="http://example.com" class="ui-treeitem-ext ui-link-inherit">Item title (split button approach)</a></div>
<div class="ui-treeitem-desc">item description text can go</div>
<a href="#" title="browse details" class="ui-treeitem-next ui-contain-a" tabindex="0">
<span class="ui-button ui-clickable-c ui-shadow ui-clickable-corner-all ui-icon-notext">
<span class="ui-clickable-inner ui-clickable-corner-all"><span class="ui-icon ui-icon-arrow-right-a"></span></span>
</span>
</a>
</div>
</div>
</li>
</ul>
</div>
<div role="application" class="ui-tree-contain">
<ul class="ui-tree" role="tree">
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-b">
<img src="images/content%20samples/jb.jpg" class="ui-treeitem-thumb" alt="jb" width="75" height="75" />
<div class="ui-treeitem-labelgroup">
<div class="ui-treeitem-title"><a href="http://example.com" class="ui-treeitem-ext ui-link-inherit">My World 2.0</a></div>
<div class="ui-treeitem-desc"><strong>Justin Bieber</strong></div>
<div class="ui-treeitem-desc">item description text</div>
<a href="#" title="browse details" class="ui-treeitem-next ui-contain-b" tabindex="0">
<span class="ui-button ui-clickable-c ui-shadow ui-clickable-corner-all ui-icon-notext">
<span class="ui-clickable-inner ui-clickable-corner-all"><span class="ui-icon ui-icon-arrow-right-a"></span></span>
</span>
</a>
</div>
</div>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-b">
<img src="images/content%20samples/jb.jpg" class="ui-treeitem-thumb" alt="jb" width="75" height="75" />
<div class="ui-treeitem-labelgroup">
<div class="ui-treeitem-title"><a href="http://example.com" class="ui-treeitem-ext ui-link-inherit">My World 2.0</a></div>
<div class="ui-treeitem-desc"><strong>Justin Bieber</strong></div>
<div class="ui-treeitem-desc">item description text</div>
<a href="#" title="browse details" class="ui-treeitem-next ui-contain-d" tabindex="0">
<span class="ui-button ui-clickable-c ui-shadow ui-clickable-corner-all ui-icon-notext">
<span class="ui-clickable-inner ui-clickable-corner-all"><span class="ui-icon ui-icon-arrow-right-a"></span></span>
</span>
</a>
</div>
</div>
</li>
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-b">
<img src="images/content%20samples/jb.jpg" class="ui-treeitem-thumb" alt="jb" width="75" height="75" />
<div class="ui-treeitem-labelgroup">
<div class="ui-treeitem-title"><a href="http://example.com" class="ui-treeitem-ext ui-link-inherit">My World 2.0</a></div>
<div class="ui-treeitem-desc"><strong>Justin Bieber</strong></div>
<div class="ui-treeitem-desc">item description text</div>
<a href="#" title="browse details" class="ui-treeitem-next ui-contain-d" tabindex="0">
<span class="ui-button ui-clickable-c ui-shadow ui-clickable-corner-all ui-icon-notext">
<span class="ui-clickable-inner ui-clickable-corner-all"><span class="ui-icon ui-icon-arrow-right-a"></span></span>
</span>
</a>
</div>
</div>
</li>
</ul>
</div>
<div role="application" class="ui-tree-contain">
<ol class="ui-tree" role="tree">
<li role="ui-treeitem" class="ui-treeitem" aria-expanded="false">
<div class="ui-treeitem-label ui-contain-d">
<img src="images/content%20samples/jb.jpg" class="ui-treeitem-thumb" alt="jb" width="75" height="75" />
<div class="ui-treeitem-count ui-contain-a ui-clickable-corner-all">22</div>
<div class="ui-treeitem-labelgroup">
<h2 class="ui-treeitem-title"><a href="http://example.com" class="ui-treeitem-ext ui-link-inherit">My World 2.0</a></h2>
<div class="ui-treeitem-desc"><strong>Justin Bieber</strong></div>
<div class="ui-treeitem-desc">item description text</div>
<a href="#" title="browse details" class="ui-treeitem-next ui-contain-d" tabindex="0">
<span class="ui-button ui-clickable-c ui-shadow ui-clickable-corner-all ui-button-icon-right">
<span class="ui-clickable-inner ui-clickable-corner-all"><span class="ui-icon ui-icon-arrow-right-a"></span></span>
</span>
</a>
</div>
</div>
</li>
</ol>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
images/ajax-loader.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
images/ajax-loader.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
images/form-check-off.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

BIN
images/form-check-on.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

BIN
images/form-radio-off.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

BIN
images/form-radio-on.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

BIN
images/icon-minus-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 965 B

BIN
images/icon-plus-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 B

38
index.html Normal file
View file

@ -0,0 +1,38 @@
<?php /*gzip page*/ ob_start("ob_gzhandler"); ?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width = device-width, initial-scale=1.0" />
<title>jQuery UI Mobile Framework - Static Containers, States</title>
<link rel="stylesheet" type="text/css" href="css/all" />
<script type="text/javascript" src="js/all"></script>
</head>
<body>
<div class="ui-page">
<div class="ui-fixed-top">
<div class="ui-bar ui-bar-a">
<h1>jQuery Mobile Theme Tests</h1>
</div>
</div>
<div class="ui-content">
<div class="ui-body ui-body-c">
<ul data-role="controlgroup">
<li><a href="_containers-states.html" data-role="button">Containers &amp; states</a></li>
<li><a href="_fixed.html" data-role="button">Fixed Toolbars</a></li>
<li><a href="_form-controls.html" data-role="button">Form Controls</a></li>
<li><a href="_tabs.html" data-role="button" rel="external">Tabs</a></li>
<li><a href="_tree.html" data-role="button">Tree</a></li>
<li><a href="_events.html" data-role="button">Events</a></li>
<li><a href="_transitions.html" data-role="button">Transitions</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>

18
js/jQuery.bbq.js Normal file
View file

@ -0,0 +1,18 @@
/*
* jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
* http://benalman.com/projects/jquery-bbq-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this);
/*
* jQuery hashchange event - v1.2 - 2/11/2010
* http://benalman.com/projects/jquery-hashchange-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this);

49
js/jQuery.buttonMarkup.js Normal file
View file

@ -0,0 +1,49 @@
/*
* jQuery Mobile Framework : sample plugin for making button-like links
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.buttonMarkup = function(options){
return $(this).each(function(){
var el = $(this);
var o = $.extend({
theme: (function(){
//if data-theme attr is present
if(el.is('[data-theme]')){
return el.attr('data-theme');
}
//if not, find closest theme container
if(el.parents('body').length){
var themedParent = el.closest('[class*=ui-bar-]'); //this still catches ui-bar-blah...
return themedParent.length ? themedParent.attr('class').match(/ui-bar-([a-z])/)[1] : 'c';
}
else {
return 'c';
}
})(),
corners: true,
shadow: true,
iconshadow: true,
iconPos: el.attr('data-iconPos'),
icon: el.attr('data-icon')
},options);
if(o.icon){
o.icon = 'ui-icon-'+o.icon;
if(!o.iconPos){ o.iconPos = 'left'; }
}
el
.attr('data-theme', o.theme)
.addClass('ui-btn ui-btn-up-'+ o.theme + (o.corners?' ui-btn-corner-all':'') + (o.iconPos? ' ui-btn-icon-'+o.iconPos : '')+ (o.shadow? ' ui-shadow' : ''))
.wrapInner('<span class="ui-btn-text"></span>')
.prepend(o.iconPos ? '<span class="ui-icon '+o.icon+ (o.shadow? ' ui-icon-shadow' : '')+'"></span>': '')
.wrapInner('<span class="ui-btn-inner '+ (o.corners?' ui-btn-corner-all':'') +'"></span>')
.clickable();
});
};
})(jQuery);

34
js/jQuery.clickable.js Normal file
View file

@ -0,0 +1,34 @@
/*
* jQuery Mobile Framework : sample scripting for manipulating themed interaction states
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.clickable = function(){
return $(this).each(function(){
var theme = $(this).attr('data-theme');
$(this)
.mousedown(function(){
$(this).removeClass('ui-btn-up-'+theme).addClass('ui-btn-down-'+theme);
})
.mouseup(function(){
$(this).removeClass('ui-btn-down-'+theme).addClass('ui-btn-up-'+theme);
})
.bind('mouseover',function(){
$(this).removeClass('ui-btn-up-'+theme).addClass('ui-btn-hover-'+theme);
})
.bind('mouseout',function(){
$(this).removeClass('ui-btn-hover-'+theme).addClass('ui-btn-up-'+theme);
})
.bind('focus',function(){
$(this).addClass('ui-focus');
})
.bind('blur',function(){
$(this).removeClass('ui-focus');
});
});
};
})(jQuery);

73
js/jQuery.collapsible.js Normal file
View file

@ -0,0 +1,73 @@
/*
* jQuery Mobile Framework : "collapsible" plugin (based on code from Filament Group,Inc)
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.collapsible = function(options){
return $(this).each(function(){
var o = $.extend({
containerTheme: 'ui-body-c',
expandCueText: ' click to expand contents',
collapseCueText: ' click to collapse contents',
collapsed: $(this).is('[data-state="collapsed"]'),
heading: '>h1,>h2,>h3,>h4,>h5,>h6,>legend'
},options);
//define
var collapsibleContain = $(this).addClass('ui-collapsible-contain '+o.containerTheme),
collapsibleHeading = $(this).find(o.heading).eq(0),
collapsibleContent = collapsibleContain.wrapInner('<div class="ui-collapsible-content ui-body"></div>').find('.ui-collapsible-content');
//replace collapsibleHeading if it's a legend
if(collapsibleHeading.is('legend')){
collapsibleHeading = $('<div role="heading">'+ collapsibleHeading.html() +'</div>').insertBefore(collapsibleHeading);
collapsibleHeading.next().remove();
}
//drop heading in before content
collapsibleHeading.insertBefore(collapsibleContent);
//modify markup & attributes
collapsibleHeading.addClass('ui-collapsible-heading ui-bar-c') //NOTE - THIS SHOULD USE A BODY CLASS
.append('<span class="ui-collapsible-heading-status"></span>')
.wrapInner('<a href="#" class="ui-collapsible-heading-toggle"></a>');
collapsibleHeading.find('a:eq(0)').prepend('<span class="ui-icon ui-icon-shadow"></span>').addClass('ui-link');
//events
collapsibleContain
.bind('collapse', function(){
collapsibleHeading
.addClass('ui-collapsible-heading-collapsed')
.find('.ui-collapsible-heading-status').text(o.expandCueText);
collapsibleHeading.find('.ui-icon').removeClass('ui-icon-minus').addClass('ui-icon-plus');
collapsibleContent.addClass('ui-collapsible-content-collapsed').attr('aria-hidden',true);
})
.bind('expand', function(){
collapsibleHeading
.removeClass('ui-collapsible-heading-collapsed')
.find('.ui-collapsible-heading-status').text(o.collapseCueText);
collapsibleHeading.find('.ui-icon').removeClass('ui-icon-plus').addClass('ui-icon-minus');
collapsibleContent.removeClass('ui-collapsible-content-collapsed').attr('aria-hidden',false);
})
.trigger(o.collapsed ? 'collapse' : 'expand');
collapsibleHeading.click(function(){
if( collapsibleHeading.is('.ui-collapsible-heading-collapsed') ){
collapsibleContain.trigger('expand');
}
else {
collapsibleContain.trigger('collapse');
}
return false;
});
});
};
})(jQuery);

35
js/jQuery.controlGroup.js Normal file
View file

@ -0,0 +1,35 @@
/*
* jQuery Mobile Framework : prototype for "controlgroup" plugin - corner-rounding for groups of buttons, checks, radios, etc
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.controlgroup = function(options){
var o = $.extend({
direction: 'vertical'
},options);
return $(this).each(function(){
var groupheading = $(this).find('>legend'),
flCorners = o.direction == 'horizontal' ? ['ui-corner-left', 'ui-corner-right'] : ['ui-corner-top', 'ui-corner-bottom'],
type = $(this).find('input:eq(0)').attr('type');
//replace legend with more stylable replacement div
$('<div role="heading" class="ui-controlgroup-label">'+ groupheading.html() +'</div>').insertBefore(groupheading);
groupheading.remove();
$(this).addClass('ui-controlgroup ui-controlgroup-'+o.direction);
function flipClasses(els){
els
.removeClass('ui-btn-corner-all ui-shadow')
.eq(0).addClass(flCorners[0])
.end()
.filter(':last').addClass(flCorners[1]).addClass('ui-controlgroup-last');
}
flipClasses($(this).find('.ui-btn'));
flipClasses($(this).find('.ui-btn-inner'));
});
};
})(jQuery);

85
js/jQuery.expandable.js Normal file
View file

@ -0,0 +1,85 @@
/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
* Licensed under the MIT License (LICENSE.txt).
*
* Version 1.0
*
* Contributions by:
* - Karl Swedberg
*/
/*Note: options modified for jQuery mobile*/
(function($) {
$.fn.extend({
expandable: function(givenOptions) {
var options = $.extend({
duration: 'normal',
interval: 750,
within: 0,
by: 1,
init: false
}, givenOptions);
return this.filter('textarea').each(function() {
var $this = $(this).css({ display: 'block', overflow: 'hidden' }),
minHeight = $this.height(),
heightDiff = this.offsetHeight - minHeight,
rowSize = ( parseInt($this.css('lineHeight'), 10) || parseInt($this.css('fontSize'), 10) ),
// $mirror is used for determining the height of the text within the textarea
// it isn't perfect but is pretty close
// white-space rules from: http://petesbloggerama.blogspot.com/2007/02/firefox-ie-word-wrap-word-break-tables.html
$mirror = $('<div style="position:absolute;top:-999px;left:-999px;border-color:#000;border-style:solid;overflow-x:hidden;visibility:hidden;z-index:0;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;" />').appendTo('body'),
interval;
// copy styles from textarea to mirror to mirror the textarea as best possible
$.each('borderTopWidth borderRightWidth borderBottomWidth borderLeftWidth paddingTop paddingRight paddingBottom paddingLeft fontSize fontFamily fontWeight fontStyle fontStretch fontVariant wordSpacing lineHeight width'.split(' '), function(i,prop) {
$mirror.css(prop, $this.css(prop));
});
// setup events
$this
.bind('keypress', function(event) { if ( event.keyCode == '13' ) check(); })
.bind('focus blur', function(event) {
if ( event.type == 'blur' ) clearInterval( interval );
if ( event.type == 'focus' ) interval = setInterval(check, options.interval);
});
function check() {
var text = $this.val(), newHeight, height, usedHeight, usedRows, availableRows;
// copy textarea value to the $mirror
// encode any html passed in and replace new lines with a <br>
// the &nbsp; is to try and normalize browser behavior
$mirror.html( encodeHTML(text).replace(/\n/g, '&nbsp;<br>') );
height = $this[0].offsetHeight - heightDiff;
usedHeight = $mirror[0].offsetHeight - heightDiff;
usedRows = Math.floor(usedHeight / rowSize);
availableRows = Math.floor((height / rowSize) - usedRows);
// adjust height if needed by either growing or shrinking the text area to within the specified bounds
if ( availableRows <= options.within ) {
newHeight = rowSize * (usedRows + Math.max(availableRows, 0) + options.by);
$this.stop().animate({ height: newHeight }, options.duration);
} else if ( availableRows > options.by + options.within ) {
newHeight = Math.max( height - (rowSize * (availableRows - (options.by + options.within))), minHeight );
$this.stop().animate({ height: newHeight }, options.duration);
}
};
if ( options.init ) check();
}).end();
}
});
function encodeHTML(text) {
var characters = {
'<' : '&lt;',
'>' : '&gt;',
'&' : '&amp;',
'"' : '&quot;',
'\'': '&#x27;',
'/' : '&#x2F;'
};
return (text + '').replace(/[<>&"'\/]/g, function(c) {
return characters[c];
});
}
})(jQuery);

14
js/jQuery.fieldContain.js Normal file
View file

@ -0,0 +1,14 @@
/*
* jQuery Mobile Framework : prototype for "fieldcontain" plugin - simple class additions to make form row separators
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.fieldcontain = function(options){
var o = $.extend({
theme: 'c'
},options);
return $(this).addClass('ui-field-contain ui-body ui-body-'+o.theme);
};
})(jQuery);

View file

@ -0,0 +1,94 @@
/*
* jQuery Mobile Framework : prototype for "fixHeaderFooter" plugin - on-demand positioning for headers,footers
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.fixHeaderFooter = function(options){
return $(this).each(function(){
var el = $(this);
var o = $.extend({
ignoreTargets: 'a,input,textarea,select,button,label,.ui-headfoot-placehold',
overlayOnly: el.find('.ui-fullscreen').length //if this is true, we should set the parent div to height 0 to force overlays...?
},options);
var els = el.find('.ui-header,.ui-footer').wrap('<div class="ui-headfoot-placehold"><div class="ui-headfoot-wrap"></div></div>'),
posLoop = setInterval(function(){ els.trigger('setTop'); }, 20);
//set placeholder heights, then bind custom events
els
.each(function(){
var placehold = $(this).parents('.ui-headfoot-placehold:eq(0)');
if(o.overlayOnly){
$(this).parent().parent().height(0);
}
else{
$(this).parent().parent().height($(this).parent().height());
}
})
.bind('setTop',function(){
var fromTop = $.scrollY(),
screenHeight = window.innerHeight,
thisHeight = $(this).parent().outerHeight();
return $(this).parent().css('top', ($(this).is('.ui-header')) ? fromTop : fromTop + screenHeight - thisHeight);
})
.bind('overlayIn',function(){
$(this).parent().addClass('ui-fixpos');
if(o.overlayOnly){
$(this).parent().parent().removeClass('ui-headfoot-hidden');
}
return $(this).trigger('setTop');
})
.bind('overlayOut',function(){
$(this).parent().removeClass('ui-fixpos');
if(o.overlayOnly){
$(this).parent().parent().addClass('ui-headfoot-hidden');
}
return $(this);
})
.bind('overlayToggle',function(){
return $(this).parent().is('.ui-fixpos') ? $(this).trigger('overlayOut') : $(this).trigger('overlayIn');
})
.bind('mousedown',function(e){
return false;
})
.bind('click tap',function(e){
e.stopImmediatePropagation();
});
$(document)
.bind('tap',function(e){
if( !$(e.target).closest(o.ignoreTargets).length ){
els.trigger('overlayToggle');
}
})
.bind('scrollstart',function(){
if(els.parent().is('.ui-fixpos')){
els.data('visiblebeforescroll',true);
}
els.trigger('overlayOut');
})
.bind('scrollstop',function(){
if(els.data('visiblebeforescroll')){
els.removeData('visiblebeforescroll').trigger('overlayIn');
}
});
$(window)
.bind('load',function(){
els.trigger('overlayIn');
setTimeout(function(){
els.trigger('overlayOut');
if(posLoop){ clearInterval(posLoop); }
}, 2000);
if(o.overlayOnly){
//to-do...for a photo-viewer or something full-screen
els.parents('.ui-headfoot-placehold:eq(0)').addClass('ui-headfoot-overlayonly');
}
})
.resize(function(){ els.trigger('overlayOut'); });
});
};
})(jQuery);

21
js/jQuery.forms.button.js Normal file
View file

@ -0,0 +1,21 @@
/*
* jQuery Mobile Framework : sample plugin for making button links that proxy to native input/buttons
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.customButton = function(){
return $(this).each(function(){
var button = $(this).addClass('ui-btn-hidden').attr('tabindex','-1');
$('<a href="#" role="button">'+ (button.text() || button.val()) +'</a>')
.buttonMarkup({theme: button.attr('data-theme'), icon: button.attr('data-icon')})
.click(function(){
button.click();
return false;
})
.insertBefore(button);
});
};
})(jQuery);

View file

@ -0,0 +1,70 @@
/*
* jQuery Mobile Framework : "customCheckboxRadio" plugin (based on code from Filament Group,Inc)
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.customCheckboxRadio = function(options){
return $(this).each(function(){
if($(this).is('[type=checkbox],[type=radio]')){
var input = $(this);
var o = $.extend({
theme: 'b',
icon: !input.parents('[data-type="horizontal"]').length,
checkedicon: 'ui-icon-'+input.attr('type')+'-on',
uncheckedicon: 'ui-icon-'+input.attr('type')+'-off'
},options);
// get the associated label using the input's id
var label = $('label[for='+input.attr('id')+']').buttonMarkup({iconPos: o.icon ? 'left' : '', shadow: false});
var icon = label.find('.ui-icon');
// wrap the input + label in a div
input
.add(label)
.wrapAll('<div class="ui-'+ input.attr('type') +'"></div>');
// necessary for browsers that don't support the :hover pseudo class on labels
label
.mousedown(function(){
$(this).data('state', input.attr('checked'));
})
.click(function(){
setTimeout(function(){
if(input.attr('checked') == $(this).data('state')){
input.trigger('click');
}
}, 1);
})
.clickable();
//bind custom event, trigger it, bind click,focus,blur events
input.bind('updateState', function(){
if(input.is(':checked')){
label.addClass('ui-btn-active');
icon.addClass(o.checkedicon);
icon.removeClass(o.uncheckedicon);
}
else {
label.removeClass('ui-btn-active');
icon.removeClass(o.checkedicon);
icon.addClass(o.uncheckedicon);
}
if(!input.is(':checked')){ label.removeClass('ui-focus'); }
})
.trigger('updateState')
.click(function(){
$('input[name='+ $(this).attr('name') +']').trigger('updateState');
})
.focus(function(){
label.addClass('ui-focus');
if(input.is(':checked')){ label.addClass('ui-focus'); }
})
.blur(function(){ label.removeClass('ui-focus'); });
}
});
};
})(jQuery);

204
js/jQuery.forms.select.js Normal file
View file

@ -0,0 +1,204 @@
/*
* jQuery Mobile Framework : "customSelect" plugin (based on code from Filament Group,Inc)
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.customSelect = function(options){
return $(this).each(function(){
//extendable options
var o = $.extend({
backText: 'Back',
chooseText: 'Choose one:',
inline: false
}, options);
var select = $(this),
label = $('label[for='+ select.attr('id') +']').addClass('ui-select'),
buttonId = select.attr('id')+'-button',
menuId = select.attr('id')+'-menu',
thisPage = $(this).closest('.ui-page');
//select properties,events
select
.change(function(){
button.find('.ui-btn-text').text(select.val());
})
.focus(function(){
$(this).blur();
button.focus();
})
.wrap('<div class="ui-select"></div>')
.attr('tabindex','-1')
.bind('showmenu',function(){
$(document).data('currScroll', [$(window).scrollLeft(), $(window).scrollTop()]);
if(menuHeight > window.innerHeight - 80){
menuType = "page";
thisPage.find('.ui-content').addClass('ui-content-hidden');
listbox.removeClass('ui-listbox-overlay');
}
else {
menuType = "overlay";
listbox.addClass('ui-listbox-overlay').css({
top: $(window).scrollTop() + (window.innerHeight/2),
'margin-top': -menuHeight/2,
left: window.innerWidth/2
});
}
screen.css({width: $(window).width(), height: $(document).height()}).removeClass('ui-helper-hidden out').addClass('in');
listbox.removeClass('ui-listbox-hidden');
var selectedLI = list.find('.ui-btn-active').focus();
if(menuType == "page"){
$(window)[0].scrollTo(0, 0);
listbox.addClass('slideup in');
}
else{
listbox.addClass('pop in');
}
})
.bind('hidemenu',function(){
screen.addClass('ui-helper-hidden out');
listbox.removeAttr('style').removeClass('in').addClass('ui-listbox-hidden out');
thisPage.find('.ui-content').removeClass('ui-content-hidden');
setTimeout(function(){
button.focus();
if(menuType == "page"){
$(window)[0].scrollTo($(document).data('currScroll')[0], $(document).data('currScroll')[1]);
if(button.offset().top > window.innerHeight){
$(window)[0].scrollTo(0, button.offset().top);
}
}
}, 50);
});
//create menu button
var button = $('<a href="#">'+ select.val() +'</a>')
.buttonMarkup({
iconPos: 'right',
icon: 'arrow-d'
})
.attr({
'role': 'button',
'title': 'select menu',
'id': buttonId,
'aria-haspopup': 'true',
'aria-owns': menuId
})
.mousedown(function(){
select.trigger('showmenu');
return false;
})
.insertBefore(select);
//create menu
var listbox = $('<div id="'+ menuId +'" class="ui-listbox ui-body-a ui-overlay-shadow ui-corner-all" role="listbox" aria-labelledby="'+ buttonId +'"></div>');
//menu header
$('<div class="ui-listbox-header ui-header ui-bar ui-bar-a ui-corner-all"><div class="ui-title">'+ o.chooseText +'</div></div>')
.prepend( $('<a href="#" class="ui-back">'+ o.backText +'</span></a>').buttonMarkup({icon: 'arrow-l'}) )
.appendTo(listbox);
var list = $('<ul class="ui-listbox-list"></ul>').appendTo(listbox);
//populate menu
select.find('option').each(function(i){
var thisclass = select[0].selectedIndex == i ? 'ui-btn-active' : '';
var thisselected = select[0].selectedIndex == i ? ' aria-selected="true"' : '';
$('<li></li>')
.append( $('<a href="#" class="ui-listbox-option"'+thisselected+' role="option">'+ $(this).text() +'</a>').buttonMarkup().addClass(thisclass) )
.appendTo(list);
});
//group items in a vertical listbox style (corners pilled)
list.controlgroup();
//apply click events for items
list.find('a')
.click(function(){
list.find('[aria-selected=true]').removeClass('ui-btn-active').attr('aria-selected',false);
$(this).addClass('ui-btn-active').attr('aria-selected', true);
var newIndex = list.find('a').index(this),
prevIndex = select[0].selectedIndex;
select[0].selectedIndex = list.find('a').index(this);
if(newIndex != prevIndex){
select.trigger('change');
}
select.trigger('hidemenu');
return false;
});
//back button
listbox.find('.ui-listbox-header a').click(function(){
select.trigger('hidemenu');
});
//keyboard events for menu items
list.keydown(function(event){
if( !$(this).is('.ui-btn') ){
//switch logic based on which key was pressed
switch(event.keyCode){
//up or left arrow keys
case 37:
case 38:
//if there's a previous option, focus it
if( $(event.target).parent().prev().length ){
$(event.target).blur().parent().prev().find('a').eq(0).focus();
}
//prevent native scroll
return false;
break;
//down or right arrow keys
case 39:
case 40:
//if there's a next option, focus it
if( $(event.target).parent().next().length ){
$(event.target).blur().parent().next().find('a').eq(0).focus();
}
//prevent native scroll
return false;
break;
//if enter or space is pressed in menu, trigger click
case 13:
case 32:
$(event.target).trigger('click'); //should trigger select
return false;
break;
//tab returns focus to the menu button, and then automatically shifts focus to the next focusable element on the page
case 9:
select.trigger('hidemenu');
break;
event.preventDefault();
}
}
});
//add list to page
listbox.insertAfter(thisPage.find('.ui-content:eq(0)'));
var screen = $('<div class="ui-listbox-screen ui-overlay ui-helper-hidden fadeto"></div>').insertBefore(listbox);
//get height for figuring out overlay vs. paged
var menuHeight = list.outerHeight();
//menu type
var menuType = "page";
//hide it
listbox.addClass('ui-listbox-hidden');
//hide on outside click
screen.click(function(){
listbox.addClass('ui-listbox-hidden out');
screen.addClass('ui-helper-hidden out');
$('.ui-page').find('.ui-content').removeClass('ui-content-hidden');
});
});
};
})(jQuery);

View file

@ -0,0 +1,33 @@
/*
* jQuery Mobile Framework : "customTextInput" plugin for text inputs, textareas (based on code from Filament Group,Inc)
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
jQuery.fn.customTextInput = function(options){
return $(this).each(function(){
var input = $(this);
var o = $.extend({
//defaultTheme: "a"
}, options);
$('label[for='+input.attr('id')+']').addClass('ui-input-text');
input
.addClass('ui-corner-all ui-body-c ui-input-text')
.focus(function(){
$(this).addClass('ui-focus');
})
.blur(function(){
$(this).removeClass('ui-focus');
});
//autogrow
if(input.is('textarea')){
input.expandable();
}
});
};
})(jQuery);

26
js/jQuery.globalnav.js Executable file
View file

@ -0,0 +1,26 @@
/*
* jQuery Mobile Framework : prototype for "tabs" plugin (based on code from Filament Group,Inc)
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.globalnav = function(settings){
return $(this).each(function(){
//configurable options
var o = $.extend({},settings);
var globalnav = $(this).wrap('<div class="ui-globalnav"></div>');
globalnav.find('a').buttonMarkup({corners: false, iconPos: 'top', icon: 'arrow-u'});
var pageFooter = globalnav.parents('.ui-page:eq(0)').find('.ui-footer');
if( !pageFooter.length ){
pageFooter = $('<div class="ui-footer ui-bar-a"></div>').appendTo(globalnav.parents('.ui-page:eq(0)'));
}
//add to footer
globalnav.prependTo(pageFooter);
});
};
})(jQuery);

469
js/jQuery.mobile.js Normal file
View file

@ -0,0 +1,469 @@
/*
* jQuery Mobile Framework
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change!!
- This file adds properties to $.support,
*/
(function($,window,undefined){
var $window = $(window),
$html = $('html'),
$head = $('head'),
$body,
$loader = $('<div class="ui-loader ui-body-c ui-corner-all fade in"><span class="ui-icon ui-icon-loading spin"></span><h1>loading.</h1></div>'),
startPage,
startPageId = 'ui-page-start',
activePageClass = 'ui-page-active',
transitions = 'slide slideup pop flip fade dissolve swap',
transitionSpecified = false,
currentTransition = 'slide',
transitionDuration = 350,
orientation,
backBtnText = "Back",
prevUrl = location.hash,
//vars for custom event tracking
scrolling = false,
touching = false,
touchstartdata,
touchstopdata,
tapNotMoveTime = 50,
tapHoldTime = 700,
maxSwipeTime = 1000,
minSwipeXDistance = 180,
maxSwipeYtolerance = 80;
/*
add some properties to $.support
- Notes:
- add $.support.scrollTop ?
- CSS matrix support needed?
*/
$.support.orientation = !!window.orientation;
//ajax support: to use bbq-style navigation with external pages, we will need to first test for ajax support (and fall back to normal urls)
//note: maybe core should be updated with this support property?
$.support.ajax = (function(){
//factory test borrowed from quirksmode.org
var xmlhttp = false, index = -1, factory,
XMLHttpFactories = [
function() { return new XMLHttpRequest() },
function() { return new ActiveXObject("Msxml2.XMLHTTP") },
function() { return new ActiveXObject("Msxml3.XMLHTTP") },
function() { return new ActiveXObject("Microsoft.XMLHTTP") }
];
while ((factory = XMLHttpFactories[++index])) {
try { xmlhttp = factory(); }
catch (e) { continue; }
break;
}
return !!xmlhttp;
})();
/* Some CSS capability tests from EnhanceJS -- in the vein of $.support.boxmodel -- almost certainly needed for widgets to work
* note: assuming they work in Firefox 4, these can run without domready (currently FF4 beta won't report these offset dimensions before body is present)
*/
//test CSS display none
$.support.display = (function(){
var fakeBody = $('<body></body>').prependTo($html),
testDiv = $('<div style="height: 5px; position: absolute; display: none;"></div>').prependTo(fakeBody),
divHeight = testDiv[0].offsetHeight; //note: jQuery .height() returned "5"
fakeBody.remove();
return divHeight === 0;
})();
//test CSS absolute positioning
$.support.position = (function(){
var fakeBody = $('<body></body>').prependTo($html),
testDiv = $('<div style="position: absolute; left: 10px;"></div>').prependTo(fakeBody),
divLeft = testDiv[0].offsetLeft;
fakeBody.remove();
return divLeft === 10;
})();
//test CSS overflow (used in widgets for clearfix, hiding, etc)
$.support.overflow = (function(){
var fakeBody = $('<body></body>').prependTo($html),
testDiv = $('<div style="position: absolute; overflow: hidden; height: 0;"><div style="height: 10px;"></div></div>').prependTo(fakeBody),
divHeight = testDiv[0].offsetHeight;
fakeBody.remove();
return divHeight === 0;
})();
//test CSS float,clear
$.support.floatclear = (function(){
var fakeBody = $('<body></body>').prependTo($html),
pass = false,
innerStyle = 'style="width: 5px; height: 5px; float: left;"',
testDiv = $('<div><div ' + innerStyle + '></div><div ' + innerStyle + '></div></div>').prependTo(fakeBody),
kids = testDiv[0].childNodes,
topA = kids[0].offsetTop,
divB = kids[1],
topB = divB.offsetTop;
if (topA === topB) {
divB.style.clear = 'left';
topB = divB.offsetTop;
if (topA !== topB) {
pass = true;
}
}
fakeBody.remove();
return pass;
})();
//right about here, we *could* make sure all of the above css support props are true, if not, return and leave the page usable fercryin'outloud
if(!$.support.display || !$.support.position || !$.support.overflow || !$.support.floatclear ) { return; }
//support properties from jQtouch
$.support.touch = (typeof Touch == "object");
$.support.WebKitAnimationEvent = (typeof WebKitTransitionEvent == "object");
/*
add some core behavior,events
*/
//test whether a CSS media type or query applies (adapted from work by Scott Jehl & Paul Irish: http://gist.github.com/557891)
$.media = (function(){
if ( (window.media && media.matchMedium) ){
//use native support if available
return media.matchMedium;
}
var cache = {},
testDiv = $('<div id="jq-mediatest"></div>'),
fakeBody = $('<body></body>').append(testDiv);
return function(q){
if (cache[q] === undefined) {
var styleBlock = $('<style type="text/css"></style>');
var cssrule = '@media '+q+' { #jq-mediatest { position: absolute; } }';
if (styleBlock[0].styleSheet){
styleBlock[0].styleSheet.cssText = cssrule;
}
else {
styleBlock.text(cssrule);
}
$html.prepend(fakeBody).prepend(styleBlock);
cache[q] = ((window.getComputedStyle ? window.getComputedStyle(testDiv[0],null) : testDiv[0].currentStyle)['position'] == 'absolute');
fakeBody.add(styleBlock).remove();
}
return cache[q];
};
})();
//hide Address bar
function hideBrowserChrome(){
//kill addr bar
window.scrollTo(0,0);
}
//get vert scroll dist
$.scrollY = function(){
return $(window).scrollTop(); //always returns 0 WebOS!! HELP! http://jsbin.com/unufu3/5/edit
};
//add new event shortcuts
$.each( ("touchstart touchmove touchend orientationchange tap swipe swipeleft swiperight scrollstart scrollstop").split(" "), function( i, name ) {
// Handle event binding
$.fn[ name ] = function( fn ) {
return fn ? this.live( name, fn ) : this.trigger( name );
};
if ( $.attrFn ) {
$.attrFn[ name ] = true;
}
});
//detect and trigger some custom events (scrollstart,scrollstop,tap,taphold,swipe,swipeleft,swiperight)
$(document)
.scroll(function(e){
var prevscroll = $.scrollY();
function checkscrollstop(){
if(prevscroll === $.scrollY()){
$body.trigger('scrollstop');
scrolling = false;
}
}
setTimeout(checkscrollstop,50);
})
.bind( ($.support.touch ? 'touchmove' : 'scroll'), function(e){
//iPhone triggers scroll a tad late - touchmoved preferred
if(!scrolling){
scrolling = true;
$body.trigger('scrollstart'); //good place to trigger?
}
})
.bind( ($.support.touch ? 'touchstart' : 'mousedown'), function(e){
touching = true;
//make sure it's not a touchmove and still touching
function checktap(eType){
if(!scrolling && touching){
$(e.target).trigger(eType);
}
}
//tap / taphold detection timeouts (make sure it's not a touchmove & before firing)
setTimeout(checktap, tapNotMoveTime, ['tap']);
setTimeout(checktap, tapHoldTime, ['taphold']);
//cache data from touch start - for later use in swipe testing
var eScope = e.originalEvent.touches ? e.originalEvent.touches[0] : e;
touchstartdata = {
'time': (new Date).getTime(),
'coords': [eScope.pageX, eScope.pageY],
'origin': $(e.target)
};
})
.bind(($.support.touch ? 'touchmove' : 'mousemove'), function(e){
if(touchstartdata){
var eScope = e.originalEvent.touches ? e.originalEvent.touches[0] : e;
touchstopdata = {
'time': (new Date).getTime(),
'coords': [eScope.pageX, eScope.pageY]
};
//trying not to interfere with scrolling here...
//this may need to be expanded to any non-y movement...
if(Math.abs(touchstartdata.coords[0] - touchstopdata.coords[0]) > 10){
e.preventDefault();
}
}
})
.bind(($.support.touch ? 'touchend' : 'mouseup'), function(e){
touching = false;
if(touchstartdata && touchstopdata){
//detect whether a swipe occurred, trigger it
if( touchstopdata.time - touchstartdata.time < maxSwipeTime &&
Math.abs(touchstartdata.coords[0] - touchstopdata.coords[0]) > minSwipeXDistance &&
Math.abs(touchstartdata.coords[1] - touchstopdata.coords[1]) < maxSwipeYtolerance ){
touchstartdata.origin.trigger('swipe');
touchstartdata.origin.trigger( (touchstartdata.coords[0] > touchstopdata.coords[0] ? 'swipeleft' : 'swiperight'));
}
}
touchstartdata = touchstopdata = null;
});
//add orientation class on flip/resize. This should probably use special events. Also, any drawbacks to just using resize?
$window.bind( ($.support.orientation ? 'orientationchange' : 'resize'), updateOrientation);
//orientation change classname logic - logic borrowed/modified from jQtouch
function updateOrientation() {
var neworientation = window.innerWidth < window.innerHeight ? 'portrait' : 'landscape';
if(orientation !== neworientation){
$body.trigger('turn', {orientation: orientation}); //temp event name
}
orientation = neworientation;
$html.removeClass('portrait landscape').addClass(orientation);
}
//add mobile, loading classes to doc
$html.addClass('ui-mobile');
//insert mobile meta (any other metas needed? webapp? iPhone icon? etc)
$head.append('<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0" />');
//send a link through hash tracking
$.fn.ajaxClick = function(){
var href = $(this).attr( "href" ),
transitionAttr = $(this).attr('data-transition');
if(transitionAttr){
currentTransition = transitionAttr;
transitionSpecified = true;
}
else{
transitionSpecified = false;
}
prevUrl = $.bbq.getState('url');
$.bbq.pushState({ url: href });
//note: if it's a non-local-anchor and Ajax is not supported, go to page
if(href.match(/^[^#]/) && !$.support.ajax){
window.location = href;
}
else {
return false;
}
};
//ajaxify all navigable links
$('a:not([href="#"])').live('click',function(e){
if ($(this).is('[target=_blank]') || $(this).is('[rel=external]')){ return true; }
$(this).ajaxClick();
return false;
});
//turn on/off page loading message.. also hides the ui-content div
function pageLoading(done){
if(done){
//remove loading msg
$html.removeClass('ui-loading');
//fade in page content, remove loading msg
$('.ui-page-active .ui-content')//.addClass('dissolve in');
}
else{
$html.addClass('ui-loading');
$loader.appendTo($body).addClass('dissolve in');
}
};
//transition between pages - based on transitions from jQtouch
function changePage(from,to,back){
hideBrowserChrome();
if(!back && !transitionSpecified){ currentTransition = 'slide'; }
//kill keyboard (thx jQtouch :) )
$(':focus').blur();
//animate in / out
from.addClass(currentTransition + ' out ' + (back ? 'reverse':''));
to.appendTo('body').addClass(activePageClass + ' ' + currentTransition + ' in ' + (back ? 'reverse':''));
//callback - remove classes, etc
to.animationComplete(function(){
from.add(to).removeClass(' out in reverse '+ transitions);
from.removeClass(activePageClass);
pageLoading(true);
});
if(back){ currentTransition = 'slide'; }
};
//potential (probably incomplete) fallback to workaround lack of animation callbacks.
//should this be extended into a full special event?
// note: Expects CSS animations use transitionDuration (350ms)
$.fn.animationComplete = function(callback){
if($.support.WebKitAnimationEvent){
$(this).one('webkitAnimationEnd', callback);
}
else{
setTimeout(callback, transitionDuration);
}
};
//markup-driven enhancements, to be called on any ui-page upon loading
function mobilize($el){
return $el.each(function(){
//checkboxes, radios
$el.find('input[type=radio],input[type=checkbox]').customCheckboxRadio();
//custom buttons
$el.find('button, input[type=submit]').customButton();
//custom text inputs
$el.find('input[type=text],input[type=password],textarea').customTextInput();
//collapsible groupings
$el.find('[data-role="collapsible"]').collapsible();
//single-field separators
$el.find('.field').fieldcontain();
//selects
$el.find('select').customSelect();
//tabs
$('[data-role="tabs"]').tabs({fixedAsFooter:true});
//global nav
$('[data-role="globalnav"]').globalnav();
//fix toolbars
$el.fixHeaderFooter();
//buttons from links in headers,footers,bars, or with data-role
$('.ui-header a, .ui-footer a, .ui-bar a, [data-role="button"]').not('.ui-btn').buttonMarkup();
//vertical controlgroups
$el.find('[data-role="controlgroup"]:not([data-type="horizontal"])').controlgroup();
//horizontal controlgroups
$el.find('[data-role="controlgroup"][data-type="horizontal"]').controlgroup({direction: 'horizontal'});
//tree from data role
$el.find('[data-role="tree"]').tree();
//links within content areas
$el.find('.ui-body a:not(.ui-btn):not(.ui-link-inherit)').addClass('ui-link');
//rewrite "home" links to mimic the back button (pre-js, these links are usually "home" links)
var backBtn = $el.find('.ui-header a.ui-back');
if(!backBtn.length){
backBtn = $('<a href="#" class="ui-back" data-icon="arrow-l"></a>').appendTo($el.find('.ui-header')).buttonMarkup();
}
backBtn
.click(function(){
history.go(-1);
return false;
})
.find('.ui-btn-text').text(backBtnText);
});
};
//swipe left always triggers a back
$(document).swipeleft(function(){
history.go(-1);
return false;
});
//dom-ready
$(function(){
//set the page loader up
pageLoading();
//define body
$body = $('body');
//hashchange for page state tracking - uses bbq. - needs to be bound at domready (for IE6 Ben?)
//When document.location.hash changes, find or load content, make it active
$window.bind( "hashchange", function(e){
var url = e.getState('url'),
back = (url === prevUrl);
if(url){
//see if content is present - NOTE: local urls aren't working right now - need logic to kill #
var localDiv = $('[id="'+url+'"]');
if(localDiv.length){
changePage($('.ui-page-active'), localDiv, back);
pageLoading(true);
}
else { //ajax it in
pageLoading();
var newPage = $('<div class="ui-page" id="'+url+'"></div>')
.appendTo($body)
.load(url + ' .ui-page',function(){
//dumping in HTML() from ui-page div - cleaner way?
$(this).html( $(this).find('.ui-page:eq(0)').html() );
mobilize($(this));
changePage($('.ui-page-active'), $(this), back);
pageLoading(true);
});
}
}
else{
//either...
// we've backed up to the root page url,
// it's a plugin state
//or it's the first page load with no hash present
var currentPage = $('.ui-page-active');
if( currentPage.length && !startPage.is('.ui-page-active')){
changePage(currentPage, startPage, back);
}
else{
startPage.addClass(activePageClass);
}
pageLoading(true);
}
});
//mobilize all pages present
mobilize($('.ui-page'));
//set up active page - mobilize it!
startPage = $('body > .ui-page:first');
//make sure it has an ID - for finding it later
if(!startPage.attr('id')){
startPage.attr('id', startPageId);
}
//trigger a new hashchange, hash or not
$window.trigger( "hashchange" );
//... this shouldn't be needed, but chrome isn't getting it sometimes
setTimeout(function(){ pageLoading(true); }, 3000);
//update orientation
updateOrientation();
//some debug stuff for the events pages
$('body').bind('scrollstart scrollstop swipe swipeleft swiperight tap taphold turn',function(e){
$('#eventlogger').prepend('<div>Event fired: '+ e.type +'</div>');
});
});
})(jQuery, this);

181
js/jQuery.tabs.js Executable file
View file

@ -0,0 +1,181 @@
/*
* jQuery Mobile Framework : prototype for "tabs" plugin (based on code from Filament Group,Inc)
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.tabs = function(settings){
//configurable options
var o = $.extend({
trackState: true,
alwaysScrollToTop: true,
fixedAsFooter: false
},settings);
return $(this).each(function(){
//reference to tabs container
var tabs = $(this);
//set app mode
$(this).attr('role','application');
//nav is first ul
var tabsNav = tabs.find('ul:first');
//body is nav's next sibling
var tabsBody = $(tabsNav.find('a:eq(0)').attr('href')).parent();
var tabIDprefix = 'ui-tab-';
var tabIDsuffix = '-enhanced';
//add class to nav, tab body
tabsNav
.addClass('ui-tabs-nav '+(o.fixedAsFooter?'ui-bar-a':'ui-bar-c'))
.attr('role','tablist');
tabsBody
.addClass('ui-tabs-body ui-body ui-body-c');
//find tab panels, add class and aria
tabsBody.find('>div').each(function(){
$(this)
.addClass('ui-tabs-panel')
.attr('role','tabpanel')
.attr('aria-hidden', true)
.attr('aria-labelledby', tabIDprefix + $(this).attr('id'))
.attr('id', $(this).attr('id') + tabIDsuffix);
});
//set role of each tab
tabsNav.find('li').each(function(){
$(this)
.attr('role','tab')
.attr('id', tabIDprefix+$(this).find('a').attr('href').split('#')[1]);
})
.width(100/tabsNav.find('li').length+'%');
//switch selected on click
tabsNav
.find('a')
.attr('tabindex','-1')
.buttonMarkup({corners: false, iconPos: (o.fixedAsFooter?'top':'bottom'), icon: (o.fixedAsFooter?'arrow-u':'arrow-d')});
//generic select tab function
function selectTab(tab,fromHashChange){
if(o.trackState && !fromHashChange){
$.bbq.pushState({'tab': tab.attr('href')});
}
else{
//unselect tabs
tabsNav.find('li.ui-tabs-selected')
.removeClass('ui-tabs-selected')
.find('a')
.removeClass('ui-btn-active')
.attr('tabindex','-1');
//set selected tab item
tab
.attr('tabindex','0')
.addClass('ui-btn-active')
.parent()
.addClass('ui-tabs-selected');
//unselect panels
tabsBody.find('div.ui-tabs-panel-selected').attr('aria-hidden',true).removeClass('ui-tabs-panel-selected');
//select active panel
$( tab.attr('href') + tabIDsuffix ).addClass('ui-tabs-panel-selected').attr('aria-hidden',false);
if(o.fixedAsFooter){
//window.scrollTo(0,0);
$('.ui-fixed-top,.ui-fixed-bottom').trigger('overlayIn');
setTimeout(function(){ $('.ui-fixed-top,.ui-fixed-bottom').trigger('setTop'); },100);
}
}
};
tabsNav.find('a')
.click(function(e){
selectTab($(this));
$(this).focus();
return false;
})
.keydown(function(event){
var currentTab = $(this).parent();
var ret = true;
switch(event.keyCode){
case 37://left
case 38://up
if(currentTab.prev().size() > 0){
selectTab(currentTab.prev().find('a'));
currentTab.prev().find('a').eq(0).focus();
ret = false;
}
break;
case 39: //right
case 40://down
if(currentTab.next().size() > 0){
selectTab(currentTab.next().find('a'));
currentTab.next().find('a').eq(0).focus();
ret = false;
}
break;
case 36: //home key
selectTab(tabsNav.find('li:first a'));
tabsNav.find('li:first a').eq(0).focus();
ret = false;
break;
case 35://end key
selectTab(tabsNav.find('li:last a'));
tabsNav.find('li:last a').eq(0).focus();
ret = false;
break;
}
return ret;
});
//if tabs are rotating, stop them upon user events
tabs.bind('click keydown focus',function(){
if(o.autoRotate){ clearInterval(tabRotator); }
});
//function to select a tab from the url hash
function selectTabFromHash(hash){
var currHash = hash || $.bbq.getState('tab');
if(!currHash){ currHash = '';}
var hashedTab = tabsNav.find('a[href=#'+ currHash.replace('#','') +']');
if( hashedTab.size() > 0){
selectTab(hashedTab,true);
}
else {
selectTab( tabsNav.find('a:first'),true);
}
//return true/false
return !!hashedTab.size();
}
$(window).bind('hashchange',function(){
var tab = $.bbq.getState('tab');
if(tab){
selectTabFromHash(tab,true);
}
else{
selectTab( tabsNav.find('a:first'),true);
}
});
//set tab from hash at page load, if no tab hash, select first tab
selectTabFromHash(null,true);
if(o.fixedAsFooter){
var footer = $('.ui-footer', $(this).parents('.ui-page'));
if(!footer.length){
footer = $('<div class="ui-footer ui-bar-a"></div>').appendTo($(this).parents('.ui-page'));
}
tabsNav.prependTo(footer);
}
});
};
})(jQuery);

255
js/jQuery.tree.js Normal file
View file

@ -0,0 +1,255 @@
/*
* jQuery Mobile Framework : prototype for "tree" plugin (based on code from Filament Group,Inc)
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* Note: Code is in draft form and is subject to change
*/
(function($){
$.fn.tree = function(settings){
return $(this).each(function(){
var o = $.extend({
expanded: '',
theme: 'e',
backBtnText: 'Back',
liveBackText: false,
loadingText: 'loading...',
ajaxCallback: function(){
$('.ui-body a:not(.ui-btn):not(.ui-link-inherit)').addClass('ui-link');
tree.height($(this).outerHeight());
}
},settings);
if( !$(this).parents('.tree').length ){
//save references
var tree = $(this),
treeContain = tree.wrap('<div role="application" class="ui-tree-contain"></div>').parent(),
treeheader = $('.ui-header'),
prevHTML = treeheader.html();
//add the role and default state attributes
tree.attr({'role': 'tree'}).addClass('ui-tree');
tree.find('li').each(function(){
if($(this).contents()[0].nodeType == 3){
$(this).wrapInner('<div></div>');
}
});
//ajax placeholders
tree.find('li.hijax>a').after('<div class="ui-body-c"></div>');
//add classes to panel content so it'll be excluded
tree.find('li>:not(ul,a)').addClass('ui-tree-panel');
//add treeitem role to all li children
tree.find('li').not('.ui-tree-panel *').attr('role','treeitem').addClass('ui-treeitem');
//buttons from anchors
tree.find('li.ui-treeitem>a').addClass('ui-treeitem-link').buttonMarkup({theme: o.theme, iconPos: 'right',icon: 'arrow-r',corners: false});
//set first node's tabindex to 0
tree.find('li.ui-treeitem>a:eq(0)').attr('tabindex','0');
//set all others to -1
tree.find('li.ui-treeitem>a:gt(0)').attr('tabindex','-1');
//add group role and tree-group-collapsed class to all ul children
tree.find('li.ui-treeitem>a').next().attr('role','group').addClass('ui-tree-group ui-tree-group-collapsed');
//find tree group parents
tree.find('li.ui-treeitem:has(.ui-tree-group)').not('.ui-tree-panel *')
.attr('aria-expanded', 'false')
.find('>a')
.addClass('ui-tree-parent ui-tree-parent-collapsed');
//expanded at load
tree
.find(o.expanded).not('.ui-tree-panel *')
.attr('aria-expanded', 'true')
.addClass('ui-tree-expanded')
.find('>a')
.removeClass('ui-tree-parent-collapsed')
.next()
.removeClass('ui-tree-group-collapsed');
//for setting up the back button header
function setNavigation(targetLi){
treeheader.find('.ui-back').remove();
if(targetLi.length){
targetA = targetLi.find('>a:eq(0)');
var backText = o.liveBackText ? (targetLi.parents('li:eq(0)').find('>a:eq(0)').text() || o.backBtnText) : o.backBtnText;
var bbutton = $('<a href="#" class="ui-back">'+ backText +'</a>')
.appendTo(treeheader)
.buttonMarkup({icon:'arrow-l'})
.click(function(){
targetLi.trigger('collapse');
return false;
});
treeheader.find('h1').text(targetA.text());
}
else{
treeheader.html(prevHTML);
}
}
//quick function for seeing if an event is tree-related and if so, getting all the elements related to event target
function targetElements(event){
if($(event.target).parents('.ui-tree-panel').length){
return false;
}
else{
var targetLi = $(event.target).closest('li'),
targetA = targetLi.find('>a:eq(0)'),
targetContent = targetA.next(),
targetParent = targetLi.closest('ul'),
targetParentLi = targetParent.closest('li');
return {
targetLi: targetLi,
targetA: targetA,
targetContent: targetContent,
targetParent: targetParent,
targetParentLi: targetParentLi
};
}
}
//bind the custom events
tree
//expand a tree node
.bind('expand.tree',function(event){
var et = targetElements(event);
if(!et){ return; }
var et = targetElements(event);
//ajax content in if necessary
et.targetContent.filter(':empty').append('<p class="ui-tree-content-loading"><span class="ui-icon ui-icon-loading"></span><span class="ui-tree-loading-text">'+ o.loadingText +'</span></p>').load(et.targetA.attr('href'), o.ajaxCallback);
et.targetA.removeClass('ui-tree-parent-collapsed');
et.targetLi.attr('aria-expanded', 'true');
et.targetContent.removeClass('ui-tree-group-collapsed');
et.targetParent.addClass('ui-tree-expanded');
setNavigation(et.targetLi);
et.targetLi.find('li>a:eq(0)').focus(); //note - this should be tighter in scope
tree.height('');
tree.height(et.targetContent.outerHeight());
event.stopPropagation();
})
//collapse a tree node
.bind('collapse.tree',function(event){
var et = targetElements(event);
if(!et){ return; }
et.targetA.addClass('ui-tree-parent-collapsed');
et.targetLi.attr('aria-expanded', 'false');
setTimeout(function(){ et.targetContent.addClass('ui-tree-group-collapsed'); },300);
et.targetParent.removeClass('ui-tree-expanded');
setNavigation(et.targetParentLi);
et.targetA.focus();
tree.height('');
tree.height(et.targetParent.outerHeight() || tree.outerHeight());
event.stopPropagation();
})
.bind('toggle.tree',function(event){
var et = targetElements(event);
if(!et){ return; }
et.targetLi.trigger(et.targetLi.is('[aria-expanded=false]') ? 'expand' : 'collapse');
event.stopPropagation();
})
//shift focus down one item
.bind('traverseDown.tree',function(event){
var et = targetElements(event);
if(!et){ return; }
if(et.targetLi.is('[aria-expanded=true]')){
et.targetContent.find('a').eq(0).focus();
}
else if(et.targetLi.next().length) {
et.targetLi.next().find('a').eq(0).focus();
}
else {
et.targetParentLi.next().find('a').eq(0).focus();
}
event.stopPropagation();
})
//shift focus up one item
.bind('traverseUp.tree',function(event){
var et = targetElements(event);
if(!et){ return; }
if(et.targetLi.prev().length){
if( et.targetLi.prev().is('[aria-expanded=true]') ){
et.targetLi.prev().find('li:visible:last a').eq(0).focus();
}
else{
et.targetLi.prev().find('>a:eq(0)').focus();
}
}
else {
et.targetParentLi.find('>a:eq(0)').trigger('collapse');
}
event.stopPropagation();
})
//native events
.bind('focus.tree',function(event){
var et = targetElements(event);
if(!et){ return; }
//deactivate previously active tree node, if one exists
tree.find('[tabindex=0]').blur().attr('tabindex','-1').removeClass('ui-treeitem-active');
//assign 0 tabindex to focused item
et.targetA.attr('tabindex','0').addClass('ui-treeitem-active');
})
.bind('click.tree',function(event){
var et = targetElements(event);
if(!et){ return; }
//check if target is a tree node
if( et.targetLi.is('[aria-expanded]') ){
et.targetLi.trigger('toggle.tree');
et.targetA.focus();
return false;
}
})
.bind('keydown.tree',function(event){
var et = targetElements(event);
if(!et){ return; }
//check for arrow keys
if(event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40){
//if key is left arrow
if(event.keyCode == 37){
//if list is expanded
if(et.targetLi.is('[aria-expanded=true]')){
et.targetLi.trigger('collapse');
}
//try traversing to parent
else {
et.targetParentLi.find('>a:eq(0)').trigger('collapse');
}
}
//if key is right arrow
if(event.keyCode == 39){
//if list is collapsed
if(et.targetLi.is('[aria-expanded=false]')){
et.targetLi.trigger('expand');
}
//try traversing to child
else {
et.targetLi.find('li.ui-treeitem>a:eq(0)').focus();
}
}
//if key is up arrow
if(event.keyCode == 38){
et.targetLi.trigger('traverseUp');
}
//if key is down arrow
if(event.keyCode == 40){
et.targetLi.trigger('traverseDown');
}
//return any of these keycodes false
return false;
}
//check if enter or space was pressed on a tree node
else if((event.keyCode == 13 || event.keyCode == 32) && target.is('a.ui-tree-parent')){
et.targetLi.trigger('toggle');
//return click event false because it's a tree node (folder)
return false;
}
});
}
});
};
})(jQuery);

154
js/jquery-1.4.2.min.js vendored Executable file
View file

@ -0,0 +1,154 @@
/*!
* jQuery JavaScript Library v1.4.2
* http://jquery.com/
*
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2010, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Sat Feb 13 22:33:48 2010 -0500
*/
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(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(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.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 originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.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){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=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|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
a:b+"></"+d+">"},F={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,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(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,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(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;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<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>";
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);

22
js/manifest.php Normal file
View file

@ -0,0 +1,22 @@
<?
$elements = array(
'jquery-1.4.2.min.js',
'jQuery.bbq.js',
'jQuery.clickable.js',
'jQuery.fixHeaderFooter.js',
'jQuery.forms.checkboxradio.js',
'jQuery.expandable.js',
'jQuery.forms.textinput.js',
'jQuery.forms.select.js',
'jQuery.buttonMarkup.js',
'jQuery.forms.button.js',
'jQuery.collapsible.js',
'jQuery.controlGroup.js',
'jQuery.fieldContain.js',
'jQuery.tabs.js',
'jQuery.tree.js',
'jQuery.globalnav.js',
'jQuery.mobile.js'
);
?>

View file

@ -0,0 +1,10 @@
<div class="ui-body ui-body-b">
<h1>The Big Lebowskipsum</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
</div>

View file

@ -0,0 +1,10 @@
<div class="ui-body">
<h1>License Ipsum</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
</div>

View file

@ -0,0 +1,10 @@
<div class="ui-body">
<h1>Planet ipsum</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
</div>

10
sample-content/terms.html Normal file
View file

@ -0,0 +1,10 @@
<div class="ui-body">
<h1>Terms Ipsum</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
</div>

View file

@ -0,0 +1,10 @@
<div class="ui-body">
<h1>Travel Ipsum</h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
</div>